Partager via


Workflow Monitor, exemple

Download sample

Le Moniteur de workflow est un outil permettant d'afficher les informations d'état d'activité et de workflow concernant les workflows terminés ou en cours d'exécution. Le moniteur lit des informations de suivi de la base de données de suivi et affiche l'état d'activité et de workflow actuel, ainsi que l'exécution de workflow actuelle à l'aide du contrôle de concepteur de workflow.

Pour que le Moniteur de workflow fonctionne correctement, tous les types de workflow qui ont des informations de suivi dans la base de données doivent se trouver dans le cache GAC ou dans le même répertoire que le fichier exécutable du Moniteur de workflow. S'il manque des types, vous recevrez une erreur lors du chargement de la définition de workflow. En outre, vous devrez créer une base de données de suivi et exécuter les workflows pour le Moniteur de workflow puisse détecter correctement les types de workflow.

Consultez les sections suivantes relatives à l'ajout du service de suivi sql à votre exécution de workflow afin que les événements soient suivis dans la base de données de suivi sql.

Configuration d'un hôte pour la surveillance

Pour que le moniteur affiche les workflows et les activités, il doit disposer du code de sérialisation et de conception. Tous les types de workflow et d'activité doivent être inscrits dans le cache GAC (Global Assembly Cache) à l'aide de gacutil.exe ou placés dans le même répertoire que WorkflowMonitor.exe. En outre, l'accès aux types est requis par SqlTrackingQuery pour lire des workflows, des informations d'activité et des définitions de workflow à partir des tables SqlTrackingService.

La procédure suivante montre comment configurer la base de données de suivi utilisée par l'application Moniteur de workflow.

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 T:System.Workflow.Runtime.Tracking.SqlTrackingService et de T:System.Workflow.Runtime.Hosting.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.

Configuration de l'application hôte

Pour configurer une application hôte en vue de l'utilisation du SqlTrackingService, ajoutez le service SqlTrackingService à la collection WorkflowRuntime de services, soit par programme, soit via un fichier de configuration. Définissez la propriété ConnectionString pour le nom du serveur et la base de données. Affectez à la propriété IsTransactional du service SqlTrackingService la valeur false afin que les données à la disposition du moniteur soient actuelles (si la propriété IsTransactional a la valeur true, les informations sont regroupées par lots avant d'être écrites dans la base de données).

Pour ajouter le service SqlTrackingService par programme, utilisez l'exemple de code suivant :

C#:

WorkflowRuntime workflowRuntime = new WorkflowRuntime();

SqlTrackingService sqlTrackingService = new SqlTrackingService("Initial Catalog=Tracking;Data Source=localhost;Integrated Security=SSPI;");

sqlTrackingService.IsTransactional = false;

workflowRuntime.AddService(sqlTrackingService);

workflowRuntime.StartRuntime();

Visual Basic:

Dim workflowRuntime As New WorkflowRuntime()

Dim sqlTrackingService As New SqlTrackingService("Initial Catalog=Tracking;Data Source=localhost;Integrated Security=SSPI;")

sqlTrackingService.IsTransactional = false

workflowRuntime.AddService(sqlTrackingService)

workflowRuntime.StartRuntime()

Pour ajouter le service SqlTrackingService via un fichier de configuration, le code de l'application hôte doit spécifier le nom de la section de configuration dans le constructeur WorkflowRuntime et le fichier de configuration (par exemple, app.config) doit contenir les informations de configuration de WorkflowRuntime. Par exemple :

Application hôte

C#:
WorkflowRuntime workflowRuntime = new WorkflowRuntime("WorkflowRuntimeConfigurationSection");
workflowRuntime.StartRuntime();

Visual Basic:
Dim workflowRuntime As New WorkflowRuntime("WorkflowRuntimeConfigurationSection")
workflowRuntime.StartRuntime()

Fichier de configuration

<configuration>
    <configSections>
        <section name="WorkflowRuntimeConfigurationSection" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </configSections>
    <WorkflowRuntimeConfigurationSection Name="WorkflowRuntimeConfigurationSectionName" UnloadOnIdle="false">
        <Services>
            <add type="System.Workflow.Runtime.Tracking.SqlTrackingService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  ConnectionString="Initial Catalog=TrackingStore;Data Source=localhost;Integrated Security=SSPI;" IsTransactional="false" UseDefaultProfile="true" />
        </Services>
    </WorkflowRuntimeConfigurationSection>
</configuration>

Interface utilisateur du moniteur

L'interface du moniteur contient trois volets principaux :

  • Volet de workflows

  • Volet d'activités

  • Volet de vue de workflow

Le moniteur lit tous les workflows suivis. Pour spécifier le nom de l'ordinateur et la base de données, utilisez la boîte de dialogue Settings. Pour ouvrir cette boîte de dialogue, cliquez sur Settings dans le menu Monitor ou cliquez sur le bouton de barre d'outils Settings.

Barre d'outils d'options de recherche de workflows

Cette barre d'outils affiche des options de recherche pour l'outil. Vous pouvez effectuer une recherche à l'aide d'une combinaison d'états de workflow et d'intervalles de temps lorsque l'état s'est produit, et en suivant des valeurs d'élément de données. Vous pouvez également effectuer une recherche par ID de workflow. Par exemple, vous pouvez rechercher des workflows qui se sont terminés la veille et où l'élément de données de suivi PurchaseAmount avait une valeur de 500 dans l'activité CheckCredit.

NoteRemarque :

