Realizzare workflow a stati con Windows Workflow Foundation

di Giuseppe Marchi, in Windows Workflow Foundation,

Un workflow a stati è una delle due possibili tipologie di workflow che possono essere sviluppate in applicazioni basate su Windows Workflow Foundation. Questa particolare tipologia rappresenta un flusso di operazioni basate sui concetti di stati, transizioni ed eventi.

Al contrario di un workflow sequenziale, che viene costruito in modo tale da far eseguire una serie predefinita di azioni una successiva all'altra (come in un approccio procedurale), un workflow a stati permette di modificare il flusso delle operazioni allo scatenarsi di particolari eventi, dando la possibilità di ritornare ai passi precedenti o saltare da un punto all'altro del flusso.
Questo tipo di workflow è composto di due o più stati. Ogni stato rappresenta una particolare situazione del flusso di operazioni che può essere attivata in qualsiasi momento dell'esecuzione, attraverso l'esecuzione di una transizione dallo stato precedente; tale passaggio viene detto "transizione di stato" e può essere eseguita solamente in risposta ad un particolare evento.

E' importante notare che una transizione non deve per forza spostare il flusso da uno stato all'altro, ma può riportare l'esecuzione anche sullo stesso stato, in modo da poter creare una situazione circolare all'interno del workflow.

In Windows Workflow Foundation, un workflow a stati è rappresentato dalla classe StateMachineWorkflowActivity. Questa ha bisogno di uno stato d'inizio (proprietà InitialStateName) ed eventualmente di un stato di fine (proprietà CompletedStateName), mentre ogni singolo stato è rappresentato dalla classe StateActivity. Nell'istante in cui viene scatenato un evento dall'applicazione host, il workflow sposta l'esecuzione tra le varie attività di questo tipo presenti nel flusso.

Ogni attività, ad esclusione dello stato di fine del workflow, può avere al proprio interno una o più EventDrivenActivity. Questo tipo di activity rappresenta l'event handler per un particolare evento che può scatenarsi ed è proprio da questi oggetti che partono le varie transizioni che portano l'esecuzione da uno stato all'altro del workflow. Oltre a queste sotto-attività, il cui ordine può essere deciso a priori, ogni stato può avere un'attività di inizializzazione ed una di finalizzazione, che permettono di eseguire delle azioni personalizzate, rispettivamente all'inizio e alla fine dell'esecuzione delle operazioni presenti in ogni singolo stato.

5 pagine in totale: 1 2 3 4 5

Attenzione: Questo articolo contiene un allegato.

Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti