# Déclaration d'une instance de workflow
Une fois le modèle de workflow correctement importé, il est possible de créer un workflow.
La configuration permet de paramétrer :
- le titre du workflow
- une description
- la Smart Structure à laquelle ce workflow peut être attaché
- la Smart Structure à utiliser pour le profilage dynamique
- pour chaque étape
- le profil à appliquer aux Smart Elements à cette étape
- les accès à appliquer aux Smart Fields à cette étape
- le masque à appliquer aux Smart Elements à cette étape
- la couleur de cette étape
- le contrôle de vue à appliquer aux Smart Elements à cette étape
- les mails à envoyer lorsqu'un Smart Element arrive dans cette étape
- les minuteurs à attacher à un Smart Element lorsqu'il arrive dans cette étape
- pour chaque transition
- les mails à envoyer lorsque cette transition est effectuée
- les minuteurs à attacher à un Smart Element lorsqu'il suit cette transition
- les minuteurs persistants à attacher à un Smart Element lorsqu'il suit cette transition
- les minuteurs persistants à détacher d'un Smart Element lorsqu'il suit cette transition
La configuration d'un workflow suit le namespace
https://platform.anakeen.com/4/schemas/workflow/1.0
La création d'un workflow entraîne la création d'un Smart Element qui suit le modèle de workflow.
Propriétés d'un workflow :
Attribut XML | Description |
---|---|
workflow:config/@name | (obligatoire) Référence du workflow. Nom logique du Smart Element créé |
workflow:config/@model | (obligatoire) Référence du modèle workflow. Nom logique du modèle de Workflow |
workflow:config/@structure | Référence de la Smart Structure compatible avec ce workflow. La Smart Structure permet de restreindre les Smart Elements auxquels ce workflow peut être attaché : seuls les Smart Elements de cette Smart Structure et de ses sous-Smart Structures peuvent dépendre de ce workflow. |
workflow:config/@label | Libellé du workflow |
workflow:config/description | Description textuel du workflow |
Exemple :
Le workflow CYCLE_ARTICLE
utilise le modèle MY_WFL_ARTICLE
.
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0"
xmlns:workflow="https://platform.anakeen.com/4/schemas/workflow/1.0">
<workflow:config name="CYCLE_ARTICLE"
model="MY_WFL_ARTICLE"
structure="MY_ARTICLE"
label="Cycle des articles">
<workflow:description>Cycle de vie par défaut pour les articles</workflow:description>
</workflow:config>
</smart:config>
Il est réalisé pour des Smart Elements de type MY_ARTICLE
.
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0">
<smart:structure-configuration name="MY_ARTICLE" label="Article">
<smart:fields>
<smart:field-set name="my_information" type="frame" access="ReadWrite">
<smart:field-text name="my_title" label="Titre" access="ReadWrite" is-title="true"/>
<smart:field-longtext name="my_content" label="Contenu" access="ReadWrite"/>
<smart:field-timestamp name="my_deadlinedate" label="À remettre avant" access="ReadWrite"/>
<smart:field-account name="my_writer" label="Contenu" access="Read"/>
</smart:field-set>
</smart:fields>
</smart:structure-configuration>
</smart:config>
# Workflow par défaut d'une Smart Structure
Pour indiquer que tout nouveau Smart Element d'une Smart Structure donnée utilise un workflow, il faut l'indiquer dans
la configuration de la structure : structure-configuration/default-workflow/@ref
.
Exemple :
Le workflow CYCLE_ARTICLE
est utilisé par défaut pour les Smart Elements de type MY_ARTICLE
.
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0">
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
<!--Default workflow for the structure-->
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
<smart:structure-configuration name="MY_ARTICLE">
<smart:default-workflow ref="CYCLE_ARTICLE"/>
</smart:structure-configuration>
</smart:config>
# Paramétrage par étape
# Profil
Lorsqu'un Smart Element arrive dans cette étape, le profil identifié par cette relation lui est donné en référence.
Attention, ce référencement ne se fait que lors du changement d'état. Aussi, si la valeur de ce Smart Field est changée, les Smart Elements qui sont déjà dans cette étape garderont leur profil.
# Masque
Lorsqu'un Smart Element est dans cette étape, sa consultation et sa modification sont soumises au masque identifié par cette relation.
Attention
Cette valeur est récupérée à chaque accès au Smart Element. Aussi, si la valeur de ce Smart Field est changée, les Smart Elements à cette étape sont directement impactés.
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0"
xmlns:workflow="https://platform.anakeen.com/4/schemas/workflow/1.0">
<workflow:config name="CYCLE_ARTICLE" model="MY_WFL_ARTICLE">
<workflow:steps>
<workflow:step ref="start">
<workflow:mask ref="MSK_START"/>
</workflow:step>
<workflow:step ref="control">
<workflow:mask ref="MSK_CONTROL"/>
</workflow:step>
<workflow:step ref="rejected">
<workflow:mask ref="MSK_REJECTED"/>
</workflow:step>
<workflow:step ref="published">
<workflow:mask ref="MSK_PUBLISHED"/>
</workflow:step>
<workflow:step ref="printed">
<workflow:mask ref="MSK_PRINTED"/>
</workflow:step>
</workflow:steps>
</workflow:config>
</smart:config>
# Couleur
Lorsqu'un Smart Element est dans cette étape, cette couleur lui est associée. Elle est utilisée par les interfaces standards.
Cette couleur doit être au format hexadécimal (#RRGGBB).
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0"
xmlns:workflow="https://platform.anakeen.com/4/schemas/workflow/1.0">
<workflow:config name="CYCLE_ARTICLE" model="MY_WFL_ARTICLE">
<workflow:steps>
<workflow:step ref="start">
<workflow:color>#DFCA9F</workflow:color>
</workflow:step>
<workflow:step ref="control">
<workflow:color>#BECC5A</workflow:color>
</workflow:step>
<workflow:step ref="rejected">
<workflow:color>#CC4D55</workflow:color>
</workflow:step>
<workflow:step ref="published">
<workflow:color>#6B8CCC</workflow:color>
</workflow:step>
<workflow:step ref="printed">
<workflow:color>#65CC69</workflow:color>
</workflow:step>
</workflow:steps>
</workflow:config>
</smart:config>
Attention
Cette valeur est récupérée à chaque accès au Smart Element. Aussi, si la valeur de ce Smart Field est changée, les Smart Elements à cette étape sont directement impactés.
# Contrôle de vue
Lorsqu'un Smart Element arrive dans cette étape, le contrôle de vue identifié par cette relation lui est donné en référence.
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0"
xmlns:workflow="https://platform.anakeen.com/4/schemas/workflow/1.0">
<workflow:config name="CYCLE_ARTICLE" model="MY_WFL_ARTICLE">
<workflow:steps>
<workflow:step ref="start">
<workflow:view-control ref="CV_START"/>
</workflow:step>
<workflow:step ref="control">
<workflow:view-control ref="CV_CONTROL"/>
</workflow:step>
<workflow:step ref="rejected">
<workflow:view-control ref="CV_REJECTED"/>
</workflow:step>
<workflow:step ref="published">
<workflow:view-control ref="CV_PUBLISHED"/>
</workflow:step>
<workflow:step ref="printed">
<workflow:view-control ref="CV_PRINTED"/>
</workflow:step>
</workflow:steps>
</workflow:config>
</smart:config>
Attention
Ce référencement ne se fait que lors du changement d'état. Aussi, si la valeur de ce Smart Field est changée, les Smart Elements qui sont déjà dans cet état gardent leur contrôle de vue.
Attention
Si un état définit un masque et un contrôle de vue, seul le contrôle de vue est pris en compte et le masque est ignoré.
# Modèle de courriel
Lorsqu'un Smart Element arrive dans cette étape, les Modèles de mail identifiés par cette relation sont envoyés à partir du Smart Element.
Plusieurs modèles de mail peuvent être indiqués par étapes.
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0"
xmlns:workflow="https://platform.anakeen.com/4/schemas/workflow/1.0">
<workflow:config name="CYCLE_ARTICLE" model="MY_WFL_ARTICLE">
<workflow:steps>
<workflow:step ref="start">
<workflow:mailtemplate ref="MT_START"/>
</workflow:step>
<workflow:step ref="control">
<workflow:mailtemplate ref="MT_CONTROL1"/>
<workflow:mailtemplate ref="MT_CONTROL2"/>
<workflow:mailtemplate ref="MT_CONTROL3"/>
</workflow:step>
<workflow:step ref="rejected">
<workflow:mailtemplate ref="MT_REJECTED"/>
</workflow:step>
<workflow:step ref="published">
<workflow:mailtemplate ref="MT_PUBLISHED"/>
</workflow:step>
<workflow:step ref="printed">
<workflow:mailtemplate ref="MT_PRINTED"/>
</workflow:step>
</workflow:steps>
</workflow:config>
</smart:config>
En plus des clés spécifiques au Smart Element, le workflow ajoute :
- le commentaire fourni à la confirmation (dans la clé
WCOMMENT
) - les Paramètres de transition
Information
Une fois la déclaration des asks
effectuée, ils sont utilisables dans les modèles de courriel en utilisant la syntaxe
suivante: [V_SMARTFIELD_NAME]
# Minuteur
Lorsqu'un Smart Element arrive dans cette étape, les minuteurs identifiés par cette relation sont donnés en référence au Smart Element.
Si le Smart Element possède déjà des minuteurs, les nouveaux seront ajoutés.
Attention
Ce référencement ne se fait que lors du changement d'état. Aussi, si la valeur de ce Smart Field est changée, les Smart Elements qui sont déjà dans cet état garderont leurs minuteurs.
Attention
Si le Smart Element possède déjà une instance du minuteur à attacher, alors l'instance existante est réinitialisée.
Lorsque le Smart Element quitte cette étape, les minuteurs étant définis à cette étape sont détachés du Smart Element.
Attention
Lorsque le Smart Element quitte cette étape, les instances de tous les minuteurs correspondant à cette étape sont détachés, qu'ils aient été attachés par cette étape, ou par tout autre moyen.
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0" xmlns:workflow="https://platform.anakeen.com/4/schemas/workflow/1.0">
<workflow:config name="CYCLE_ARTICLE" model="MY_WFL_ARTICLE">
<workflow:steps>
<workflow:step ref="start">
<workflow:timer ref="TM_LOGSTARTING"/>
</workflow:step>
<workflow:step ref="control">
<workflow:timer ref="TM_MAILTO_CONTROLLER"/>
</workflow:step>
</workflow:steps>
</workflow:config>
</smart:config>
# Paramétrage des transitions
# Modèle de courriel
Lorsqu'un Smart Element suit cette transition, les Modèle de mail identifiés par cette relation sont envoyés à partir du Smart Element.
Plusieurs modèles de mail peuvent être indiqués par transitions.
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0" xmlns:workflow="https://platform.anakeen.com/4/schemas/workflow/1.0">
<workflow:config name="CYCLE_ARTICLE" model="MY_WFL_ARTICLE">
<workflow:transitions>
<workflow:transition ref="transmission">
<workflow:mailtemplate ref="MT_ALERT1" />
</workflow:transition>
<workflow:transition ref="correcting">
<workflow:mailtemplate ref="MT_ALERT2" />
<workflow:mailtemplate ref="MT_ALERT3" />
</workflow:transition>
</workflow:transitions>
</workflow:config>
</smart:config>
En plus des clés spécifiques au Smart Element, le workflow ajoute :
- les Paramètres de transition
- le commentaire fourni à la confirmation (dans la clé
WCOMMENT
)
# Minuteur
Lorsqu'un Smart Element suit cette transition, les minuteurs identifiés par cette relation sont liés au Smart Element.
Si le Smart Element possède déjà des minuteurs, les nouveaux seront ajoutés.
Attention
Cette liaison ne se fait que lors du changement d'état. Aussi, si la valeur de ce Smart Field est changée, les Smart Elements qui sont déjà dans cet état garderont leurs minuteurs.
Attention
Si le Smart Element possède déjà une instance du minuteur à attacher, alors l'instance existante est réinitialisée
Les minuteurs sont détachés à la suite du prochain changement d'état.
# Minuteurs persistant à attacher
Lorsqu'un Smart Element suit cette transition, les minuteurs identifiés par cette relation sont liés au Smart Element.
Si le Smart Element possède déjà des minuteurs, les nouveaux seront ajoutés.
Cette liaison ne se fait que lors du changement d'état. Aussi, si la valeur de ce Smart Field est changée, les Smart Elements qui sont déjà dans cet état garderont leurs minuteurs.
Si le Smart Element possède déjà une instance du minuteur à attacher, alors l'instance existante est réinitialisée.
Ces minuteurs ne seront jamais détachés automatiquement, et doivent être détachés au moyen du Smart Field Minuteurs persistant à détacher.
# Minuteurs persistant à détacher
Lorsqu'un Smart Element suit cette transition, les minuteurs identifiés par cette relation sont détachés du Smart Element.
Lorsque le Smart Element effectue cette transition, les instances de tous les minuteurs correspondant à ce Smart Field sont détachés, qu'ils aient été attachés par cette étape, ou par tout autre moyen.
# Exemple de minuteurs dans les transitions
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0" xmlns:workflow="https://platform.anakeen.com/4/schemas/workflow/1.0">
<workflow:config name="CYCLE_ARTICLE" model="MY_WFL_ARTICLE">
<workflow:transitions>
<workflow:transition ref="transmission">
<workflow:timer ref="TM_ALERT1" type="volatile"/>
</workflow:transition>
<workflow:transition ref="correcting">
<workflow:timer ref="TM_MAIL" type="volatile"/>
<workflow:timer ref="TM_ALERT2" type="persistent"/>
</workflow:transition>
<workflow:transition ref="rejecting">
<workflow:timer ref="TM_ALERT2" type="unattach"/>
</workflow:transition>
<workflow:transition ref="publishing">
<workflow:timer ref="TM_ALERT2" type="unattach"/>
</workflow:transition>
<workflow:transition ref="rejecting"/>
<workflow:transition ref="printing"/>
</workflow:transitions>
</workflow:config>
</smart:config>