# Workflow (Cycle de vie)
Le cycle de vie (workflow) permet de gérer la vie d'un Smart Element en lui imposant un ensemble d'étapes pour aller de sa création jusqu'à sa fin (moment à partir duquel le Smart Element n'évolue plus).
# Vocabulaire
Les éléments de vocabulaire utilisés dans la définition d'un cycle de vie sont les suivants :
L'étape
: c'est un moment clef de la vie Smart Element.
Elle peut être caractérisée par une activité ou un état.
L'activité
: Elle désigne ce qui doit être fait sur un Smart Element pour une étape donnée.
L'état
: Il désigne le statut du Smart Element.
On parle d'état lorsque le Smart Element est inerte, soit parce que l'on consulte d'anciennes révisions du Smart Element
soit parce qu'on est sur un état final. Il est à noter qu'ici, final ne désigne pas forcément un état en bout de cycle,
mais plutôt un état pour lequel il n'y a rien à faire. Dans notre exemple, diffusé est un état final, sans activité,
car le Smart Element reste inerte, même s'il finira à terme par être archivé.
On peut résumer ces concepts comme suit :
Pour une étape donnée,
l'état désigne comment le Smart Element est arrivé à cette étape
l'activité désigne ce qui doit être fait.
# Définition du cycle de vie
Un cycle de vie est structuré au moyen d'une Smart Structure de workflow et d'un Smart Element de workflow.
La Smart Structure de workflow permet de spécifier :
- le graphe du cycle :
- la liste des étapes,
- la liste des méthodes déclenchées par chaque transition,
- les Smart Fields spécifiques au cycle. Ces Smart Fields peuvent être utilisés dans les traitements des transitions et sont différents pour chaque instance de cycle de vie.
- les paramètres de Smart Structures qui seront utilisables lors des traitements spécifiques liés aux cycles : pour chaque étape et chaque transition, un ensemble de paramètres est généré à partir de la structure.
Le Smart Element de workflow permet de spécifier le paramétrage :
- des minuteurs, mails, etc. déclenchés à chaque étape ou transition
- des acteurs et de leurs droits au fil des différentes étapes du cycle
Généralement une Smart Structure de workflow ne produit qu'un seul Smart Element workflow. Ce Smart Element workflow est ensuite utilisé pour gérer la vie de tous les Smart Elements d'une Smart Structure. Il est toutefois possible de créer plusieurs Smart Elements workflow issus d'une même Smart Structure avec des paramétrages différents. Ils auront en commun la définition du cycle mais pourront avoir des paramétrages différents. Ainsi, par exemple :
- sur une étape E1,
- un courriel sera envoyé au directeur pour le cycle C1
- un courriel sera envoyé au contrôleur pour le cycle C2.
De plus chacun des Smart Elements workflow possède sa propre définition de droits. Ainsi, ce ne sont pas les mêmes acteurs qui jouent les différents rôles de contrôleur, ou de rédacteur.
# Les transitions
Un type de transition est composé :
- de deux conditions de passage de transition :
m0
etm1
, - d'une confirmation du passage de la transition :
nr
, - d'une demande d'informations de transition :
ask
, - de deux traitements :
m2
etm3
.
Lors de l'utilisation de l'IHM, une transition se déroule en plusieurs transactions :
L'utilisateur demande la liste des transitions disponibles. Pour chaque transition :
- Anakeen Platform vérifie que l'utilisateur est autorisé à effectuer cette transition
- Anakeen Platform vérifie que les conditions préalables à la transition sont remplies (
m0
) :- si les conditions sont remplies, la transition est disponible
- sinon, le message d'erreur est disponible au clic et au survol de la transition, et cette dernière est grisée
L'utilisateur clique sur une des transitions :
Si une confirmation de passage de transition ou des informations de transition sont requis, une IHM est présentée pour les demander (dans le cas contraire, on passe directement au point suivant) :
la transition à proprement parler est lancée :
# Précondition m0
m0
fait référence à une méthode de la classe de workflow. Cette méthode sert à déterminer si le
Smart Element est tel qu'il permet d'envisager la transition.
C'est la toute première méthode appelée lors d'une demande de transition.
En cas d'erreur, la transition est abandonnée, et le message d'erreur est retourné à l'utilisateur.
Attention : ce traitement est déclenché lors de l'affichage de la liste des transition et à chaque passage de transition, il peut donc être déclenché assez souvent et il faut lui réserver des analyses peu consommatrices en ressources.
# Informations de transition ask
Les informations de transition référencent des paramètres
ou des Smart Fields du cycle de vie, qui sont demandés à l'utilisateur lors de la transition. Ils doivent être définis
sur la Smart Structure de cycle de vie, et référencés dans la transition au moyen de la clé ask
. Cette clé contient un
tableau des identifiants de tous les paramètres à utiliser.
Comme dans un Smart Element, l'interface correspondant à ces paramètres sera générée par Anakeen Platform; les paramètres sont demandés par l'intermédiaire d'une fenêtre modale.
# Confirmation nr
si nr
n'est pas positionné à true
, alors une confirmation est demandée. Cette confirmation
demande la raison de la transition. Cette raison est facultative.
Cette raison est affichée dans la même fenêtre que les informations de transition. Elle est enregistrée dans l'historique du Smart Element.
# Condition m1
m1
fait référence à une méthode de la classe de workflow. Cette méthode sert à modifier le Smart Element juste avant le
changement d'état. C'est le Smart Element tel qu'il est à l'issue de la méthode m1
qui sera sauvegardé dans
l'historique du Smart Element.
Puisque m1
est appelée après la demande des informations de transition, elle peut servir à valider les valeurs saisies
par l'utilisateur.
# Post-traitement m2
m2
fait référence à une méthode de la classe de workflow. Cette méthode sert à modifier le Smart Element juste après
le changement d'état. C'est le Smart Element tel qu'il est à la suite de m2
qui sera soumis aux minuteurs et envoyé
par mail.
Puisque m2
intervient après le changement d'état, cette méthode n'est pas bloquante. Aussi, retourner un message
n'interrompt pas le processus (mais le message d'information sera bien affiché à l'utilisateur à l'issue de la
transition).
# Traitement final m3
m3
fait référence à une méthode de la classe de workflow. Cette méthode est la dernière exécutée au cours de la
transition (c'est à dire qu'elle intervient après les différents traitements automatiques effectués par Anakeen
Platform).
Elle n'est utile que dans de très rares cas, et est en particulier utilisée lorsqu'une seconde transition doit être déclenchée automatiquement à l'issue de la première.
# Le graphe
Le graphe est constitué d'un ensemble de triplets
- État de départ
- État d'arrivée
- Une transition