DMN (Decision Model and Notation) dans jBPM
💡 Introduction
Dans les processus métier modernes, de nombreuses décisions reposent sur des règles : approbations, calculs de risque, évaluations d’éligibilité ou tarifications dynamiques.
Au lieu d’écrire ces règles directement dans le code Java, ⚙️ jBPM permet de les gérer de manière visuelle et indépendante grâce à 📊 DMN (Decision Model and Notation).
Cette approche sépare la logique de processus (BPMN) de la logique de décision (DMN) — pour une automatisation plus flexible, maintenable et orientée métier.
🧩 1️⃣ Qu’est-ce que DMN ?
DMN signifie Decision Model and Notation, une norme de l’OMG (Object Management Group).
Elle permet de modéliser les règles métiers et les décisions sous forme de tables de décision (Decision Tables) au lieu de les coder manuellement.
✅ En résumé :
BPMN définit comment le processus s’exécute.
DMN définit quelle décision doit être prise.
⚙️ 2️⃣ DMN dans l’écosystème jBPM
jBPM s’intègre nativement avec le moteur Drools DMN, ce qui permet :
-
de créer vos décisions dans un modèle DMN,
-
de les déployer dans un projet KIE,
-
et de les exécuter depuis un processus BPMN ou une API Java.
📦 Structure type d’un projet :
🧱 3️⃣ Structure d’un modèle DMN
Un modèle DMN contient généralement :
-
🧾 Input Data — les données d’entrée nécessaires
-
⚙️ Decision Table — la logique des règles
-
🧮 Expressions FEEL (Friendly Enough Expression Language) — pour les conditions et calculs
Exemple : Table de décision pour une demande de prêt
| Âge du demandeur | Revenu | Résultat |
|---|---|---|
< 18 | - | "Rejeté" |
>= 18 et < 60 | >= 50000 | "Approuvé" |
>= 18 et < 60 | < 50000 | "Révision" |
>= 60 | - | "Revue Senior" |
🧠 4️⃣ Créer un modèle DMN dans Business Central
1️⃣ Allez dans Design → Create → DMN Model
2️⃣ Définissez vos données d’entrée (ex. AgeDemandeur, Revenu)
3️⃣ Ajoutez un nœud Decision Table
4️⃣ Renseignez les règles comme ci-dessus
5️⃣ Déployez le projet
🎯 Variable de sortie → DecisionResult
🔗 5️⃣ Intégrer DMN à un processus BPMN
Vous pouvez exécuter un modèle DMN directement depuis un processus BPMN.
➡️ Dans le concepteur BPMN :
-
Ajoutez une tâche Business Rule
-
Sélectionnez le type d’implémentation : DMN
-
Choisissez votre modèle DMN et le nom de la décision
-
Mappez les variables d’entrée/sortie
🎬 Exemple de flux :
💻 6️⃣ Exécuter DMN depuis du code Java
✅ Sortie console :
🧩 7️⃣ Utiliser FEEL dans DMN
Le langage FEEL (Friendly Enough Expression Language) est utilisé pour les expressions et conditions dans les tables DMN.
Exemples :
Vérification de null :
📈 8️⃣ Cas d’utilisation réels
✔️ Approbation de crédit ou de prêt
✔️ Gestion des sinistres d’assurance
✔️ Calculs de tarification dynamique
✔️ Détection de fraude et évaluation de risque
✔️ Validation d’éligibilité en RH ou santé
DMN permet aux analystes métier de mettre à jour les règles sans modifier le code Java.
🧩 9️⃣ Combinaison BPMN + DMN
La vraie puissance vient de leur combinaison :
| Composant | Rôle |
|---|---|
| BPMN Processus | Définit le flux métier |
| DMN Modèle | Définit les règles de décision |
| Business Rule Task | Fait le lien entre les deux |
🚀 Exemple :
Le processus collecte les données → les envoie à DMN → DMN renvoie le résultat → BPMN oriente le flux selon la décision.
🧰 10️⃣ Tester votre modèle DMN
Dans Business Central, vous pouvez :
-
Utiliser l’outil Test Scenarios
-
Fournir différentes valeurs d’entrée
-
Visualiser les résultats directement
En Java, il suffit de modifier le contexte (DMNContext) et d’observer les sorties.
🧩 11️⃣ Exemple d’arborescence projet
🧠 12️⃣ Avantages de DMN avec jBPM
| Fonctionnalité | Avantage |
|---|---|
| 🧾 Règles visuelles | Lisibles par les analystes |
| ⚙️ Réutilisables | Partageables entre processus |
| 🔍 Transparentes | Pas de logique cachée |
| 🔄 Faciles à maintenir | Modifiables sans recompilation |
| 🔗 Intégrées | Fonctionnent nativement avec BPMN |
👉 Regardez “Activer DMN dans jBPM” en action:
Voici une courte vidéo pour mieux comprendre l’intégration de DMN dans jBPM :🎬 YouTube: Learn IT with Shikha
🎬 YouTube: Learn IT with Shikha video 1
🎬 YouTube: Learn IT with Shikha video 2
👉 Code source: LearnITWithShikha/DMNExamples
🏁 Conclusion
🎯 En intégrant DMN (Decision Model and Notation) avec jBPM, vous rendez vos processus plus intelligents et évolutifs.
Vos règles deviennent dynamiques, auditables et centralisées, permettant aux équipes techniques et métiers de collaborer efficacement.
💬 En résumé :
BPMN pilote le flux.
DMN pilote la décision.
💼 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).
📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com
🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium
Comments
Post a Comment