Passer au contenu
← Tous les termes

Passerelle inclusive (OU)

Un losange qui route le jeton sur chaque chemin sortant dont la condition est vraie — un, plusieurs ou tous.

Ce que fait une passerelle inclusive

Une passerelle inclusive est un losange avec un marqueur « O ». Contrairement à l'exclusive — qui prend exactement un chemin — l'inclusive laisse le jeton partir sur *chaque* flux sortant dont la condition est vraie. Zéro condition qui match et le flux par défaut prend le relais ; une, un chemin ; deux ou trois, deux ou trois chemins parallèles partent simultanément.

Les passerelles inclusives sont le choix naturel pour les règles « l'un ou l'autre, potentiellement les deux ». « Si la commande est de fort montant, lancer le contrôle anti-fraude ; si le client est nouveau, lancer la vérification d'identité ; les deux conditions peuvent être vraies ». Une passerelle exclusive ne peut pas l'exprimer. Une parallèle non plus — la parallèle fire chaque branche systématiquement, sans condition. Seule l'inclusive capture « déclencher chaque branche dont la condition tient, et synchroniser au join sur celles qui ont tiré ».

Le problème du join

La partie délicate, c'est la fusion. Une passerelle parallèle sur le join attend chaque flux entrant. Une passerelle inclusive sur le join doit n'attendre que les chemins qui ont réellement tiré sur le split correspondant — ce qui est plus difficile à calculer parce que le join doit savoir lesquels ont été activés en amont. BPMN 2.0 oblige les moteurs à suivre cette information, mais les diagrammes dessinés à la main se trompent souvent en utilisant un join parallèle pour un split inclusif, ce qui fige le processus qui attend des branches jamais activées.

Les passerelles inclusives dans LucidFlow

LucidFlow utilise des passerelles inclusives quand le document source dit « et/ou » — « notifier le client par e-mail et/ou SMS », « lancer KYC et/ou AML si flaggé ». Le générateur émet le join inclusif correspondant au point de synchronisation pour que la sémantique fasse l'aller-retour correctement vers Camunda, Signavio et d'autres moteurs d'exécution. Le tableau de bord des coûts tient compte du caractère probabiliste des branches inclusives en pondérant chaque branche par sa probabilité indépendante de se déclencher.

Questions fréquentes

Quand ai-je vraiment besoin d'une passerelle inclusive ?

Quand deux issues ou plus peuvent vraiment se déclencher simultanément et doivent toutes être terminées pour que le processus continue. Si une seule issue tire jamais, prenez exclusive. Si toutes tirent toujours, prenez parallèle. L'inclusive est strictement pour le cas « un sous-ensemble ».

Une passerelle inclusive peut-elle avoir un flux par défaut ?

Oui. Si aucune condition ne match, le flux par défaut est pris — le jeton ne disparaît pas. Bonne pratique : toujours en inclure un, pour la même raison que sur une exclusive.

Pourquoi les moteurs refusent-ils parfois d'exécuter des joins inclusifs ?

Parce que le join doit décider quelles branches entrantes il attend encore, et ça dépend des branches que le split correspondant a activées. Les anciens moteurs BPMN n'implémentaient pas ce lookahead ; les modernes (Camunda 8, Flowable) le font nativement, mais on voit encore l'avertissement « inclusive gateway requires a matching split » dans les linters.

Termes liés

← Retour au glossaire complet