Condividi tramite


Esempio di annullamento di flusso di lavoro

Download sample

In questo esempio viene illustrato come uscire da un flusso di lavoro in attesa di un evento esterno che non trascorrerà mai. Il flusso di lavoro è un esempio di report di spesa che invia un report di spesa e attende l'approvazione. Tuttavia, l'esempio è stato creato in modo che l'evento di approvazione non arrivi mai.

L'applicazione console dell'host implementa una funzionalità di annullamento del flusso di lavoro che implica la chiusura del flusso di lavoro non terminato. La differenza tra questa funzionalità e la chiamata al metodo Terminate per terminare un flusso di lavoro è che la chiusura è un'uscita forzata e anormale che non genera gestori di eccezioni o di compensazione. Il metodo utilizzato da questo esempio consente ai gestori di eccezioni e di compensazione di rimuovere ed eventualmente terminare il flusso di lavoro.

A tal scopo, l'applicazione host esegue una query sul runtime per individuare quale attività blocca il flusso di lavoro. Il nome della coda del flusso di lavoro viene restituito nel metodo GetWorkflowQueueData. Un'eccezione non gestita dal flusso di lavoro viene recapitata a questa coda tramite il metodo EnqueueItem.

Nota

In questo esempio, l'evento inattivo viene utilizzato per determinare se il flusso di lavoro è in pausa nell'attesa di un evento ma un'applicazione più affidabile deve essere in grado di confermare che il flusso di lavoro non sia inattivo per altre ragioni.

L'output dell'esempio apparirà come riportato di seguito:

Output dell'esempio di annullamento di un flusso di lavoro

Per generare l'esempio

  1. Scaricare l'esempio facendo clic su Scarica esempio.

    In tal modo viene estratto il progetto di esempio sul disco rigido locale.

  2. Fare clic sul pulsante Start, scegliere Programmi, Microsoft Windows SDK e fare clic su CMD Shell.

  3. Accedere alla directory di origine dell'esempio.

  4. Al prompt dei comandi, immettere MSBUILD <nome file soluzione>.

Per eseguire l'esempio

  • Nella finestra del prompt dei comandi di SDK, eseguire il file exe nella cartella CancelWorkflow\bin\debug (o nella cartella CancelWorkflow\bin per la versione VB dell'esempio), collocata sotto la cartella principale dell'esempio.

Configurazioni del database

I servizi SQL installati da Windows Workflow Foundation utilizzano Microsoft SQL Server per archiviare le informazioni. Per queste attività è possibile utilizzare SQL Server 2005 Express, SQL Server 2000 o versioni più recenti o SQL Server 2000 Desktop Engine (MSDE).

Il programma di installazione di Windows Workflow Foundation non installa i database richiesti da questi servizi; tuttavia, il programma di installazione installa gli script SQL per la creazione e la configurazione dei database per tali servizi.

I passaggi riportati di seguito descrivono come creare e configurare i database utilizzati dai servizi in questo esempio.

Per creare e configurare il database SQL Server

  1. Se si utilizza Microsoft SQL Server 2005 Express, SQL Server 2000 o versioni più recenti oppure SQL Server 2000 Desktop Engine (MSDE), creare un nuovo database denominato SqlPersistenceService utilizzando l'istruzione della query SQL:

    CREATE DATABASE SqlPersistenceService

    NotaSe si utilizzano SqlTrackingService e SqlWorkflowPersistenceService in un'applicazione del flusso di lavoro, è consigliabile utilizzare un unico database per la persistenza e il rilevamento.

  2. Nell'area di lavoro SQL Query Analyzer, selezionare il database creato al passaggio 1 nell'elenco di database disponibili.

  3. Nel menu File, fare clic su Apri e aprire lo script SQL %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<lingua>\SqlPersistenceService_Schema.

  4. Eseguire la query facendo clic su Esegui o premendo F5 per creare le tabelle del servizio di persistenza SQL.

  5. Nel menu File, fare clic su Apri e aprire lo script SQL %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<lingua>\SqlPersistenceService_Logic.

  6. Eseguire la query facendo clic su Esegui o premendo F5 per creare le stored procedure del servizio di persistenza SQL.

Vedere anche

Riferimenti

GetWorkflowQueueData
EnqueueItem
WorkflowQueueInfo
TerminateActivity
Terminate

Altre risorse

Esempi di hosting
Hosting the Windows Workflow Foundation Runtime

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.