Beispiel für das Abbrechen eines Workflows
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:
So erstellen Sie das Beispiel
Laden Sie das Beispiel herunter, indem Sie auf Beispiel downloaden klicken.
Hierdurch wird das Beispielprojekt auf die lokale Festplatte extrahiert.
Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft Windows SDK, und klicken Sie dann auf CMD Shell.
Wechseln Sie zum Quellverzeichnis des Beispiels.
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
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.
Wählen Sie im SQL Query Analyzer-Arbeitsbereich die in Schritt 1 erstellte Datenbank aus der Liste der verfügbaren Datenbanken aus.
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.
Führen Sie die Abfrage aus, indem Sie auf Ausführen klicken oder F5 drücken, um die SqlPersistenceService-Tabellen zu erstellen.
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.
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
Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.