Passerelle inclusive vs passerelle exclusive en BPMN – Exemples concrets
En BPMN, le choix de la bonne passerelle (gateway) est essentiel pour garantir un comportement correct du processus.
L’une des erreurs de modélisation les plus fréquentes consiste à confondre la passerelle exclusive (XOR) et la passerelle inclusive (OR).
Cet article explique :
la différence réelle entre les deux,
des exemples métier concrets,
quand utiliser laquelle,
les erreurs courantes en production.
Les exemples sont basés sur des implémentations Camunda 7, mais les concepts sont valables pour tous les moteurs BPMN.
1️⃣ Passerelle exclusive (XOR) – Un seul chemin possible
🔹 Définition
La passerelle exclusive autorise un seul flux sortant.
Les conditions sont évaluées dans l’ordre
La première condition vraie est exécutée
Les autres chemins sont ignorés
🧩 Exemple réel : Processus d’approbation de prêt
Scénario
Une demande de prêt est soit :
approuvée
rejetée
Un seul résultat est possible.
Conditions
✅ Résultat :
Un seul chemin est toujours exécuté.
❌ Erreur fréquente avec XOR
Si les deux conditions sont vraies, seule la première est prise en compte.
➡️ Cela provoque souvent des bugs logiques invisibles.
2️⃣ Passerelle inclusive (OR) – Un ou plusieurs chemins
🔹 Définition
La passerelle inclusive permet :
un seul chemin,
plusieurs chemins,
ou tous les chemins,
selon les conditions évaluées indépendamment.
🧩 Exemple réel : Traitement d’un sinistre d’assurance
Scénario
Pour un sinistre :
s’il y a blessure → expertise médicale
s’il y a dégâts matériels → expertise véhicule
s’il y a les deux → exécuter les deux contrôles
Conditions
✅ Résultat possible :
uniquement médical
uniquement véhicule
les deux en parallèle
➡️ Impossible à réaliser avec une passerelle exclusive.
3️⃣ Comportement au niveau du join (réunion)
🔴 XOR (merge)
pas de synchronisation
le processus continue dès qu’un chemin arrive
🔴 OR (join inclusif)
attend tous les chemins activés
peut provoquer un blocage si mal modélisé
⚠️ Problème réel en production (OR join)
❌ Cas classique :
OR pour le split
OR pour le join
conditions dynamiques
➡️ Le moteur attend un chemin jamais activé
➡️ Processus bloqué
✅ Solution :
conditions symétriques split / join
ou utiliser une passerelle parallèle
4️⃣ Tableau comparatif
| Critère | Exclusive (XOR) | Inclusive (OR) |
|---|---|---|
| Chemins exécutés | Un seul | Un ou plusieurs |
| Évaluation | Première vraie | Toutes |
| Exécution parallèle | ❌ | ✅ |
| Complexité du join | Faible | Élevée |
| Risque de blocage | Faible | Moyen / élevé |
5️⃣ Quand utiliser laquelle ?
✅ Utiliser une passerelle exclusive si :
les résultats sont mutuellement exclusifs
un seul chemin doit être suivi
ex. : approuver / rejeter / annuler
✅ Utiliser une passerelle inclusive si :
plusieurs conditions peuvent être vraies
plusieurs actions sont optionnelles
ex. : contrôles, notifications, validations
6️⃣ Bonnes pratiques issues de projets réels
✅ Documenter clairement les règles métier
✅ Éviter les conditions qui se chevauchent en XOR
✅ Être très prudent avec les OR joins
✅ Utiliser une passerelle parallèle si tous les chemins doivent s’exécuter
✅ Tester les cas limites en production
7️⃣ Question d’entretien fréquente
Q : Une passerelle exclusive peut-elle exécuter plusieurs chemins ?
R : ❌ Non, un seul chemin est exécuté.
Q : Une passerelle inclusive peut-elle exécuter un seul chemin ?
R : ✅ Oui, si une seule condition est vraie.
8️⃣ Besoin d’un avis expert ?
Les erreurs de passerelles BPMN provoquent souvent :
des processus bloqués,
des résultats métier incorrects,
des bugs difficiles à diagnostiquer.
Un audit rapide peut éviter des incidents coûteux.
💼 Support professionnel disponible
Si vous rencontrez des problèmes de conception BPMN, de passerelles mal utilisées, ou de comportement inattendu en production, je propose des services de conseil payants, revue BPMN, débogage en production et formations ciblées.
📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com
🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium
Comments
Post a Comment