Base de données du service de suivi du workflow
Le service de suivi SQL dans Windows Workflow Foundation vous permet d'ajouter des informations de suivi à propos des workflows et de leurs activités associées. La classe SqlTrackingQuery fournit un accès de niveau supérieur aux données contenues dans la base de données de suivi. Toutefois, vous pouvez également utiliser des requêtes directes sur les vues de base de données de service de suivi SQL pour obtenir plus d'informations détaillées. Ces vues mappent directement aux schémas de table de service de suivi SQL sous-jacents.
Tables de base de données de service de suivi SQL
Les informations suivantes présentent les tables et leurs colonnes associées utilisées par le service de suivi SQL.
Workflow
La table de workflow stocke la définition de tous les types de workflow suivis par SqlTrackingService. Elle est remplie la première fois qu'un workflow est instancié et SqlTrackingService est activé pour ce type de workflow.
Colonne | Description |
---|---|
WorkflowTypeId |
Crée un lien vers la table Type qui stocke le nom de type et d'assembly où le type de workflow apparaît. |
WorkflowDefinition |
Définition du workflow. |
Activité
La table Activity stocke tous les types d'activité qui apparaissent dans les types de workflow correspondants.
Colonne | Description |
---|---|
WorkflowTypeId |
Crée un lien vers la table Type qui stocke le nom de type et d'assembly où le type de workflow apparaît. |
QualifiedName |
Le nom complet de l'activité de la définition de workflow. |
ActivityTypeId |
Crée un lien vers la table Type qui stocke le nom de type et d'assembly où le type d'activité apparaît. |
ParentQualifiedName |
Si l'activité fait partie d'une autre activité, ce champ maintient le nom complet de l'activité parente. |
Type
La table Type stocke toutes les informations de type et les noms d'assembly dans lesquels les types se produisent. Cela inclut les types de workflow, les types d'activité et tous les autres types utilisés dans SqlTrackingService. Par exemple, si vous avez suivi une chaîne comme un élément de données de suivi, les informations de type de chaîne sont stockées dans cette table.
Colonne | Description |
---|---|
TypeId |
ID unique du type. |
TypeFullName |
Nom complet du type. |
AssemblyFullName |
Nom complet de l'assembly dans lequel le type est stocké. |
IsInstanceType |
Valeur Boolean qui indique si l'instance de workflow est uniquement une instance XOML (dans ce cas, le type et les noms complets d'assembly auront la valeur null). |
WorkflowInstance
La table WorkflowInstance maintient la liste de toutes les instances de workflow qui ont effectué un suivi dans la base de données de suivi.
Colonne | Description |
---|---|
WorkflowInstanceInternalId |
ID interne unique donné à l'instance de workflow par la base de données. Il est utilisé comme une clé étrangère pour joindre d'autres tables dans la base de données. |
WorkflowInstanceId |
GUID de l'instance de workflow. |
ContextGuid |
Informations de contexte à propos de cette instance de workflow. |
CallerInstanceId |
ID de l'instance de workflow qui a appelé cette instance de workflow. |
CallPath |
Chemin d'appel complet qui est utilisé au cas où l'instance de workflow est appelée par une instance de workflow, qui ensuite est appelée par une autre instance de workflow. |
CallerContextGuid |
Informations de contexte à propos de l'appelant. |
CallerParentContextGuid |
Informations de contexte à propos de l'instance de workflow parente de l'instance appelante. |
WorkflowTypeId |
Crée un lien vers la table de workflow à l'aide de l'ID de type workflow. |
InitializedDateTime |
Date et heure de l'initialisation de l'instance de workflow. |
CreatedDateTime |
Date et heure de création de l'instance de workflow. |
DbInitializedDateTime |
Date et heure de la base de données lorsque l'enregistrement de l'instance du workflow a été initialisé. |
EndDateTime |
Date et heure de la fin/de l'arrêt de l'instance de workflow. |
DbEndDateTime |
Date et heure de la base de données lorsque l'enregistrement de l'instance du workflow a été validé. |
ActivityInstance
La table ActivityInstance est utilisée pour stocker les instances des activités suivies. La relation entre cette table et la table WorkflowInstance est de type plusieurs-à-un.
Colonne | Description |
---|---|
WorkflowInstanceInternalId |
ID interne de la base de données de l'instance de workflow à laquelle l'activité appartient. |
ActivityInstanceId |
ID unique de l'activité qui est suivie pour une instance de workflow donnée. |
QualifiedName |
Nom complet de l'activité de la définition de workflow. |
ContextGuid |
Contexte de l'activité. |
ParentContextGuid |
Contexte de l'activité parente. |
WorkflowInstanceEventId |
ID unique de l'enregistrement de l'événement d'instance du workflow. |
ActivityExecutionStatusEvent
La table ActivityExecutionStatusEvent stocke les différents états qu'une activité a eu au cours de son cycle de vie. Pour une activité donnée dans une instance de workflow donnée, il peut y avoir plusieurs états d'activité. Seul l'un d'eux correspond à l'état actuel.
Colonne | Description |
---|---|
ActivityExecutionStatusEventId |
ID unique d'un enregistrement de l'état de l'exécution de l'activité. |
WorkflowInstanceInternalId |
ID interne de la base de données de l'instance de workflow à laquelle l'activité appartient. |
EventOrder |
Ordre dans lequel l'événement s'est produit. |
ActivityInstanceId |
ID unique de l'activité pour laquelle l'état est enregistré. |
ExecutionStatusId |
Crée un lien vers la table ActivityExecutionStatus, qui stocke les différentes descriptions d'état. |
EventDateTime |
Date et heure auxquelles l'événement s'est produit. |
DbEventDateTime |
Date et heure de la base de données auxquelles l'événement s'est produit. |
ActivityExecutionStatus
La table ActivityExecutionStatus est une table de référence qui stocke les valeurs littérales de tous les états d'exécution potentiels d'une activité.
Colonne | Description |
---|---|
ExecutionStatusId |
ID unique de l'état. |
Description |
Valeur littérale de l'état. |
TrackingDataItem
Pour chaque état d'activité, la table TrackingDataItem stocke un jeu de variables, de propriétés, etc. semblables à des données, si SqlTrackingService suit ces éléments (tel qu'indiqué par le profil de suivi). Le profil de suivi peut spécifier quels attributs de workflow doivent être suivis lorsqu'une activité particulière atteint un état particulier.
Colonne | Description |
---|---|
TrackingDataItemId |
ID unique qui représente l'enregistrement d'un artefact donné pour un état donné d'une activité qui appartient à une table WorkflowInstance particulière. |
WorkflowInstanceInternalId |
ID interne de base de données de l'instance de workflow. |
EventID |
ID d'événement où l'élément de données de suivi a été extrait. |
EventTypeId |
Type de l'événement où l'élément de données de suivi a été extrait. |
FieldName |
Nom de la variable (élément de données) suivie. |
FieldTypeId |
ID de type de la variable (élément de données) suivie. Cela référence la table de type. |
Data_Str |
Valeur de chaîne des données suivies (si c'est un type primitif et qu'elle peut être convertie en chaîne). |
Data_Blob |
Valeur d'objet blob de la valeur des données suivies (si c'est un type non primitif et que la valeur peut être sérialisée en binaire). |
DataNonSerializable |
Indicateur permettant de signaler qu'il y avait des données, mais qu'il n'a pas été possible de les convertir en une chaîne ou de les sérialiser en binaire. |
TrackingDataItemAnnotation
La table TrackingDataItemAnnotation stocke toute annotation faite dans le workflow pour un élément de données de suivi donné. Les annotations sont indiquées par le profil de suivi.
Colonne | Description |
---|---|
TrackingDataItemId |
ID de l'élément de données de suivi pour lequel l'annotation est stockée. |
WorkflowInstanceInternalId |
ID interne de base de données de l'instance de workflow. |
Annotation |
Valeur littérale de l'annotation. |
EventAnnotation
La table EventAnnotation stocke toute annotation associée aux événements de workflow.
Colonne | Description |
---|---|
WorkflowInstanceInternalId |
ID interne de base de données de l'instance de workflow. |
EventID |
ID interne de base de données de l'événement au cours duquel l'annotation s'est produite. |
EventTypeId |
ID interne de base de données du type de l'événement. |
Annotation |
Valeur littérale de l'annotation. |
WorkflowInstanceEvent
La table WorkflowInstanceEvent stocke les différents événements d'un workflow au cours de son cycle de vie. Il peut y avoir plusieurs événements pour une instance de workflow donnée, toutefois, seul l'un d'eux correspond à l'événement actuel.
Colonne | Description |
---|---|
WorkflowInstanceEventId |
ID unique de l'enregistrement de l'événement d'instance du workflow. |
WorkflowInstanceInternalId |
ID interne de la base de données de l'instance de workflow à laquelle l'activité appartient. |
EventDateTime |
Date et heure auxquelles l'événement s'est produit. |
EventOrder |
Ordre dans lequel l'événement s'est produit. |
EventArgTypeId |
ID interne de base de données pour le type de données des arguments d'événement. |
EventArg |
Données sérialisées en binaire des arguments d'événement. |
DbEventDateTime |
Date et heure de la base de données auxquelles l'événement s'est produit. |
TrackingWorkflowEvent
La table TrackingWorkflowEvent stocke les valeurs littérales de tous les événements d'un workflow.
Colonne | Description |
---|---|
TrackingWorkflowEventId |
ID unique de l'événement. |
Description |
Valeur littérale de l'événement. |
UserEvent
La table UserEvent stocke les différents événements qui sont émis et suivis par les trackpoints personnalisés de l'utilisateur. Une instance de workflow donnée peut avoir plusieurs événements utilisateur.
Colonne | Description |
---|---|
UserEventId |
ID unique de l'événement utilisateur. |
WorkflowInstanceInternalId |
ID interne de la base de données de l'instance de workflow à laquelle l'activité appartient. |
EventOrder |
Ordre dans lequel l'événement s'est produit. |
ActivityInstanceId |
ID unique de l'activité dans laquelle l'événement utilisateur s'est produit (où le code qui émet l'événement se produit dans le code de workflow). |
EventDateTime |
Date et heure auxquelles l'événement s'est produit. |
UserDataKey |
Valeur de clé passée dans l'événement utilisateur (lorsque vous utilisez la méthode TrackData). |
UserDataTypeId |
ID de type dans la table Type des données utilisateur suivies. |
UserData_Str |
Valeur de chaîne des données suivies (si c'est un type primitif et qu'elle peut être convertie en chaîne). |
UserData_Blob |
Valeur d'objet blob de la valeur des données suivies (si c'est un type non primitif et que la valeur peut être sérialisée en binaire). |
DataNonSerializable |
Indicateur permettant de signaler qu'il y avait des données, mais qu'il n'a pas été possible de les convertir en une chaîne ou de les sérialiser en binaire. |
DbEventDateTime |
Date et heure de la base de données auxquelles l'événement s'est produit. |
AddedActivity
La table AddedActivity stocke les activités ajoutées au workflow lorsqu'une modification de workflow se produit. Plusieurs activités peuvent être ajoutées pour chaque modification de workflow.
Colonne | Description |
---|---|
WorkflowInstanceInternalId |
ID interne de base de données de l'instance de workflow. |
WorkflowInstanceEventId |
Référence à l'événement de l'instance de workflow. |
QualifiedName |
Nom complet de l'activité ajoutée. |
ActivityTypeId |
Crée un lien vers la table Type pour indiquer le type et le nom d'assembly pour l'activité ajoutée dans le cadre de la modification dynamique. |
ParentQualifiedName |
Nom complet de l'activité parente dans laquelle cette activité est contenue. |
AddedActivityAction |
Valeur sérialisée de l'objet ActivityChangeAction créé à partir de l'événement de mise à jour dynamique. |
Order |
Ordre dans lequel l'activité a été ajoutée au workflow. |
RemovedActivity
La table RemovedActivity stocke toutes les activités supprimées par une modification de workflow. De nombreuses activités peuvent être supprimées pour chaque modification de workflow.
Colonne | Description |
---|---|
WorkflowInstanceInternalId |
ID interne de base de données de l'instance de workflow. |
WorkflowInstanceEventId |
Référence à l'événement de l'instance de workflow. |
QualifiedName |
Nom complet de l'activité supprimée. |
ParentQualifiedName |
Nom complet de l'activité parente dans laquelle cette activité est contenue. |
RemovedActivityAction |
Valeur sérialisée de l'objet ActivityChangeAction créé à partir de l'événement de mise à jour dynamique. |
Order |
Ordre dans lequel l'activité a été ajoutée au workflow. |
TrackingProfile
La table TrackingProfile stocke le profil de suivi d'un type de workflow donné.
Colonne | Description |
---|---|
TrackingProfileId |
ID unique du profil de suivi. |
Version |
Version du profil de suivi qui doit correspondre à la version du profil de suivi (TrackingProfile.Version ou attribut de version dans le XML du profil de suivi). |
WorkflowTypeId |
Crée un lien vers la table Type qui stocke le nom de type et d'assembly du workflow. |
TrackingProfileXml |
XML du profil de suivi. |
InsertDateTime |
Date et heure auxquelles le profil a été inséré. |
TrackingProfileInstance
La table TrackingProfileInstance stocke les profils de suivi associés aux instances de workflow spécifiques. Elle est utilisée lorsque les différents profils sont utilisés pour les instances de workflow différentes.
Colonne | Description |
---|---|
InstanceId |
ID interne d'instance de workflow pour lequel le profil de suivi est stocké. |
TrackingProfileXml |
XML du profil de suivi. |
UpdatedDateTime |
Date et heure auxquelles la mise à jour s'est produite. |
DefaultTrackingProfile
La table DefaultTrackingProfile stocke le profil de suivi par défaut. Si un profil de suivi n'est pas associé à un type de workflow donné, le profil de suivi par défaut est utilisé.
Colonne | Description |
---|---|
Version |
Numéro de version du profil de suivi qui doit correspondre à la version du profil de suivi (TrackingProfile.Version ou attribut de version dans le XML du profil de suivi). |
TrackingProfileXml |
XML du profil de suivi. |
InsertDateTime |
Date et heure auxquelles le profil de suivi a été inséré. |
TrackingPartitionInterval
La table TrackingPartitionInterval stocke l'intervalle de partition pour permettre le partitionnement lors de la maintenance des données. Cela se produit seulement lorsque la propriété PartitionOnCompletion de la classe SqlTrackingService a la valeur true. La valeur par défaut est mensuelle (« m »). Vous pouvez la définir sur quotidienne (« d ») ou annuelle (« y »).
Colonne | Description |
---|---|
Interval |
Intervalle dans lequel vous souhaitez partitionner les tables. |
TrackingPartitionSetName
La table TrackingPartitionSetName contient les informations relatives au nom de l'ensemble de partitions.
Colonne | Description |
---|---|
PartitionId |
ID unique de la partition. |
Name |
Nom de la partition. |
CreatedDateTime |
Date et heure auxquelles la partition a été créée. |
EndDateTime |
Date et heure auxquelles la partition s'est terminée. |
PartitionInterval |
Intervalle de partition de cet ensemble de partitions spécifique. |
Rôles de la base de données de service de suivi SQL
tracking_writer
Le compte qui exécute le processus hôte doit être exécuté sous ce rôle. Le rôle possède des autorisations pour récupérer les profils de suivi et écrire des données de suivi.
tracking_reader
Les comptes dans ce rôle peuvent consulter toutes les données mais ne peuvent pas mettre à jour ou modifier les données. Les utilisateurs dans ce rôle n'ont également aucun accès aux tables sous-jacentes.
tracking_profilereaderwriter
Il s'agit du rôle des comptes d'utilisateur qui doivent modifier les données de profil.
Voir aussi
Référence
Autres ressources
Simple Tracking Example
Référence générale sur Windows Workflow Foundation
Copyright ©2007 par Microsoft Corporation. Tous droits réservés.