BPMN Subprocess vs Call Activity – Explication avec diagrammes et cas réels
Introduction
Lors de la modélisation de workflows BPMN, une question revient très souvent :
❓ Faut-il utiliser un Subprocess ou une Call Activity?
Visuellement, ces deux éléments peuvent sembler proches, mais leur rôle et leur impact architectural sont très différents.
Un mauvais choix peut entraîner :
Un couplage trop fort entre processus
Une faible réutilisabilité
Des BPMN difficiles à maintenir
Des comportements inattendus en production
Dans cet article, nous expliquons clairement et visuellement :
Ce qu’est un Subprocess
Ce qu’est une Call Activity
Les différences clés
Les cas d’usage réels
Les bonnes pratiques BPMN
Qu’est-ce qu’un BPMN Subprocess ?
Un Subprocess est un processus intégré à l’intérieur d’un processus parent.
Il fait partie du même modèle BPMN
Il ne peut pas être exécuté indépendamment
Il partage la même instance de processus et les mêmes variables
🔷 Subprocess BPMN – Diagramme explicatif
Comment lire ce diagramme
Le Subprocess est contenu dans le processus principal
Aucune nouvelle instance de processus n’est créée
Les variables sont partagées automatiquement
Le Subprocess suit exactement le cycle de vie du parent
Reconnaissance visuelle
Rectangle arrondi
Icône plus (+) si le Subprocess est replié
Quand utiliser un Subprocess?
✔ Logique locale au processus
✔ Étapes fortement liées
✔ Pas besoin de réutilisation
✔ Améliorer la lisibilité du diagramme
Exemple réel
Dans un processus de commande :
Valider la commande
Vérifier le stock
Calculer la remise
👉 Ces étapes n’ont de sens que dans ce processus → Subprocess
Qu’est-ce qu’une BPMN Call Activity?
Une Call Activity permet d’appeler un autre processus BPMN.
Elle invoque un processus séparé et réutilisable
Une nouvelle instance (processus enfant) est créée
Les données sont échangées via des mappings d’entrée et de sortie
👉 On peut comparer cela à un appel de fonction en programmation.
🔷 Call Activity BPMN – Diagramme explicatif
Comment lire ce diagramme
La Call Activity référence un autre processus BPMN
Le processus appelé est indépendant
Les variables sont explicitement mappées
Le processus appelé peut être réutilisé ailleurs
Reconnaissance visuelle
Rectangle arrondi avec bordure épaisse
Quand utiliser une Call Activity?
✔ Logique réutilisable
✔ Séparation claire des responsabilités
✔ Besoin de versionner indépendamment
✔ Architecture propre et modulaire
Exemple réel
Processus réutilisables :
Paiement
Vérification fraude
KYC / conformité
Envoi de notifications
👉 Utilisés par plusieurs workflows → Call Activity
🔍 Comparaison visuelle côte à côte
| Critère | Subprocess | Call Activity |
|---|---|---|
| Position | Dans le processus parent | Processus séparé |
| Réutilisable | ❌ Non | ✔ Oui |
| Instance de processus | Unique | Parent + Enfant |
| Gestion des variables | Automatique | Mapping explicite |
| Versioning | ❌ Impossible | ✔ Possible |
| Couplage | Fort | Faible |
| Bordure BPMN | Normale | Épaisse |
Gestion des variables (différence critique)
Subprocess
Variables partagées automatiquement
Toute modification impacte le parent
Call Activity
Variables isolées
Échanges contrôlés par mapping
👉 La Call Activity évite les effets de bord.
Gestion des erreurs
Subprocess
Les erreurs remontent naturellement
Boundary Events simples à gérer
Call Activity
Les erreurs peuvent être :
Gérées dans le processus appelé
Capturées via Boundary Events sur la Call Activity
Plus de contrôle, mais modélisation explicite requise
Performance
Subprocess : plus léger (même instance)
Call Activity : création d’une instance supplémentaire
👉 En pratique, la maintenabilité est plus importante que le gain de performance.
Erreurs courantes en modélisation (production)
❌ Utiliser un Subprocess pour une logique réutilisable
❌ Utiliser une Call Activity pour quelques étapes simples
❌ Oublier le mapping des variables
❌ Partager trop de variables dans un Subprocess
❌ Chaîner trop de Call Activities
Bonnes pratiques recommandées
✔ Utiliser un Subprocess pour :
Logique locale
Lisibilité du diagramme
✔ Utiliser une Call Activity pour :
Capacités métier réutilisables
Processus partagés à l’échelle de l’entreprise
✔ Toujours :
Nommer clairement les Call Activities
Documenter les mappings d’entrée/sortie
Garder le BPMN lisible sur un seul écran
Cas d’usage réels – Recommandation
| Scénario | Choix recommandé |
|---|---|
| Validation de commande | Subprocess |
| Paiement | Call Activity |
| Notifications | Call Activity |
| Calcul interne | Subprocess |
| Conformité / KYC | Call Activity |
Question d’entretien fréquente
Q : Comment reconnaître visuellement une Call Activity ?
R : Par sa bordure épaisse, indiquant l’appel d’un autre processus.
Conclusion
Même si Subprocess et Call Activity se ressemblent visuellement, ils répondent à des besoins très différents :
Subprocess → logique locale, simple, fortement couplée
Call Activity → logique réutilisable, modulaire, faiblement couplée
Un bon choix permet :
Des BPMN plus propres
Une meilleure réutilisation
Une maintenance facilitée
Moins d’incidents en production
👉 Pensez vos BPMN comme une architecture logicielle, pas seulement comme des schémas.
💼 Support professionnel disponible
Si vous rencontrez des problèmes sur des projets réels liés au développement backend d’entreprise ou à l’automatisation des workflows, je propose des services de conseil payants, de débogage en production, de support projet et de formations ciblées.
Les technologies couvertes incluent Java, Spring Boot, PL/SQL, Azure, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM), DMN/Drools.
📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com
🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium
Si vous rencontrez des problèmes sur des projets réels liés au développement backend d’entreprise ou à l’automatisation des workflows, je propose des services de conseil payants, de débogage en production, de support projet et de formations ciblées.
Les technologies couvertes incluent Java, Spring Boot, PL/SQL, Azure, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM), DMN/Drools.
📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com
🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium
Comments
Post a Comment