Condividi tramite


TrackingProfile.ActivityTrackPoints Proprietà

Definizione

Ottiene la raccolta di track point di attività utilizzata dall'infrastruttura di rilevamento di runtime per filtrare eventi dello stato dell'attività.

public:
 property System::Workflow::Runtime::Tracking::ActivityTrackPointCollection ^ ActivityTrackPoints { System::Workflow::Runtime::Tracking::ActivityTrackPointCollection ^ get(); };
public System.Workflow.Runtime.Tracking.ActivityTrackPointCollection ActivityTrackPoints { get; }
member this.ActivityTrackPoints : System.Workflow.Runtime.Tracking.ActivityTrackPointCollection
Public ReadOnly Property ActivityTrackPoints As ActivityTrackPointCollection

Valore della proprietà

Oggetto ActivityTrackPointCollection che specifica i punti in un'istanza del flusso di lavoro per la quale l'infrastruttura di rilevamento di runtime deve inviare un elemento ActivityTrackingRecord al servizio di rilevamento.

Esempio

Nel seguente esempio di codice viene dimostrato come creare un oggetto TrackingProfile utilizzando il costruttore di TrackingProfile e come utilizzare le proprietà dell'oggetto per consentire di tenere traccia dell'esecuzione di un flusso di lavoro. Nel codice di esempio vengono utilizzate le proprietà ActivityTrackPoints, Version e WorkflowTrackPoints.

Questo esempio di codice fa parte dell'esempio SDK Query using SQLTrackingService nel file Program.cs. Per altre informazioni, vedere Query using SQLTrackingService.

private static void CreateAndInsertTrackingProfile()
{
    TrackingProfile profile = new TrackingProfile();
    ActivityTrackPoint activityTrack = new ActivityTrackPoint();
    ActivityTrackingLocation activityLocation = new ActivityTrackingLocation(typeof(Activity));
    activityLocation.MatchDerivedTypes = true;
    IEnumerable<ActivityExecutionStatus> statuses = Enum.GetValues(typeof(ActivityExecutionStatus)) as IEnumerable<ActivityExecutionStatus>;
    foreach (ActivityExecutionStatus status in statuses)
    {
        activityLocation.ExecutionStatusEvents.Add(status);
    }

    activityTrack.MatchingLocations.Add(activityLocation);
    profile.ActivityTrackPoints.Add(activityTrack);
    profile.Version = version;

    WorkflowTrackPoint workflowTrack = new WorkflowTrackPoint();
    WorkflowTrackingLocation workflowLocation = new WorkflowTrackingLocation();
    IEnumerable<TrackingWorkflowEvent> eventStatuses = Enum.GetValues(typeof(TrackingWorkflowEvent)) as IEnumerable<TrackingWorkflowEvent>;
    foreach (TrackingWorkflowEvent status in eventStatuses)
    {
        workflowLocation.Events.Add(status);
    }

    workflowTrack.MatchingLocation = workflowLocation;
    profile.WorkflowTrackPoints.Add(workflowTrack);

    TrackingProfileSerializer serializer = new TrackingProfileSerializer();
    StringWriter writer = new StringWriter(new StringBuilder(), CultureInfo.InvariantCulture);
    serializer.Serialize(writer, profile);
    string trackingprofile = writer.ToString();
    InsertTrackingProfile(trackingprofile);
}
Shared Sub CreateAndInsertTrackingProfile()
    Dim profile As TrackingProfile = New TrackingProfile()

    Dim activityTrack As ActivityTrackPoint = New ActivityTrackPoint()
    Dim activityLocation As ActivityTrackingLocation = New ActivityTrackingLocation(GetType(Activity))
    activityLocation.MatchDerivedTypes = True
    Dim statuses As IEnumerable(Of ActivityExecutionStatus) = CType(System.Enum.GetValues(GetType(ActivityExecutionStatus)), IEnumerable(Of ActivityExecutionStatus))
    For Each status As ActivityExecutionStatus In statuses
        activityLocation.ExecutionStatusEvents.Add(status)
    Next

    activityTrack.MatchingLocations.Add(activityLocation)
    profile.ActivityTrackPoints.Add(activityTrack)
    profile.Version = version

    Dim workflowTrack As WorkflowTrackPoint = New WorkflowTrackPoint()
    Dim workflowLocation As WorkflowTrackingLocation = New WorkflowTrackingLocation()
    Dim eventStatuses As IEnumerable(Of TrackingWorkflowEvent) = CType(System.Enum.GetValues(GetType(TrackingWorkflowEvent)), IEnumerable(Of TrackingWorkflowEvent))
    For Each status As TrackingWorkflowEvent In eventStatuses
        workflowLocation.Events.Add(status)
    Next

    workflowTrack.MatchingLocation = workflowLocation
    profile.WorkflowTrackPoints.Add(workflowTrack)

    Dim serializer As TrackingProfileSerializer = New TrackingProfileSerializer()
    Dim writer As StringWriter = New StringWriter(New StringBuilder(), CultureInfo.InvariantCulture)
    serializer.Serialize(writer, profile)
    Dim trackingProfile As String = writer.ToString()
    InsertTrackingProfile(trackingProfile)
End Sub

Commenti

Un'istanza del flusso di lavoro genera eventi dello stato dell'attività nell'infrastruttura di rilevamento di runtime ogni volta che l'elemento ActivityExecutionStatus di un'istanza dell'attività viene modificato. L'infrastruttura di rilevamento di runtime utilizza la proprietà ActivityTrackPoints per filtrare questi eventi dello stato dell'attività allo scopo di stabilire quando inviare un oggetto ActivityTrackingRecord al servizio di rilevamento. È possibile aggiungere un oggetto ActivityTrackPoint alla proprietà ActivityTrackPoints per specificare i punti di interesse nel percorso di esecuzione potenziale dell'istanza del flusso di lavoro per cui si desidera che l'infrastruttura di runtime invii un oggetto ActivityTrackingRecord.

Un oggetto ActivityTrackPoint in realtà non definisce un punto fisico in un'istanza del flusso di lavoro, bensì definisce un set di parametri di corrispondenza che possono essere utilizzati dall'infrastruttura di rilevamento di runtime per associare un evento dello stato dell'attività per il quale deve inviare un oggetto ActivityTrackingRecord. Pertanto, è possibile trovare più corrispondenze dello stesso oggetto ActivityTrackPoint durante il ciclo di vita di un'istanza del flusso di lavoro. Un oggetto ActivityTrackPoint può inoltre specificare dati da estrarre dall'istanza del flusso di lavoro e da restituire nell'oggetto ActivityTrackingRecord.

Si applica a

Vedi anche