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



Cette architecture est couramment utilisée dans les environnements microservices modernes.

👉 environnements microservices modernes


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 processusSubprocess


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èreSubprocessCall Activity
PositionDans le processus parentProcessus séparé
Réutilisable❌ Non✔ Oui
Instance de processusUniqueParent + Enfant
Gestion des variablesAutomatiqueMapping explicite
Versioning❌ Impossible✔ Possible
CouplageFortFaible
Bordure BPMNNormaleÉpaisse

Gestion des variables (différence critique)

Subprocess

  • Variables partagées automatiquement

  • Toute modification impacte le parent

variableParent → Subprocess → variableParent modifiée

Call Activity

  • Variables isolées

  • Échanges contrôlés par mapping

inputMapping → Processus appelé → outputMapping

👉 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énarioChoix recommandé
Validation de commandeSubprocess
PaiementCall Activity
NotificationsCall Activity
Calcul interneSubprocess
Conformité / KYCCall 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   

  

🎥 Learn IT with Shikha on YouTube

Prefer learning through videos? Watch practical tutorials on Kafka, Camunda, Alfresco, Java, Spring Boot, Microservices and Enterprise Architecture.

▶ Subscribe to Learn IT with Shikha on YouTube

Comments

Popular posts from this blog

Top 50 Camunda BPM Interview Questions and Answers for Developers (2026 Guide)

10 BPMN Best Practices Every Camunda Developer Should Know

OOPs Concepts in Java | English | Object Oriented Programming Explained