Endpoint di gestione del flusso di lavoro
Le informazioni contenute in questo argomento sono valide per Windows Workflow Foundation 4.
L'endpoint di gestione del flusso di lavoro consente agli sviluppatori di chiamare operazioni di controllo per controllare in remoto le istanze del flusso di lavoro ospitate utilizzando WorkflowServiceHost. Questa funzionalità può essere utilizzata per eseguire operazioni di controllo a livello di codice, quali la sospensione, la ripresa e la terminazione.
Gestione delle istanze di flusso di lavoro
.NET Framework versione 4 definisce un nuovo contratto denominato IWorkflowInstanceManagement. Questo contratto definisce una serie di operazioni di controllo che consentono di controllare in remoto istanze del flusso di lavoro di controllo ospitate da WorkflowServiceHost. WorkflowControlEndpoint è un endpoint standard che fornisce un'implementazione del contratto IWorkflowInstanceManagement. WorkflowControlClient è una classe utilizzata per inviare le operazioni di controllo a WorkflowControlEndpoint.
Le istanze del flusso di lavoro possono essere in uno dei seguenti stati:
- Attivo
Lo stato di un'istanza del flusso di lavoro prima che raggiunga lo stato completato e quando non si trova nello stato sospeso. In questo stato, l'istanza del flusso di lavoro è in esecuzione ed elabora messaggi dell'applicazione.
- Sospeso
In questo stato, l'istanza del flusso di lavoro non è in esecuzione neppure se sono presenti attività non ancora in esecuzione o parzialmente in esecuzione.
- Completato
Lo stato finale dell'istanza di un flusso di lavoro. L'istanza del flusso di lavoro non può essere in esecuzione dopo avere raggiunto lo stato completato.
IWorkflowInstanceManagement
L'interfaccia IWorkflowInstanceManagement definisce un set di operazioni di controllo con versioni sincrone e asincrone. Le versioni transazionali richiedono l'utilizzo di un'associazione in grado di riconoscere le transazioni. Nella tabella riportata di seguito vengono elencate le operazioni di controllo supportate.
Operazione di controllo | Descrizione |
---|---|
Abort |
Interrompe in modo forzato l'esecuzione dell'istanza del flusso di lavoro. |
Cancel |
Esegue il passaggio di un'istanza del flusso di lavoro dallo stato attivo o sospeso allo stato completato. |
Run |
Fornisce la possibilità di esecuzione di un'istanza del flusso di lavoro. |
Suspend |
Esegue il passaggio di un'istanza del flusso di lavoro dallo stato attivo allo stato sospeso. |
Terminate |
Esegue il passaggio di un'istanza del flusso di lavoro dallo stato attivo o sospeso allo stato completato. |
Unsuspend |
Esegue il passaggio di un'istanza del flusso di lavoro dallo stato sospeso allo stato attivo. |
TransactedCancel |
Esegue l'operazione Cancel in una transazione (propagata dal client o creata in locale). Se il sistema gestisce lo stato durevole dell'istanza del flusso di lavoro, quest'ultima deve essere resa persistente durante l'esecuzione di questa operazione. |
TransactedRun |
Esegue l'operazione Run in una transazione (propagata dal client o creata in locale). Se il sistema gestisce lo stato durevole dell'istanza del flusso di lavoro, quest'ultima deve essere resa persistente durante l'esecuzione di questa operazione. |
TransactedSuspend |
Esegue l'operazione Suspend in una transazione (propagata dal client o creata in locale). Se il sistema gestisce lo stato durevole dell'istanza del flusso di lavoro, quest'ultima deve essere resa persistente durante l'esecuzione di questa operazione. |
TransactedTerminate |
Esegue l'operazione Terminate in una transazione (propagata dal client o creata in locale). Se il sistema gestisce lo stato durevole dell'istanza del flusso di lavoro, quest'ultima deve essere resa persistente durante l'esecuzione di questa operazione. |
TransactedUnsuspend |
Esegue l'operazione Unsuspend in una transazione (propagata dal client o creata in locale). Se il sistema gestisce lo stato durevole dell'istanza del flusso di lavoro, quest'ultima deve essere resa persistente durante l'esecuzione di questa operazione. |
Il contratto IWorkflowInstanceManagement non consente di creare una nuova istanza del flusso di lavoro, ma solo di gestire istanze del flusso di lavoro esistenti. Per ulteriori informazioni su come creare in remoto una nuova istanza del flusso di lavoro, vedere Estensibilità host del servizio flusso di lavoro.
WorkflowControlEndpoint
WorkflowControlEndpoint è un endpoint standard con un contratto fisso, IWorkflowInstanceManagement. Se aggiunto a un'istanza WorkflowServiceHost, questo endpoint può essere quindi utilizzato per inviare operazioni di comando a qualsiasi istanza del flusso di lavoro ospitata dall'istanza del host. Per ulteriori informazioni su endpoint standard, vedere Standard Endpoints.
WorkflowControlClient
WorkflowControlClient è una classe che consente di inviare messaggi del controllo a un WorkflowControlEndpoint su un WorkflowServiceHost. Contiene un metodo per ogni operazione supportata dal contratto IWorkflowInstanceManagement, ad eccezione delle operazioni transazionali. WorkflowControlClient utilizza la transazione di ambiente per determinare se utilizzare un'operazione transazionale.