WORKSHOP Chronos Jpdl Designer versione 1.0 Progetto ELISA Introduzione all’utilizzo dello strumento di disegno Chronos Bologna, 17 settembre 2009 1 Agenda Introduzione Lo strumento di disegno Creazione di un nuovo progetto Struttura del progetto Creazione di una catena Chronos Menù delle catene Manuali Menù delle catene Automatiche Configurazione dei nodi Costruzione dell’archivio .par Esercizi Domande 2 Introduzione 1/2 Obiettivo: mostrare l’utilizzo dello strumento di disegno di una catena Chronos. Una catena Chronos è un insieme di attività correlate finalizzate al raggiungimento di un obiettivo. La catena viene eseguita dall’ Engine Chronos. L’Engine Chronos è un componente software che mantiene lo stato delle catene in esecuzione assegnando incarichi a persone ed applicazioni. 3 Introduzione 2/2 Lo strumento di disegno consente di fornire una descrizione formale di una catena. Al termine del progetto viene prodotto un file xml che rappresenta il flusso del processo Il Designer converte la rappresentazione grafica della catena in un formato testuale 4 Lo strumento di disegno è un plug-in di Eclipse fornisce un ambiente per la definizione formale di una catena permette di progettare sia catene manuali che automatiche Il plug-in offre: • una nuova perspective • • nuovi pannelli grafici una lista di componenti di disegno da utilizzare per la definizione dei proprie catene 5 Creazione di un nuovo progetto Dalfinestra menù File scegliere New, Project, La richiede indicare la Inserire il nome del di progetto quindidi“CHRONOS JPDL” e cui locazione engine (di jBPM da e scegliere ilun percorso default selezionare “New Chronos Project” prelevarne laalconfigurazione. corrisponde workspace corrente). Premere “Next” Cliccando su next si accede alla finestra successiva. Terminata la configurazione premere su “Finish” 6 Struttura del progetto Nel pannello “Package Explorer” sarà visibile il nuovo progetto costituito dalle seguenti cartelle: src/main/jpdl: contiene le definizioni delle catene src/test/java: contiene una classe di test src/main/config: contiene un file hibernate di default src/main/java: si possono inserire eventuali handler personalizzati (versioni future – nodo java) 7 Creazione di una catena Chronos La strumento di disegno consente di definire sia Catene Manuali che Catene Automatiche Una Catena Automatica contiene nodi che non richiedono l’intervento umano per l’avanzamento del processo. Una Catena Manuale contiene almeno un nodo che richiede un’interazione con un operatore per consentire al processo di avanzare al nodo successivo. La procedura per creare catene manuali o catene automatiche è la medesima. 8 Menù delle catene Manuali permette di selezionare nell’area di disegno i componenti inseriti per visualizzarne la configurazione o poterli spostare, eliminare o rinominare permette di selezionare più componenti nell’area di disegno, questa operazione consente lo spostamento un individua blocco delil disegno consente di posizionare uno step ‘Start State’diche punto o la sua cancellazione tramite il pulsante ‘canc’ della tastiera. di avvio della catena. consente di posizionare uno step ‘End State’ che individua il punto di Lo strumento di disegno permette di inserire uno e un solo ‘Start State’. terminazione della catena. consente di posizionare uno step ‘Fork’ che consente l’esecuzione di due o E’ possibile inserire più nodi End.attendendo la loro completa esecuzione più flussi in parallelo. raccoglie i vari percorsi paralleli per poter procedere con lo step successivo. consiste nell’inserire logiche di cicli o di opzionalità nelle catene. Uno stepla‘Decision’ permette valutare ouna espressione permette definizione di una di procedura funzione Pl-Sql.booleana e in base alla sua veridicità o meno scegliere tra due o più percorsi che permette la definizione di comandi sql. alternativi. permette l’esecuzione di comandi del sistema operativo, Possibili comandi sono: come creazioni/eliminazioni/copie/spostamenti di cartelle e files, nonché CREATE, DELETE, DROP. permette la INSERT, definizione unoUPDATE, step ovvero un’operazione destinata esecuzioni di qualsiasi di tipologia di umano processo. Non è possibilecon eseguire la SELECT. adinvia un operatore uno specifico ruolo che avrà il compito di prendersi in una mail all’indirizzo configurato. consente di collegare duestep steps definendo così il flusso carico l’esecuzione dello e dichiararne l’esito finale.di esecuzione. Ad una ‘Transition’ può essere assegnato un nome in modo da poter essere utilizzato nel nodo Decision come indicatore di quale percorso intraprendere dopo la valutazione dell’espressione. 9 Menù delle catene Automatiche Il menù della catena automatica ha molti componenti in comune con quello manuale. Nel menù automatico è assente il nodo HumanTask mentre è presente il nodo Process State. Il nodo Process State individua la chiamata di una sottocatena specificata nella configurazione dello step. 10 Sezione Properties La sezione ‘Properties’ consente di configurare: • la catana Chronos • le variabili globali • i singoli nodi I parametri configurabili variano in base al componente selezionato nell’area di disegno. Due sottosezioni sono sempre visibili: General che consente di nominare il componente selezionato e di associarne una descrizione Global Variables che permette di configurare le variabili globali della catena 11 Configurazione delle Global Variables La form consente di definire le variabili globali ed è costituita dai seguenti campi: Move: consente cambiare la posizione della variabile all’interno della tabella. Name: nome della variabile. Label: etichetta della variabile Type: i possibili tipi sono String, Number, Date e Alias AliasSubType: per definire il tipo di Alias nel caso in cui il Type sia ‘Alias’ Default Value: valore di default della variabile Required: check-box che indica se la variabile è obbligatoria Editable: check-box che indica se la variabile è modificabile Hidden: check-box che indica se la variabile è nascosta rispetto all’interfaccia utente Allowed Values: contiene una lista di valori accettati separati dal carattere virgola 12 Viabili globali obbligatorie Per ogni catena occorre definire alcune variabili globali. In presenza di nodi SHELL, SQL e PL-SQL occorre definire almeno due variabili globali: una di tipo ‘Alias’ ed una di tipo ‘String’. La prima definisce la configurazione della connessione del DB, la seconda è utilizzata come variabile di output. In presenza di nodi Human Task occorre definire altre due variabili di tipo stringa: la prima per contenere l’esito dell’operazione e la seconda per tener traccia di un eventuale commento dell’operatore. 13 Nodo Decision Determina il successivo nodo da eseguire valutando un'espressione JSF EL. Per configurare il nodo decison occorre selezionarlo e accedere alla sottosezione ‘Handler’ nella sezione ‘Properties’. Il campo Expression consente di inserire la condizione da valutare per scegliere la prossima transition da eseguire. Esempio di sintassi: #{(A>B && (B==C || C-1==7 || Z=="ELISA")) ? 'ramo1' : 'ramo2'} dove A, B, C e Z sono variabili globali e ramo1 e ramo2 sono i nomi delle due transition uscenti. 14 Nodo PL-SQL Per configurare il nodo PL-SQL occorre selezionarlo e accedere alla sottosezione ‘Local Parameters’ nella sezione ‘Properties’. Il form consente di specificare i parametri necessari a configurare il nodo: Type: specifica se si vuole chiamare una funzione o una procedura Alias: indica la variabile che contiene parametri di connessione ad DB Return: variabile in cui memorizzare il valore restituito (solo function) Return Type: tipo del valore restituito (solo function) Call: nome della funzione/procedura da invocare Is ‘Pause’ Accepted: menù a tendina che permette di dichiarare se la procedura/funzione gestisce o meno l’invocazione di un comando di pausa sull’engine. Parameters’ List: parametri di ingresso/uscita alla funzione/procedura 15 Nodo SQL Per configurare il nodo SQL occorre selezionarlo e accedere alla sottosezione ‘Local Parameters’ nella sezione ‘Properties’. Il form consente di specificare i parametri necessari a configurare il nodo: Alias: specifica la variabile che contiene parametri di connessione ad DB Output: variabile globale in cui memorizzare l’esito dell’esecuzione Queries: lista di query SQL separate dal carattere ‘;’ Parameters’ List: lista parametri SQL utilizzabili secondo la notazione $<posizione> 16 Nodo Shell Per configurare il nodo SHELL occorre selezionarlo e accedere alla sottosezione ‘Local Parameters’ nella sezione ‘Properties’. Il form consente di specificare i parametri necessari a configurare il nodo: Output: variabile globale in cui memorizzare l’output Script: lista dei comandi shell separati da “invio” Is ‘Pause’ Accepted: menù a tendina che permette di dichiarare se la sequenza di comandi gestisce o meno l’invocazione di un comando di pausa sull’engine. Parameters’ List: Lista parametri utilizzabili nello script secondo la notazione $<posizione> 17 Nodo Mail Per configurare il nodo mail occorre selezionarlo e accedere alla sottosezione ‘Mail Info’ nella sezione ‘Properties’. Il form consente di specificare i parametri necessari a configurare il nodo. 18 Nodo Process-State Per configurare il nodo Process-State occorre selezionarlo e accedere alla sottosezione ‘Subprocess’ nella sezione ‘Properties’. Il form consente di specificare i parametri necessari a configurare il nodo: Subpro. Name: nome “esatto” della sottocatene da invocare Verison: se si intende specificare una particolare versione della sottocatena Define used var.: mapping tra le variabili globali della catena padre e della sottocatena 19 Nodo Human-Task Per configurare il nodo Human-Task occorre selezionarlo e accedere alla sottosezione ‘Local Parameters’ nella sezione ‘Properties’. Il form consente di specificare i parametri necessari a configurare il nodo: Grant: ruolo utente a cui è destinata l’esecuzione Comment: variabile globale che memorizza il commento dell’operatore Result: variabile globale destinataria dell’esito dell’esecuzione Max Ready Time: massimo tempo di attesa per la presa in carico Max Exe Time: massimo tempo di esecuzione 20 Costruzione dell’archivio .par 21 Esercitazione Esercitazione 22 Domande? 23