TrackingProfile Classe

Définition

Attention

The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*

Définit des points d’intérêt dans le chemin d’exécution potentiel d’une instance de workflow racine à propos de laquelle un service de suivi doit être notifié.

public ref class TrackingProfile
[System.Serializable]
public class TrackingProfile
[System.Serializable]
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public class TrackingProfile
[<System.Serializable>]
type TrackingProfile = class
[<System.Serializable>]
[<System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")>]
type TrackingProfile = class
Public Class TrackingProfile
Héritage
TrackingProfile
Attributs

Exemples

L'exemple de code suivant montre comment créer un TrackingProfile à l'aide du constructeur TrackingProfile et utiliser les propriétés de l'objet pour aider à effectuer le suivi de l'exécution d'un workflow. L'exemple de code utilise les propriétés ActivityTrackPoints, Version et WorkflowTrackPoints.

Cet exemple de code fait partie de l'exemple du Kit de développement logiciel Query using SQLTrackingService (SDK) et provient du fichier Program.cs. Pour plus d’informations, consultez Interroger à l’aide de 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

Remarques

Notes

Ce document décrit les types et les espaces de noms qui sont obsolètes. Pour plus d’informations, consultez Types dépréciés dans Windows Workflow Foundation 4.5.

Durant son exécution, une instance de workflow envoie des événements de suivi à l'infrastructure de suivi d'exécution. L'infrastructure de suivi d'exécution utilise un TrackingProfile pour filtrer ces événements de suivi et retourne des enregistrements de suivi à un service de suivi sur la base de ce filtrage. Il existe trois types d'événements de suivi qui peuvent être filtrés : les événements de statut d'activité, les événements d'état de workflow et les événements d'utilisateur. Vous pouvez ajouter ActivityTrackPoint des objets à la ActivityTrackPoints propriété pour faire correspondre des événements d’état d’activité spécifiques, WorkflowTrackPoint des objets à la WorkflowTrackPoints propriété pour faire correspondre des événements d’état de flux de travail spécifiques et des UserTrackPoint objets à la UserTrackPoints propriété pour correspondre à des événements utilisateur spécifiques. Lorsqu'un trackpoint est mis en correspondance, l'infrastructure de suivi d'exécution retourne les données associées à l'événement de suivi au service de suivi sur le TrackingChannel associé à ce service. Les données sont retournées dans un ActivityTrackingRecord, un WorkflowTrackingRecord ou un UserTrackingRecord selon le type de trackpoint mis en correspondance.

Un service de suivi implémente les méthodes TrackingService dans la classe abstraite afin de permettre à l'infrastructure de suivi d'exécution de demander un TrackingChannel associé au service, et un TrackingProfile associé à une instance de workflow particulière ou à un type de workflow particulier. Un service de suivi doit également implémenter la classe TrackingChannel abstraite pour fournir le canal sur lequel l'infrastructure de suivi d'exécution peut envoyer des enregistrements de suivi.

Lorsque le service de suivi retourne un objet de modèle de suivi à l'exécution, le workflow commence à s'exécuter et le modèle de suivi est sérialisé. Si la sérialisation du modèle de suivi échoue, une exception est levée à l'instance de workflow. Si l'exception n'est pas prise en charge, l'instance de workflow est arrêtée. Le modèle de suivi peut être validé avant d'être passé à l'exécution à l'aide de la propriété Schema.

Un TrackingProfile peut être sérialisé en XML à l'aide du TrackingProfileSerializer, qui met en forme le code XML conformément au Schema. Cela fournit un format commode pour le stockage de profil et pour la création de profil sans programmation. Par exemple, le service de suivi SQL stocke des versions sérialisées de ses profils de suivi, comme tout service de suivi que vous créez sur la base de la classe SqlTrackingService.

Constructeurs

TrackingProfile()
Obsolète.

Initialise une nouvelle instance de TrackingProfile.

Propriétés

ActivityTrackPoints
Obsolète.

Obtient la collection de trackpoints d’activité utilisée par l’infrastructure de suivi d’exécution pour filtrer les événements de statut d’activité.

UserTrackPoints
Obsolète.

Obtient la collection de trackpoints utilisateur utilisée par l’infrastructure de suivi d’exécution pour filtrer les événements utilisateur.

Version
Obsolète.

Obtient ou définit la version du modèle de suivi.

WorkflowTrackPoints
Obsolète.

Obtient la collection de trackpoints de workflow utilisée par l'infrastructure de suivi d'exécution pour filtrer les événements d'état de workflow.

Méthodes

Equals(Object)
Obsolète.

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()
Obsolète.

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()
Obsolète.

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()
Obsolète.

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()
Obsolète.

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi