# Configurer un workflow dynamique

> Définir les rôles, les statuts et les transitions du circuit de validation d'une session, puis vérifier le résultat sur le diagramme.

Le workflow dynamique se configure sur le **site web**, depuis la configuration de la session :
l'application ID ALL Site n'a pas d'éditeur de workflow. Le résultat s'applique ensuite partout, y
compris dans l'application après synchronisation. Pour les notions de statut, rôle et transition, voir
[Workflows dynamiques](https://docs.idall.fr/site/concepts/workflows-dynamiques/).

## Prérequis

- Le droit **Gérer les workflows dynamiques**. Il n'est pas accordé par défaut : à demander au support
  ID Capture. Sans ce droit, la configuration reste visible en lecture seule, avec la mention **Vous
  n'avez pas les droits pour modifier la configuration du workflow dynamique.**
- Une session dont le workflow est de type **Workflow dynamique**. Pour une session existante qui
  utilise encore un circuit classique, la conversion est réalisée par ID Capture, à demander au support.

## Étapes

1. Sur le site web, ouvrez la configuration de la session.
   
2. Dans la section **Configuration du workflow**, en face de l'option **Configuration initiale du
   workflow**, cliquez sur **Définir la configuration**. La fenêtre **Configuration du workflow
   dynamique** s'ouvre, en mode **Éditeur**.
3. Dans **Rôles**, cliquez sur **Ajouter un rôle** pour chaque rôle et renseignez :
   - **Nom** : un nom technique unique, sans espace ni accent, par exemple `RELECTEUR` ;
   - **Libellé** : le texte affiché aux utilisateurs, par exemple *Relecteur*.

   Le rôle **Sans rôle** existe toujours, inutile de le créer.
4. Dans **Statuts**, cliquez sur **Ajouter un statut** pour chaque étape et renseignez **Nom**,
   **Libellé** et **Couleur**. Sélectionnez **Initial** sur le statut de départ (un seul) et cochez
   **Levé final** sur le ou les statuts de fin. Les boutons **Monter** et **Descendre** fixent l'ordre
   d'affichage des statuts dans l'application, les statistiques et les exports.
5. Dans **Transitions**, cliquez sur **Ajouter une transition** pour chaque passage autorisé : choisissez
   le statut **Depuis**, le statut **Vers**, puis cochez les **Rôles** qui peuvent l'effectuer. Pour
   permettre un retour en arrière, ajoutez la transition en sens inverse.
6. Vérifiez les transitions avec **Grouper par :** à droite du titre de la section :
   - **Départ** regroupe tout ce qu'on peut faire depuis chaque statut (par exemple **Depuis « En
     cours » — 2 transitions**) ;
   - **Arrivée** regroupe tout ce qui mène à chaque statut.

   Un groupe **aucune transition entrante** ou **aucune transition sortante** signale un statut
   inatteignable ou sans issue. C'est normal pour le statut initial et pour un statut levé final ; pour
   les autres, une transition manque sans doute. Ce réglage ne change que l'affichage.
7. Facultatif : dans **Rôle par défaut par profil**, choisissez le rôle donné d'office aux utilisateurs
   de chaque profil, ou laissez **Aucun (lecture seule)**.
8. Facultatif : cliquez sur **Aperçu du diagramme** pour afficher le workflow à côté de l'éditeur ; il se
   met à jour au fil de la saisie.
9. Cliquez sur **Valider**. Les erreurs sont signalées dans la fenêtre (par exemple **Un statut initial
   doit être sélectionné.** ou **Plusieurs transitions ont la même source et la même cible ;
   fusionnez-les :**) : corrigez-les puis validez à nouveau.
10. **Enregistrez la session** : tant qu'elle n'est pas enregistrée, la nouvelle configuration n'est
    pas appliquée.

:::caution
Sur une session qui contient déjà des observations, ne supprimez pas un statut utilisé et ne changez
pas son **Nom** : les observations concernées n'auraient plus de statut valide. Pour qu'un statut ne
soit plus atteint, retirez plutôt les transitions qui y mènent. Changer le **Libellé**, la **Couleur**
ou l'ordre est sans risque.
:::

:::note
Session des non-conformités (fiches de conformité, fiches de contrôle) : les statuts qui lèvent un
point doivent s'appeler `FIXED_0`, `FIXED_1`…, ceux qui le refusent `REFUSED_0`, `REFUSED_1`…, avec un
rôle `ACTOR_0`, `ACTOR_1`… par niveau. Sinon l'enregistrement est refusé. Voir
[La session des non-conformités](https://docs.idall.fr/site/concepts/workflows-dynamiques/#la-session-des-non-conformités).
:::

## Reprendre le workflow d'une autre session

1. Sur la session source, dans l'en-tête de **Configuration du workflow**, cliquez sur **Copier la
   configuration** : elle est copiée dans le presse-papiers.
2. Sur la session cible, ouvrez **Définir la configuration**, passez en mode **JSON**, remplacez le
   contenu par celui copié, puis revenez en mode **Éditeur** pour vérifier.
3. **Valider**, puis enregistrez la session.

## Résultat

Le bouton **Voir le diagramme** de la section **Configuration du workflow** montre le workflow
appliqué : statuts, couleurs et transitions par rôle. Les utilisateurs voient les nouveaux statuts sur
le web aussitôt, et dans l'application après leur prochaine synchronisation.
