Boucle
Une activité répétée jusqu'à ce qu'une condition soit satisfaite — la façon qu'a BPMN d'exprimer « faire ceci tant que » sans dessiner de flèche retour.
Ce qu'est une activité en boucle
Une activité en boucle est une activité marquée d'une petite flèche circulaire en bas. Elle signifie « exécuter cette activité de façon répétée jusqu'à ce qu'une condition de boucle soit satisfaite ». BPMN 2.0 reconnaît deux styles. Une *boucle standard* est séquentielle — chaque itération se termine avant la suivante — et se comporte comme une boucle `while`. Une boucle *multi-instances* exécute plusieurs itérations en parallèle (ou en séquence selon un indicateur), chacune sur sa propre donnée — comme un `for-each` sur une collection.
Les boucles semblent simples mais cachent beaucoup de sémantique : ce qui compte comme « une itération », si les itérations partagent un état, si l'annulation porte sur toutes ou seulement l'itération en cours, si les données de sortie sont agrégées ou gardées par itération. BPMN 2.0 fournit des attributs pour tout exprimer ; les diagrammes dessinés à la main laissent généralement ces détails implicites.
Boucle ou flèche retour explicite ?
- Activité en boucle quand vous relancez la *même* activité jusqu'à ce qu'elle réussisse — « appeler le client, retenter si pas de réponse, jusqu'à 3 essais ». Le marqueur de boucle est compact et exprime l'intention.
- Flèche retour explicite quand le corps de la boucle contient plusieurs activités ou des branches différentes — « essayer le contrôle de crédit, si échec essayer l'alternative, si second échec escalader ».
- Boucle multi-instances quand vous itérez sur une collection — « pour chaque ligne de la facture, chercher le taux de TVA ».
- Évitez les boucles infinies ou sans borne. Si la condition de sortie n'est pas bien définie, ajoutez un événement frontière timer pour forcer la fin.
Les boucles dans LucidFlow
LucidFlow émet des boucles quand le document source utilise le vocabulaire de la relance (« si le fournisseur ne répond pas, réessayer jusqu'à trois fois ») ou de la collection (« pour chaque facture du lot »). Le tableau de bord des coûts gère les boucles en multipliant le coût de l'activité par le nombre d'itérations attendu, de sorte que le coût « par instance » est exact même si la boucle tourne cinq fois en moyenne. Dans le BPMN cible transformé par l'IA, les boucles sont une cible fréquente d'automatisation — une boucle exécutée par un humain dix fois par semaine est un candidat propre pour un agent IA Copilote ou Automatisation.
Questions fréquentes
Que se passe-t-il si la condition de boucle ne devient jamais fausse ?
Le processus tourne indéfiniment (ou jusqu'au timeout du moteur). BPMN 2.0 n'impose pas de borne ; c'est la responsabilité du modélisateur de garantir la terminaison. Un événement frontière timer est l'assurance habituelle.
Un sous-processus peut-il être en boucle ?
Oui. Le marqueur de boucle peut s'apposer sur un sous-processus tout autant que sur une tâche. C'est même le pattern le plus propre pour boucler sur un corps multi-étapes.
Quelle est la différence entre une boucle standard et une boucle multi-instances ?
Une boucle standard est séquentielle et réévalue une condition à chaque itération. Une boucle multi-instances itère un nombre fixe de fois — généralement un par élément d'une collection — et peut exécuter ces itérations en parallèle. Marqueurs différents, sémantique différente, cas d'usage différents.