Variables de workflow

Il arrive souvent qu’un même traitement doive être appliqué à différents formulaires, à un petit détail près, par exemple le document généré doit être basé sur un modèle différent, un webservice externe doit être appelé avec une autre donnée, etc.

Dans ces situations il est bien sûr possible de dupliquer le workflow autant de fois qu’il existe de variations mais ça entraîne rapidement un coût d’entretien trop élevé. Les variables de workflow sont une réponse à ce problème, elles permettent de déléguer certains éléments du paramétrage d’un workflow aux formulaires associés.

Pratiquement, la définition des variables se rapproche de la définition des formulaires destinés aux usagers, il s’agit de définir une série de champs. Il y a quand même une différence, lors de la définition d’un champ celui-ci doit être associé soit à un nom de variable, qui pourra alors être utilisé dans le formulaire, soit directement à un élément du workflow, qui sera alors substitué automatiquement. Les deux usages sont décrits par la suite.

Une fois les variables définies dans le workflow, un lien options apparaît à côté du nom du workflow choisi dans la page du formulaire, et cliquer dessus ouvre une fenêtre avec la liste des paramètres à remplir.

Option associée à une variable

Une option peut être associé à un nom de variable, celle-ci deviendra alors accessible dans le formulaire (sous le nom form_option_variable), par exemple dans les conditions de page ou pour le préremplissage, et ensuite dans le traitement même, par exemple comme variable à insérer dans un courriel.

Un workflow de concours pourrait ainsi avoir comme variable la description du prix (nommée description_prix), dans la définition d’un formulaire la variable serait remplie avec "Deux places de cinéma" et dans le traitement, une action d’envoi de courriel pourrait décrire celui-ci ainsi :

Merci de votre participation à notre concours où vous pouvez remporter
{{form_option_description_prix}}, nous vous enverrons le résultat dès le
tirage au sort.
   

Une autre utilisation pourrait être d’avoir une liste à choix multiple comme option de workflow, reprenant par exemple les types d’envoi possibles (courrier standard, recommandé, recommandé avec accusé de réception…) (sous le nom mode_envoi); du coté des formulaires il pourrait y avoir un champ de type « Liste » qui serait rempli des éléments qui auraient été cochés (en utilisant une expression Python comme source des éléments, et en y mettant une référence à la variable (form_option_mode_envoi).

Option substituant un élément de workflow

Dans une variation de l’exemple précédent du coucours, l’entièreté du contenu du courriel pourrait relever d’une option; dans cette situation, plutôt que définir du côté du courriel que son contenu serait [form_option_contenu_courriel], il est possible de directement associer l’option de workflow à l’élément d’envoi de courriel.

Dans la liste déroulante, les différents statuts, leurs actions et leurs paramètres sont repris, il suffit alors de choisir « En attente de tirage / Envoi de courriel / Corps ».