Événements Intermédiaires dans Camunda 7 – Guide Complet avec Exemples

 Les événements intermédiaires sont l’un des éléments BPMN les plus puissants utilisés dans Camunda 7. Ils permettent de mettre en pause, d’attendre un signal, de recevoir un message, de gérer des erreurs, de déclencher des compensations et d’automatiser des comportements sophistiqués au milieu d’un processus métier.

Comprendre ces événements est indispensable pour modéliser des workflows flexibles, robustes et bien intégrés.


🌟 Qu’est-ce qu’un Événement Intermédiaire ?

Un événement intermédiaire se produit entre le début et la fin d’un processus.
Il peut :

  • Attendre quelque chose (catch event)

  • Déclencher / envoyer quelque chose (throw event)


Types d’Événements Intermédiaires dans Camunda 7


1️⃣ Événement Intermédiaire de Minuteur (Timer Catch Event)

Utilisé pour faire attendre le processus pendant une durée définie.

📌 Exemples :

  • Attendre 24 heures

  • Exécuter tous les lundis

  • Envoyer un rappel après un délai

Exemple XML

<bpmn:intermediateCatchEvent id="Attente24H"> <bpmn:timerEventDefinition> <bpmn:timeDuration>PT24H</bpmn:timeDuration> </bpmn:timerEventDefinition> </bpmn:intermediateCatchEvent>

2️⃣ Événement Intermédiaire de Message (Catch)

Le processus attend un message entrant.

📌 Exemples :

  • Attendre la réponse d’un système externe

  • Attendre la validation d’un utilisateur hors application

Exemple XML

<bpmn:intermediateCatchEvent id="AttenteMessage"> <bpmn:messageEventDefinition messageRef="Message_Validation"/> </bpmn:intermediateCatchEvent>

3️⃣ Événement Intermédiaire d’Envoi de Message (Throw)

Permet d’envoyer un message vers un autre processus ou un système externe.

📌 Exemple :

  • Notifier un autre workflow

  • Déclencher une action asynchrone


4️⃣ Événements Intermédiaires de Signal (Catch & Throw)

Un signal est diffusé de manière globale.

📌 Exemples :

  • Diffuser un signal “PaiementEffectué”

  • Tous les processus qui l’attendent réagissent immédiatement

Exemple XML

<bpmn:intermediateThrowEvent id="SignalPaymentDone"> <bpmn:signalEventDefinition signalRef="PaiementEffectue"/> </bpmn:intermediateThrowEvent>

5️⃣ Événement Intermédiaire d’Erreur (Error Catch Event)

Permet de gérer proprement les exceptions provenant d’une tâche de service, d’un script ou d’une logique métier.

📌 Exemples :

  • Échec d’appel API

  • Problème de transaction BD


6️⃣ Événement Intermédiaire d’Escalade (Throw & Catch)

Gère des escalades non bloquantes.

📌 Exemple :

  • Escalader vers un superviseur quand une SLA approche

  • Alerter sans arrêter le processus principal


7️⃣ Événement Intermédiaire de Compensation

Déclenche une action compensatoire (Annulation, retour en arrière).

📌 Exemples :

  • Annuler une réservation

  • Rembourser un paiement


8️⃣ Événement Intermédiaire Conditionnel

Déclenché lorsqu’une condition devient vraie.

📌 Exemple :

  • Attendre que montant > 50000

  • Déclencher un flux lorsqu’une règle de décision valide un cas

Exemple XML

<bpmn:conditionalEventDefinition> <bpmn:condition xsi:type="bpmn:tFormalExpression"> ${montant > 50000} </bpmn:condition> </bpmn:conditionalEventDefinition>

Tableau Comparatif




Type d'Événement



Catch



Throw



Utilisation
TimerAttendre un délai / moment
MessageCommunication inter-processus
SignalDiffusion globale (broadcast)
ErreurGestion d’exception
EscaladeAlerte non bloquante
CompensationAnnuler une action
ConditionnelAttendre une condition


Exemple Réel : Processus d’Approbation de Prêt

Workflow:

  1. Soumission de la demande

  2. Vérification avec minuteur de 24h

  3. Réception du message de validation (catch message)

  4. Si revenu < minimum → escalade

  5. Si fraude détectée → erreur

  6. Envoi d’un signal pour reporting

  7. Décision finale


Bonnes Pratiques

✔ Utiliser les minuteurs pour SLA & rappels
✔ Privilégier les messages pour intégrer des systèmes externes
✔ Utiliser les signaux uniquement pour le broadcast
✔ Préférer les erreurs BPMN aux passerelles XOR pour gérer les exceptions
✔ Utiliser les événements conditionnels pour les mises à jour dynamiques
✔ Éviter de mélanger signaux & messages dans un même flux
✔ N’utiliser la compensation que lorsque le métier le demande réellement


Conclusion

Les événements intermédiaires rendent vos workflows Camunda 7 :
✔ plus intelligents,
✔ plus flexibles,
✔ plus stables,
✔ mieux intégrés aux systèmes externes.

Les maîtriser vous donne un contrôle total sur la logique métier et l’orchestration.

💼 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).

📧 Contactishikhanirankari@gmail.com info@realtechnologiesindia.com

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