Partager via


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

SqlTrackingService

Autres ressources

Simple Tracking Example
Référence générale sur Windows Workflow Foundation

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.