TrackingProfile.Version 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 o imposta la versione del profilo di rilevamento.
public:
property Version ^ Version { Version ^ get(); void set(Version ^ value); };
public Version Version { get; set; }
member this.Version : Version with get, set
Public Property Version As Version
Valore della proprietà
Oggetto Version dell'oggetto TrackingProfile.
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
A causa della semantica utilizzata dalla memorizzazione nella cache dei profili nel motore di runtime del flusso di lavoro, se si modifica il contenuto di un oggetto TrackingProfile, è necessario aggiornare la proprietà Version. In caso contrario, l'oggetto TrackingProfile aggiornato non può essere caricato dal motore di runtime del flusso di lavoro, anche se restituito da una chiamata al metodo TrackingService.TryReloadProfile, né essere inviato nell'oggetto ProfileUpdatedEventArgs associato a un evento ProfileUpdated. Per assicurasi che l'oggetto TrackingProfile aggiornato venga caricato dal motore di runtime del flusso di lavoro, è necessario pertanto modificare la proprietà Version per l'oggetto TrackingProfile. È possibile quindi chiamare in modo esplicito il metodo WorkflowInstance.ReloadTrackingProfiles su qualsiasi istanza del flusso di lavoro appropriata oppure, per alcune implementazioni, è il servizio di rilevamento a informare il motore di runtime del flusso di lavoro della modifica. Per altre informazioni, vedere TrackingService.