Aller au contenu principal

Définir et publier un workflow

Un workflow décrit un processus en étapes : une note de frais passe de « brouillon » à « en revue », puis à « approuvée » ou revient en brouillon. Chaque passage d'une étape à l'autre est une transition, déclenchée par un événement (« soumettre », « approuver »…) et, si vous le voulez, réservée aux personnes qui détiennent une permission.

Chaque exécution d'un workflow s'appelle une instance ; elle reste liée à la version qui l'a démarrée, même si vous en publiez une nouvelle.

Avant de commencer​

  • Il vous faut la permission workflows:manage.

La définition​

Un workflow se décrit en JSON. L'écran propose un modèle à la création :

{
"initial": "draft",
"states": {
"draft": { "type": "initial", "on": { "submit": { "target": "review", "actions": [] } } },
"review": {
"assignRole": "owner",
"on": {
"approve": { "target": "approved", "guard": "roles:manage", "actions": [] },
"reject": { "target": "draft", "actions": [] }
}
},
"approved": { "type": "final", "on": {} }
}
}
ÉlémentSens
initiall'étape de départ ; elle doit exister dans states
statesles étapes, chacune nommée
typeinitial, final (l'instance est alors terminée), ou rien pour une étape intermédiaire
onles événements acceptés dans l'étape ; chacun mène à une target qui doit exister
guardla permission exigée pour déclencher la transition
assignRolele rôle chargé de l'étape
actionsdes signaux émis au passage de la transition

Un workflow n'a ni branches parallèles ni retour arrière automatique : c'est une suite d'étapes, une à la fois.

Créer un workflow​

  1. Ouvrez Workflows.
  2. Cliquez sur Créer.
  3. Renseignez le Slug (identifiant court, en minuscules), le Nom et la Définition (JSON).
  4. Cliquez sur Créer.

Fenêtre Créer un workflow

Le message « Workflow créé » confirme ; le workflow apparaît dans la liste en version 1.

Publier une nouvelle version​

  1. Dans Workflows, sélectionnez le workflow dans la liste de gauche.
  2. Modifiez la définition affichée à droite.
  3. Cliquez sur Publier une version.

« Version N publiée » confirme. Les instances déjà démarrées continuent sur leur version ; les nouvelles partent de la dernière.

Workflows, une définition sélectionnée

Supprimer un workflow​

Cliquez sur l'icône de suppression à côté du nom, puis sur Supprimer. La définition et toutes ses versions sont retirées. Un workflow qui a déjà des instances ne se supprime pas : son historique doit être conservé.

Si ça ne marche pas​

Vous voyezCe que ça veut direQue faire
« La définition du workflow est invalide »Le JSON est mal formé, ou une étape citée (initial, target) n'existe pas.Corrigez la définition.
« Cet élément existe déjà. »Un workflow porte déjà ce slug.Choisissez un autre slug.
« Ce workflow a des instances… »Des instances existent.Gardez-le, ou publiez une version qui le remplace.

Voir aussi​