Par défaut, le profil de suivi par défaut SqlTrackingService extrait tous les workflows, activités et événements trackpoints utilisateur. Il n'extrait pas les données de suivi de workflow. Par conséquent, vous ne pouvez pas effectuer de recherche par élément de données de suivi tant que vous n'avez pas mis à jour le profil de suivi par défaut ou le profil de suivi associé au type spécifique que vous exécutez. Vous pouvez utiliser un script SQL qui est disponible avec cet exemple, UpdateV1DefaultTrackingProfile.sql, pour mettre à jour le profil de suivi par défaut afin d'extraire la propriété Name à partir d'activités.

Pour ce faire, servez-vous de l'élément suivant dans le profil de suivi :

<Extracts>
    <WorkflowDataTrackingExtract>
        <Member>Name</Member>
    </WorkflowDataTrackingExtract>
</Extracts>

Volet de workflows

Ce volet affiche tous les workflows dans la base de données de suivi avec l'état de chaque workflow. Lorsqu'un workflow est sélectionné, la base de données de suivi est interrogée pour connaître l'état en cours de toutes les activités terminées et en cours d'exécution pour ce workflow ; ces activités sont affichées dans le volet d'activités.

Volet d'activités

Ce volet affiche toutes les activités et états d'activité pour le workflow sélectionné dans le volet de workflows.

Volet de vue de workflow

Ce volet héberge le contrôle du concepteur de workflow livré avec Windows Workflow Foundation. Il permet à l'utilisateur de développer et de réduire des activités composites et de modifier la vue de workflow (vue principale, exceptions, événements ou compensation). Lorsqu'un workflow est sélectionné dans le volet de workflows, le volet de workflows affiche une coche pour toutes les activités terminées, ainsi qu'une icône de "lecture" pour toutes les activités en cours d'exécution.

Les options de menu pour le Moniteur de workflow sont les suivantes :

Menu File

Exit - Permet de quitter le programme.

Menu View

Workflow Details - S'il est activé, affiche les volets de workflows et d'activités.

Menu Monitor

Start/Stop - Démarre ou arrête la surveillance.

Settings - Affiche la boîte de dialogue Settings.

Boutons de barre d'outils

Les boutons de la barre d'outils pour le Moniteur de workflow sont les suivants :

  • Settings - Affiche la boîte de dialogue Settings (pour plus d'informations, consultez la section "Paramètres").

  • Monitor On - Commence la surveillance de la base de données de suivi (consultez "Utilisation du moniteur").

  • Monitor Off - Cesse de surveiller la base de données de suivi (consultez "Utilisation du moniteur").

  • Expand All - Développe toutes les activités composites dans la vue de workflow.

  • Collapse All - Réduit toutes les activités composites dans la vue de workflow.

  • Workflow Zoom Level - Définit le niveau de zoom de la vue de workflow.

Paramètres

Utilisez la boîte de dialogue Settings pour configurer le moniteur. Vous pouvez spécifier les champs suivants :

  • SQL Server - Ordinateur local ou distant qui exécute SQL Server.

  • Tracking Database - Base de données utilisée pour stocker les informations de suivi.

  • Polling Interval - Nombre de millisecondes d'attente avant d'interroger à nouveau la base de données.

  • Auto-Select Latest When Polling - Lorsque ce bouton est sélectionné, le volet de workflows sélectionne automatiquement le dernier workflow exécuté.

NoteRemarque :

Le nom du serveur et celui de la base de données apparaissent également dans la barre d'état.

Utilisation du moniteur

Le Moniteur de workflow interroge la base de données de suivi et affiche automatiquement l'état du workflow et des activités dans les volets de workflows et d'activités, ainsi que la progression du workflow dans le volet de vue de workflow. Pour activer la surveillance, utilisez le bouton de la barre d'outils Monitor On ou cliquez sur Start dans le menu Monitor. Utilisez la boîte de dialogue Settings pour définir la fréquence d'interrogation. Pendant que vous surveillez une base de données de suivi, il est utile d'afficher le dernier workflow exécuté. Pour ce faire, activez la case à cocher Auto-Select Latest When Polling dans la boîte de dialogue Settings.

NoteRemarque :

Lorsque la surveillance est activée, le mot "Monitoring" (surveillance) apparaît dans la barre d'état.

Le Moniteur de workflow utilise les API SqlTrackingQuery pour la fonctionnalité d'interrogation. La liste de workflows et d'activités est récupérée via des API SqlTrackingQuery. Les fonctionnalités de recherche utilisent les API SqlTrackingQuery.

Plusieurs définitions du même type de workflow

Le SqlTrackingService rend la définition de workflow persistante la première fois qu'un nouveau type de workflow est utilisé. Toutefois, si la définition change et que la version du type reste la même, un nouvel enregistrement n'est pas rendu persistant dans la base de données de suivi. Par conséquent, le moniteur affiche toujours la première définition d'un type de workflow.

Paramètres utilisateur

Le Moniteur de workflow enregistre les paramètres (SQL Server, base de données, fréquence d'interrogation) dans le fichier workflowmonitor.config sous le répertoire suivant : \Documents and Settings \<utilisateur>\Local Settings\Application Data\Microsoft Corporation\Windows Workflow Foundation SDK Application Samples\3.0.0.0.

Voir aussi

Référence

SqlTrackingService

Autres ressources

Using the SQLTrackingService
Task 4: Use the Windows Workflow Tracking Service
Simple Tracking, exemple
Exemples d'applications

Footer image

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