Realizzare workflow a stati con Windows Workflow Foundation

5 pagine in totale: <<Indietro 1 [2] 3 4 5 Avanti >>

Il nostro primo workflow a stati

Per creare un workflow a stati all'interno di Visual Studio .NET 2005, abbiamo a disposizione, in seguito all'installazione del SDK, il template State Machine Console Application che consente di creare un workflow a stati e testarne il funzionamento in una Console Application, e il template State Machine Workflow Library, utile a creare una libreria di classi, con all'interno uno state machine workflow, che potrà essere poi legato ad una o più applicazioni host. Tali template sono disponibili una volta installato il runtime di Workflow Foundation e le relative estensioni per Visual Studio.

Una volta creato il progetto, abbiamo un workflow vuoto dove inserire i vari stati e le varie transizioni utili a creare il flusso di operazioni richiesto.
Nel nostro esempio, abbiamo sviluppato un workflow per la gestione del ciclo di vita di un prodotto all'interno di un ipotetico carrello della spesa, creando stati ed eventi per gestire l'inserimento, la modifica, la rimozione e l'eventuale completamento dell'ordine. Ognuna di queste azioni, riguardanti il singolo prodotto, viene gestita da uno degli stati del nostro workflow. Gli stati che abbiamo definito sono rappresentati in figura.

Shopping Cart Workflow

All'interno di ogni stato, abbiamo una o più EventDrivenActivity in grado di rispondere agli eventi scatenati dall'applicazione host; la struttura di ogni attività di questo tipo deve seguire un unico vincolo: la prima attività inserita deve implementare l'interaccia IEventActivity, poiché deve essere in grado di sottoscrivere un particolare tipo di evento; inoltre non ci devono essere altre attività che implementano tale interfaccia, poiché ogni EventDrivenActivity può rispondere ad uno e un solo evento.

L'activity che serve al nostro caso è la HandleExternalEventActivity, che ha appunto il compito di rispondere ad un evento esterno al workflow, scatenato dall'applicazione host, e di far procedere il flusso con eventuali nuove transizioni di stato.

OnItemInserted event driven activity

Le transizioni di stato, invece, vengono eseguite dall'activity SetStateActivity, che necessita di avere valorizzata la proprietà TargetStateName con il nome dello stato in cui si vuol far dirigere il flusso di operazioni.

5 pagine in totale: <<Indietro 1 [2] 3 4 5 Avanti >>

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.



TUTORIALS


IN EVIDENZA
MISC