TrackingProfile.WorkflowTrackPoints Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene la raccolta di track point del flusso di lavoro utilizzata dall'infrastruttura di rilevamento di runtime per filtrare eventi dello stato del flusso di lavoro.
public:
property System::Workflow::Runtime::Tracking::WorkflowTrackPointCollection ^ WorkflowTrackPoints { System::Workflow::Runtime::Tracking::WorkflowTrackPointCollection ^ get(); };
public System.Workflow.Runtime.Tracking.WorkflowTrackPointCollection WorkflowTrackPoints { get; }
member this.WorkflowTrackPoints : System.Workflow.Runtime.Tracking.WorkflowTrackPointCollection
Public ReadOnly Property WorkflowTrackPoints As WorkflowTrackPointCollection
Valore della proprietà
Oggetto WorkflowTrackPointCollection che specifica i punti in un'istanza del flusso di lavoro per cui l'infrastruttura di rilevamento di runtime deve inviare un elemento WorkflowTrackingRecord 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 del flusso di lavoro nell'infrastruttura di rilevamento di runtime ogni volta che si verifica un evento TrackingWorkflowEvent che indica che lo stato di un'istanza del flusso di lavoro è stato modificato. L'infrastruttura di rilevamento di runtime utilizza la proprietà WorkflowTrackPoints per filtrare tali stati del flusso di lavoro allo scopo di stabilire quando inviare un oggetto WorkflowTrackingRecord al servizio di rilevamento. È possibile aggiungere un oggetto WorkflowTrackPoint alla proprietà WorkflowTrackPoints per specificare i punti di interesse nel percorso di esecuzione potenziale dell'istanza del flusso di lavoro per cui si desidera che venga inviato un oggetto WorkflowTrackingRecord.
Un oggetto WorkflowTrackPoint in realtà non definisce un punto fisico in un'istanza del flusso di lavoro, bensì definisce uno o più valori dell'oggetto TrackingWorkflowEvent che possono essere utilizzati dall'infrastruttura di rilevamento di runtime per associare gli eventi dello stato del flusso di lavoro. Pertanto, è possibile trovare più corrispondenze dello stesso oggetto WorkflowTrackPoint durante il ciclo di vita di un'istanza del flusso di lavoro. Un oggetto WorkflowTrackPoint può inoltre specificare qualsiasi annotazione da restituire nell'oggetto WorkflowTrackingRecord.