🇫🇷 Événements Intermédiaires dans jBPM – Guide Complet avec Exemples
Les événements intermédiaires dans jBPM (Business Process Management Suite de Red Hat / KIE) sont des éléments BPMN2 utilisés entre le début et la fin d’un processus.
Ils permettent d’attendre, de capturer un message, de déclencher un signal, de gérer une erreur, d’exécuter une compensation, ou d’activer un flux basé sur une condition métier.
Pour construire des workflows robustes et réels dans jBPM, comprendre les événements intermédiaires est indispensable.
🌟 Qu’est-ce qu’un Événement Intermédiaire ?
Un événement intermédiaire peut :
✔ Attendre un événement (Catch)
✔ Déclencher un événement (Throw)
Ils peuvent être placés :
-
Sur le chemin du flux,
-
Attachés à une activité (boundary events),
-
Ou en isolation, selon le besoin.
1️⃣ Événement Intermédiaire de Minuteur (Timer)
Permet d’imposer un délai ou d’exécuter une action programmée.
📌 Exemples :
-
Attendre 48 heures pour recevoir des documents
-
Exécuter une vérification journalière
-
Gérer une SLA
Exemple XML
2️⃣ Événement Intermédiaire de Message (Catch)
Le processus attend un message externe.
Dans jBPM, vous pouvez utiliser un signalEvent, un MessageRef, ou un CorrelationKey.
📌 Exemples :
-
Attendre une réponse d’un microservice
-
Attendre une validation externe
-
Attendre une confirmation de paiement
XML
Envoi depuis Java
3️⃣ Événement Intermédiaire d’Envoi de Message (Throw)
Permet d’envoyer un message à un autre processus ou système.
📌 Exemples :
-
Lancer un workflow secondaire
-
Notifier un service externe
-
Déclencher une action asynchrone
4️⃣ Événements Intermédiaires de Signal (Catch & Throw)
Un signal est diffusé globalement.
Tous les processus actifs écoutant ce signal réagissent.
📌 Exemples :
-
PaiementEffectue -
FraudeDetectee -
DocumentUpload
Catch
Throw
Depuis Java
5️⃣ Événement Intermédiaire d’Erreur (Error Catch Event)
Permet de gérer des erreurs générées par :
-
un Service Task,
-
un Script Task,
-
un WorkItemHandler personnalisé.
📌 Exemples :
-
API en échec
-
Problème de transaction BD
-
Données invalides
XML
Throw côté Java
6️⃣ Événements d’Escalade (Throw & Catch)
Une escalade n’arrête pas le processus.
Elle signale un problème important mais non fatal.
📌 Exemples :
-
SLA presque dépassée
-
Intervention managériale nécessaire
-
Alerte métier
XML (Throw)
7️⃣ Événement Intermédiaire de Compensation
Permet d’annuler ou de revenir sur une action précédente.
📌 Exemples :
-
Annuler une réservation
-
Rembourser un paiement
-
Libérer du stock
XML
8️⃣ Événement Intermédiaire Conditionnel
Déclenché lorsque une condition devient vraie.
📌 Exemple :
-
Lorsque
montant > 50000, activer un chemin spécifique.
XML
📊 Tableau Comparatif
Type | Catch | Throw | Utilisation |
|---|---|---|---|
| Timer | ✔ | ✖ | Délai / planification |
| Message | ✔ | ✔ | Intégrations systèmes |
| Signal | ✔ | ✔ | Diffusion globale |
| Erreur | ✔ | ✖ | Gestion d’exception |
| Escalade | ✔ | ✔ | Alerte non fatale |
| Compensation | ✔ | ✔ | Annulation / rollback |
| Conditionnel | ✔ | ✖ | Déclenchement dynamique |
🏦 Exemple Réel : Processus de Réclamation Assurance
Réception de la réclamation
-
Minuteur de 24h pour documents manquants
-
Message de validation reçu
-
Si incohérence → Erreur → révision manuelle
-
SLA proche → Escalade
-
Fraude détectée → Signal pour audit
-
Réclamation rejetée → Compensation (remboursement)
-
Finalisation du dossier
🔧 Bonnes Pratiques jBPM
✔ Utiliser message events pour les microservices
✔ Réserver les signal events pour des diffusions globales
✔ Utiliser error events pour remplacer les XOR compliqués
✔ Exploiter timer events pour SLA et rappels
✔ Garder les compensations simples et idempotentes
✔ Éviter de combiner message + signal + erreur dans le même flux
✔ Documenter correctement le CorrelationKey si nécessaire
🎯 Conclusion
Les événements intermédiaires dans jBPM rendent vos processus:
✔ plus intelligents
✔ plus stables
✔ plus flexibles
✔ parfaitement adaptés aux environnements d’entreprise
Maîtriser ces événements améliore la qualité et la résilience de vos workflows.
💼 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).
🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium
Comments
Post a Comment