Canceling a Workflow, exemple
Cet exemple montre comment quitter un workflow en attente d'un événement externe qui ne se produira jamais. Le workflow est un exemple de création de notes de frais qui envoie une note de frais et attend son approbation. Toutefois, l'exemple a été créé afin que l'événement d'approbation ne se produise jamais.
L'application console hôte implémente une fonctionnalité d'annulation de workflow qui entraîne la fermeture du workflow qui ne prend pas fin. La différence entre cette fonctionnalité et l'appel de la méthode Terminate pour mettre fin à un workflow réside dans le fait qu'il s'agit d'une sortie forcée et anormale qui n'exécute pas de gestionnaire d'exception ou de compensation. La méthode employée par cet exemple permet aux gestionnaires d'exceptions et de compensation de dérouler et finalement de terminer le workflow.
Pour ce faire, l'application hôte interroge l'exécution afin de découvrir quelle activité bloque le workflow. Le nom de la file d'attente du workflow est renvoyé dans la méthode GetWorkflowQueueData. Une exception qui n'est pas gérée par le workflow est remise à cette file d'attente via la méthode EnqueueItem.
Remarque : |
---|
Dans cet exemple, l'événement inactif est utilisé pour déterminer si le workflow est suspendu en attente d'un événement, mais une application plus fiable doit confirmer que le workflow n'est pas inactif pour d'autres raisons. |
Le résultat obtenu pour cet exemple se présentera comme suit :
Pour générer l'exemple
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.
Cliquez sur Démarrer, pointez sur Programmes, puis sur Microsoft Windows SDK et cliquez sur Environnement de commande.
Accédez au répertoire source de l'exemple.
À 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 CancelWorkflow\bin\debug (ou le dossier CancelWorkflow\bin pour la version VB de l'exemple), situé sous le dossier principal de l'exemple.
Configuration de la base de données
Les services SQL installés par Windows Workflow Foundation utilisent Microsoft SQL Server pour stocker des informations. Vous pouvez utiliser 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.
Les étapes suivantes décrivent comment créer et configurer les bases de données utilisées par les services de cet exemple.
Pour créer et configurer la base de données SQL Server
À 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 SqlPersistenceService avec l'instruction de requête SQL :
CREATE DATABASE SqlPersistenceService
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.
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.
Dans le menu Fichier, cliquez sur Ouvrir et ouvrez le script SQL %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<langue>\SqlPersistenceService_Schema.
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 persistance SQL.
Dans le menu Fichier, cliquez sur Ouvrir et ouvrez le script SQL %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<langue>\SqlPersistenceService_Logic.
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 persistance SQL.
Voir aussi
Référence
GetWorkflowQueueData
EnqueueItem
WorkflowQueueInfo
TerminateActivity
Terminate
Autres ressources
Exemples d'hébergement
Hosting the Windows Workflow Foundation Runtime
Copyright ©2007 par Microsoft Corporation. Tous droits réservés.