Beispiel für das Abbrechen eines Workflows

Download sample

In diesem Beispiel wird veranschaulicht, wie ein Workflow beendet wird, der auf ein externes Ereignis wartet, das niemals eintritt. Der Workflow ist ein Beispiel zur Erstellung eines Ausgabenberichts, in dem der Workflow einen Ausgabenbericht sendet und auf eine Genehmigung wartet. Das Beispiel wurde jedoch so erstellt, dass das Genehmigungsereignis niemals eintritt.

Die Hostanwendung implementiert ein Feature zum Abbrechen des Workflows, das die Beendigung des nicht endenden Workflows bewirkt. Der Unterschied zwischen diesem Feature und dem Aufruf der Terminate-Methode zum Beenden eines Workflows besteht darin, dass es sich um eine erzwungene und nicht ordnungsgemäße Beendigung handelt, die keine Ausnahme- oder Kompensierungshandler ausführt. Die in diesem Beispiel verwendete Methode ermöglicht Ausnahme- und Kompensierungshandlern, den Workflow zu entladen und schließlich zu beenden.

Zu diesem Zweck fragt die Hostanwendung die Laufzeit ab, um zu ermitteln, durch welche Aktivität der Workflow blockiert wird. Der Warteschlangenname des Workflows wird in der GetWorkflowQueueData-Methode zurückgegeben. Eine von dem Workflow nicht behandelte Ausnahme wird dieser Warteschlange über die EnqueueItem-Methode zugestellt.

Tipp

In diesem Beispiel wird das in den Leerlauf versetzte Ereignis verwendet, um zu bestimmen, ob der Workflow angehalten wurde, weil er auf ein Ereignis wartet. Eine robustere Anwendung sollte jedoch bestätigen, dass der Workflow aus keinen anderen Gründen in den Leerlauf versetzt wurde.

Die Ausgabe des Beispiels sieht folgendermaßen aus:

Abbrechen einer Workflow-Beispielausgabe

So erstellen Sie das Beispiel

  1. Laden Sie das Beispiel herunter, indem Sie auf Beispiel downloaden klicken.

    Hierdurch wird das Beispielprojekt auf die lokale Festplatte extrahiert.

  2. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft Windows SDK, und klicken Sie dann auf CMD Shell.

  3. Wechseln Sie zum Quellverzeichnis des Beispiels.

  4. Geben Sie an der Eingabeaufforderung MSBUILD <Name der Projektmappendatei> ein.

So führen Sie das Beispiel aus

  • Führen Sie im Eingabeaufforderungsfenster des SDKs die EXE-Datei im Ordner CancelWorkflow\bin\debug aus (bzw. im Ordner CancelWorkflow\bin für die VB-Version des Beispiels), der sich unter dem Hauptordner des Beispiels befindet.

Datenbankkonfiguration

Die von Windows Workflow Foundation installierten SQL-Dienste verwenden Microsoft SQL Server, um Informationen zu speichern. Sie können für diese Aufgaben SQL Server 2005 Express, SQL Server 2000 oder höhere Versionen oder SQL Server 2000 Desktop Engine (MSDE) verwenden.

Das Setup von Windows Workflow Foundation installiert nicht die Datenbanken, die von diesen Diensten benötigt werden. Das Setup installiert jedoch die SQL-Skripte zum Erstellen und Konfigurieren der Datenbanken für diese Dienste.

Anhand der folgenden Schritte wird beschrieben, wie Sie die von den Diensten in diesem Beispiel verwendeten Datenbanken erstellen und konfigurieren.

So erstellen und konfigurieren Sie die SQL Server-Datenbank

  1. Erstellen Sie mit Microsoft SQL Server 2005 Express, SQL Server 2000 oder höheren Versionen oder mit SQL Server 2000 Desktop Engine (MSDE) eine neue Datenbank mit dem Namen SqlPersistenceService, indem Sie die folgende SQL-Abfrageanweisung verwenden:

    CREATE DATABASE SqlPersistenceService

    Hinweis   Wenn Sie sowohl SqlTrackingService als auch SqlWorkflowPersistenceService in einer Workflowanwendung verwenden, wird empfohlen, dass Sie eine einzige Datenbank für Persistenz und Überwachung verwenden.

  2. Wählen Sie im SQL Query Analyzer-Arbeitsbereich die in Schritt 1 erstellte Datenbank aus der Liste der verfügbaren Datenbanken aus.

  3. Klicken Sie im Menü Datei auf Öffnen, und öffnen Sie das SQL-Skript %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<Sprache>\SqlPersistenceService_Schema.

  4. Führen Sie die Abfrage aus, indem Sie auf Ausführen klicken oder F5 drücken, um die SqlPersistenceService-Tabellen zu erstellen.

  5. Klicken Sie im Menü Datei auf Öffnen, und öffnen Sie das SQL-Skript %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<Sprache>\SqlPersistenceService_Logic.

  6. Führen Sie die Abfrage aus, indem Sie auf Ausführen klicken oder F5 drücken, um die gespeicherten Prozeduren von SqlPersistenceService zu erstellen.

Siehe auch

Referenz

GetWorkflowQueueData
EnqueueItem
WorkflowQueueInfo
TerminateActivity
Terminate

Weitere Ressourcen

Hosting-Beispiel
Hosting the Windows Workflow Foundation Runtime

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.