Durante l'esecuzione di un Workflow, e durante la sua firma, si dispone di un contesto molto ricco per quanto riguarda classi di variabili e variabili locali in linea. Questo contesto dipende dal tipo di Workflow e dal processo in corso (Workflow originale, firma, Workflow successivo ad un primo Workflow). Questo allegato descrive l'algoritmo usato dal motore del Workflow e specifica nel dettaglio le variabili utilizzabili ad ogni stadio.
Occorre notare che l'assistente di formula fornisce un'elenco di varibili derivanti dal contesto per costruire delle formule in maniera più idonea possibile.
Un Workflow di tipo oggetto si scompone in una serie di fasi qui di seguito elencate:
Questa fase consiste nell'assegnare delle variabili globali. Si dispone in particolare della variabile USRWRK che corrisponde all'utente corrente del workflow di origine.
In questa fase, vengono interpretate le formule indicate nella regola, e le si memorizzano in una variabile dimensionata chiamata VALEXP. Ciò permette di disporre in particolare dei valori aggregati che non sono utilizzati obbligatoriamente come criteri di definizione dei destinatari, ma semplicemente utili nel procedimento del Workflow (per esempio per decidere l'invio di un messaggio in funzione dei valori minimo, massimo e medio di un elemento).
Il numero di valori calcolati è contenuto nella variabile NBCOL.
Si cercherà in seguito, a partire dai valori calcolati, la riga della regola corrispondente, per alimentare il riquadro di variabili USER (indicizzato da 1 a 10 al massimo).
Questa fase si suddivide in varie fasi intermedie. Si determinano inizialmente un certo numero di valori:
In seguito, si verificano le condizioni di esecuzione nella testata del Workflow. Se queste condizioni sono soddisfatte, si realizzano le seguenti operazioni:
Questa fase realizza le seguenti operazioni:
Questa fase realizza l'aggiornamento della riga di avanzamento da elaborre nella tabella AWRKHISSUI. La transazione corrispondente è separata da quelle precedenti (ma viene eseguita solo se le precedenti sono sono andate a buon fine).
Un Workflow di tipo firma è attivato in seguito ad un'azione di firma (sia manuale dal piano di lavoro, sia automatica in seguito ad un altro evento di Workflow o di una notifica tramite un clic su un link).
Le fasi corrispondenti sono le seguenti:
Le variabili ereditate dal contesto di firma sono alimentate in questa fase. Queste variabili sono le seguenti:
NUMORG | numero cronologico di origine. |
USRORG | destinario dell'evento di origine. |
NUMSIG | crono su cui è stato attivato il processo di firma. |
USRDES | destinatario del crono su cui è stato attivato il processo di firma. |
USRWRK | utente che firma. |
MAIWRK | indirizzo di posta elettonica del firmatario, quando la firma si effettua tramite un link http esterno. |
LEVSIG | Livello di firma (l'evento di origine assume il numero 0, gli eventi che si susseguono assumono i numeri successivi a partire da 1). |
RETORG | Chiave dell'oggetto su cui è stato attivato il Workflow di origine. |
CONTXT | Riferimento dell'icona di ritorno. |
CLEOBJ | Numero del crono firmato. |
CTX(1..15) | Variabili del contesto. |
S_USER | Destinatario che ha attivato il Workflow di origine. |
S_CLEOBJ | Chiave di attivazione (oggetto o raggruppamento). |
S_ABREV | Abbreviazione dell'oggetto del Workflow di origine. |
S_NBRUSR | Numero di utenti definiti nella regola del Workflow di origine |
La fase della firma di un evento si realizza con il seguente processo:
In seguito, la transazione di firma vera e propria viene effettuata:
Quando un utente firma un avanzamento, le variabili disponibili nel contesto sono le seguenti:
CRONO | crono dell'evento su cui si pone una firma. |
USRDES | codice utente del destinatario. |
USRSIG | Codice utente del firmatario. |
USRMAIL | indirizzo di posta elettonica del firmatario, quando la firma si effettua tramite un link http esterno. |
NUMORG | Crono evento di origine su cui è stata effettuata la prima firma. |
USRORG | Destinatario di questo evento. |
LEVSIG | Livello di firma (l'evento di origine assume il numero 0, gli eventi che si susseguono assumono i numeri successivi a partire da 1). |
USRTOP | Destinatario principale (gli altri sono dei delegati). |
NUMGRP | Gruppo dell'evento da firmare. |
CTX(1..15) | Variabili del contesto. |
S_USER | Destinatario che ha attivato il Workflow di origine. |
S_CLEOBJ | Chiave di attivazione (oggetto o raggruppamento). |
S_ABREV | Abbreviazione dell'oggetto del Workflow di origine. |
S_NBRUSR | Numero di utenti definiti nella regola del Workflow di origine |
Il riquadro di variabili REPCHR permette di sapere se altri destinatari dello stesso evento hanno già firmato. Si conta infatti il numero di gruppi (un gruppo è uguale ad una riga nel riquadro dei firmatari, dal momento in cui un delegato ha firmato, l'evento è firmato e non può essere firmato una seconda volta da un altro membro dello stesso gruppo).
Si ha allora:
REPCHR(0) = numero di risposte rimanenti da effettuare: se per esempio ci sono 4 righe di firmatari nella descrizione dell'evento e se solo uno ha firmato, questo valore sarà uguale a 3.
REPCHR(N°), dove N° può valere da 1 a 10, fornisce il numero di firmatari che hanno risposto con la risposta posizionata sulla riga numero N° nel riquadro delle risposte.
Queste variabili permettono soprattutto di condizionare le fasi successive per il fatto che l'ultimo firmatario in attesa ha risposto, o di lavorare sulle logiche maggioritarie di firma.