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 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   

  

Comments

Popular posts from this blog

jBPM Installation Guide: Step by Step Setup

Scopes of Signal in jBPM

OOPs Concepts in Java | English | Object Oriented Programming Explained