Installazione del processo
Per poter installare il processo definito all’interno di Camunda, è necessario produrre una web
application che contiene i seguenti elementi:
- Il file .bpmn precedentemente salvato;
- La classe contrassegnata come Delegato del Service Task “Pubblica Articolo"
- Una classe che estende la
ServletProcessApplication
di Camunda
nella quale annotiamo il nome del nostro processo
(org.camunda.bpm.application.impl.ServletProcessApplication
); - Un file
process.xml
che contiene la configurazione del processo.
Di seguito la struttura dell’applicazione:
PubblicaArticoloDelegate
deve estendere la classe JavaDelegate
di Camunda ed implementare il
metodo execute
. Nell'esempio execute
si limiterà
a stampare informazioni del processo.
public abstract class PubblicaArticoloDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
…
}
}
Creiamo inoltre
MyProcessApplication
che estende la
ServletProcessApplication
di Camunda e annotiamo il nome del nostro
processo. Durante il deploy Camunda effettuerà un scan delle
classi del classpath e, individuata una classe
annotata come ProcessApplication
, provvederà ad installare il
processo.
@ProcessApplication("Pubblicazione Articolo")
public class MyProcessApplication extends ServletProcessApplication {
}
Infine creiamo un file XML nel quale indichiamo alcune impostazioni utili al ciclo di vita del processo.
Una volta prodotto il pacchetto (war)
copiamolo in server\apache-tomcat-8.0.24\webapps
di Tomcat. Dalla console di Tomcat possiamo notare che Camunda riconosce il processo e lo rende disponibile.
Per avere conferma che tutto sia stato
fatto in maniera corretta utilizziamo Cockpit. Nella dashboard
possiamo notare che il processo è disponibile e non ci sono istanze
attive. Camunda lo ha correttamente installato e gli
ha assegnato in automatico l'identificativo Definition ID
.
Istanza del processo
Ora possiamo creare un’istanza del
processo e verificarne il flusso. Passiamo a "tasklist" e
clicchiamo su "Start Process" dalla barra in alto. Ci verrà chiesto quale
processo startare, selezioniamo quindi “Pubblicazione
Articolo".
Definiamo anche una business key, un
identificativo (non univoco in Camunda) per contrassegnare l’istanza
che stiamo creando e una variabile di processo che contiene il titolo
dell’articolo.
Dopo aver startato
torniamo su Cockpit, possiamo notare che c’è un’istanza running del
nostro processo ferma sul primo Human Task.
Simuliamo ora di essere un autore, di aver completato la scrittura dell’articolo e che vogliamo inviarlo
per l’approvazione del redattore. Torniamo in "Tasklist",
clicchiamo su "All Tasks", selezioniamo il Task "Creazione Articolo" e
prendiamo in carico lo human task tramite "claim".
Da questo momento
il task può essere lavorato soltanto dall’utente che lo ha preso in
carico. Selezioniamo il task è clicchiamo su "complete". In fase di
completamento del task possiamo aggiungere eventuali variabili di
processo (note
nell’esempio).
Se torniamo in Cockpit possiamo notare
che lo stato del processo è cambiato ed è fermo sullo Human Task
“Review Articolo".
Simuliamo ora di essere un redattore,
torniamo in Cockpit, individuiamo il task "Review Articolo", facciamo la
claim e completiamo il task. A questo punto il flusso arriva al Service
Task. Dalla console di Tomcat abbiamo la conferma che il task viene
eseguito correttamente.