Partager via


EventArgs Tracking, exemple

Download sample

Cet exemple montre l'utilisation du service de suivi SQL fourni par Windows Workflow Foundation pour suivre l'exécution d'un workflow.

L'exécution d'un workflow déclenche certains événements. Le service de suivi peut intercepter ces événements et stocker des informations les concernant dans une base de données SQL Server qui peut être interrogée.

L'exécution de suivi définit les types TrackingWorkflowTerminatedEventArgs, TrackingWorkflowSuspendedEventArgs et TrackingWorkflowExceptionEventArgs pour conserver des informations sur l'arrêt, l'interruption et les exceptions de workflows. Les WorkflowEventArgs sont envoyés avec le WorkflowTrackingRecord pour les événements correspondants. Par exemple, les TrackingWorkflowTerminatedEventArgs sont envoyés avec WorkflowTrackingRecord lorsque l'état de workflow atteint un état WorkflowTerminated.

Le SqlTrackingService reçoit ces différents objets EventArgs à mesure qu'ils se présentent, les sérialise et les enregistre dans la base de données de suivi avec leurs événements si le profil de suivi demande ces événements. Le formulaire sérialisé peut ensuite être désérialisé et employé par des utilisateurs de suivi. Le profil de suivi qui est utilisé est le profil de suivi par défaut SqlTrackingService.

NoteRemarque :

La valeur horaire dans un WorkflowTrackingRecord est exprimée en temps universel coordonné (GMT).

Vue d'ensemble de l'exemple

L'exemple est une application console de workflow et se compose de deux workflows :

  • ExceptionWorkflow. Un workflow simple avec un gestionnaire de code, dans lequel une exception est levée. L'exception n'est pas gérée et entraîne l'arrêt du workflow.

  • SuspendedWorkflow. Un workflow simple avec une activité d'interruption. Le workflow doit atteindre un état suspendu.

L'entrée principale de l'exemple se trouve dans la classe Program, dont la logique est la suivante :

  1. Crée un connectionString à la base de données SqlTrackingService.

  2. Ajoute SqlTrackingService à l'exécution de workflow comme suit :

    workflowRuntime.AddService(new SqlTrackingService(connectionString));
    
  3. Exécute les workflows comme suit :

    WorkflowInstance exceptionWorkflowInstance = workflowRuntime.CreateWorkflow(typeof(ExceptionWorkflow));
    exceptionWorkflowInstance.Start();
    
  4. Crée des gestionnaires d'événements pour attendre la fin ou l'arrêt du workflow (selon le type de ce dernier).

  5. Interroge le SqlTrackingService pour des WorkflowEvents spécifiques et récupère l'objet sérialisé binaire de TrackingWorkflowTerminatedEventArgs, TrackingWorkflowSuspendedEventArgs et de TrackingWorkflowExceptionEventArgs.

  6. Désérialise les données et écrit leur contenu dans la console.

Création de la base de données SqlTrackingService

Les services SQL installés par Windows Workflow Foundation utilisent Microsoft SQL Server pour stocker des informations. Vous pouvez utiliser Microsoft SQL Server 2005 Express, SQL Server 2000 et versions ultérieures ou SQL Server 2000 Desktop Engine (MSDE) pour ces tâches.

Windows Workflow Foundation Setup n'installe pas les bases de données requises par ces services ; toutefois, il installe les scripts SQL pour créer et configurer les bases de données pour ces services.

Pour créer la base de données de suivi SQL

  1. À l'aide de Microsoft SQL Server 2005 Express, SQL Server 2000 et versions ultérieures ou SQL Server 2000 Desktop Engine (MSDE), créez une base de données nommée Tracking avec l'instruction de requête SQL :

    CREATE DATABASE Tracking

    Remarque   lors de l'utilisation simultanée de SqlTrackingService et de SqlWorkflowPersistenceService dans une application de workflow, il est recommandé d'utiliser une base de données unique à la fois pour la persistance et le suivi.

  2. Dans l'espace de travail de l'Analyseur de requêtes SQL, sélectionnez la base de données que vous avez créée à l'étape 1 dans la liste des bases de données disponibles.

  3. Dans le menu Fichier, cliquez sur Ouvrir et ouvrez le script SQL %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<langue>\Tracking_Schema.sql.

  4. Exécutez la requête en cliquant sur Exécuter ou en appuyant sur la touche F5 pour créer les tables de service de suivi SQL.

  5. Dans le menu Fichier, cliquez sur Ouvrir et ouvrez le script SQL %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<langue>\Tracking_Logic.sql.

  6. Exécutez la requête en cliquant sur Exécuter ou en appuyant sur la touche F5 pour créer les procédures stockées de service de suivi SQL.

Pour générer l'exemple

  1. Téléchargez l'exemple en cliquant sur Télécharger l'exemple.

    L'exemple de projet est alors extrait sur votre disque dur local.

  2. Cliquez sur Démarrer, pointez sur Programmes, puis sur Microsoft Windows SDK et cliquez sur Environnement de commande.

  3. Accédez au répertoire source de l'exemple.

  4. À l'invite de commandes, tapez MSBUILD <Nom du fichier solution>.

Pour exécuter l'exemple

  • Dans la fenêtre Invite de commandes du Kit de développement SDK, exécutez le fichier .exe dans le dossier EventArgsTrackingSample\bin\debug (ou le dossier EventArgsTrackingSample\bin pour la version VB de l'exemple), situé sous le dossier principal de l'exemple.

Voir aussi

Référence

SqlTrackingService
SqlTrackingQuery
SqlTrackingWorkflowInstance
ActivityEvents
ActivityTrackingRecord
WorkflowEvents
WorkflowTrackingRecord

Autres ressources

Exemples de suivi
Simple Tracking, exemple
Query Using SQLTrackingService, exemple
Tracking Using User Track Points, exemple
ConsoleTrackingService, exemple
Query Using SQLTrackingService, exemple
RuleActionTrackingEvent, exemple
File Tracking Service and Query, exemple
Using the Tracking Profile Object Model, exemple
SQL Data Maintenance, exemple
Windows Workflow Tracking Services

Footer image

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