🇫🇷 jBPM DMN expliqué – Knowledge Source, Knowledge Model, Decision, Decision Service, Input Data et Text Annotation (Guide Complet avec Exemples)
Le DMN (Decision Model and Notation) dans jBPM permet de modéliser et d’exécuter des décisions métier de manière claire, maintenable et auditable, indépendamment des processus BPMN.
Au cœur de DMN se trouve le Decision Requirements Diagram (DRD), composé d’éléments standards :
-
Knowledge Source (Source de connaissance)
-
Knowledge Model / Business Knowledge Model (BKM)
-
Decision (Décision)
-
Decision Service (Service de décision)
-
Input Data (Données d’entrée)
-
Text Annotation (Annotation textuelle)
Ce guide explique le rôle de chaque élément, quand l’utiliser, et comment ils travaillent ensemble, avec des exemples concrets.
⭐ 1. DMN Knowledge Source (Source de connaissance)
🔹 Qu’est-ce qu’une Knowledge Source?
Une Knowledge Source indique l’origine des règles ou décisions.
Elle représente par exemple :
-
Une loi ou réglementation
-
Une politique interne d’entreprise
-
Une norme externe
-
L’expertise métier
⚠️ Important :
Une Knowledge Source est purement documentaire.
👉 Elle n’exécute aucune logique.
🔹 Exemple
« Les règles d’approbation de prêt sont basées sur la politique interne de la banque et les directives RBI. »
⭐ 2. DMN Knowledge Model (Business Knowledge Model – BKM)
🔹 Qu’est-ce qu’un Knowledge Model (BKM)?
Un Knowledge Model (BKM) contient une logique réutilisable, souvent définie sous forme de fonction DMN / FEEL.
On l’utilise lorsque :
-
Une logique est partagée par plusieurs décisions
-
On veut éviter la duplication des règles
🔹 Exemple
Fonction de calcul de score :
✔ Cette fonction peut être appelée par plusieurs décisions DMN.
⭐ 3. DMN Input Data (Données d’entrée)
🔹 Qu’est-ce que l’Input Data?
Les Input Data représentent les données brutes nécessaires à la décision.
✔ Fournies par le processus BPMN
✔ Sans logique métier
✔ Typées (number, string, boolean, etc.)
🔹 Exemple
-
Âge du client
-
Revenu mensuel
-
Score de crédit
⭐ 4. DMN Decision (Décision)
🔹 Qu’est-ce qu’une Decision?
La Decision est l’élément exécutable principal de DMN.
Elle :
-
Utilise des Input Data
-
Peut appeler des Knowledge Models (BKM)
-
Produit un résultat métier
🔹 Exemple – Table de décision (Approbation de prêt)
| Score de crédit | Revenu | Décision |
|---|---|---|
| ≥ 750 | ≥ 30 000 | APPROUVER |
| ≥ 650 | ≥ 20 000 | À_RÉVISER |
| < 650 | Tout | REJETER |
Résultat : APPROUVER, À_RÉVISER ou REJETER.
⭐ 5. DMN Decision Service (Service de décision)
🔹 Qu’est-ce qu’un Decision Service?
Un Decision Service regroupe une ou plusieurs décisions et les expose comme une seule unité appelable.
👉 On peut le voir comme une API de décision.
🔹 Pourquoi l’utiliser ?
✔ Masquer la complexité interne
✔ Exposer uniquement certains inputs/outputs
✔ Faciliter l’intégration avec BPMN, REST ou applications
🔹 Exemple
Decision Service : LoanEligibilityService
Inputs :
-
age
-
income
-
creditScore
Outputs :
-
loanDecision
-
riskLevel
⭐ 6. DMN Text Annotation (Annotation textuelle)
🔹 Qu’est-ce qu’une Text Annotation?
Une Text Annotation permet d’ajouter des commentaires explicatifs dans le modèle DMN.
✔ Non exécutable
✔ Améliore la lisibilité
✔ Très utile pour audits et conformité
🔹 Exemple
« Les clients avec un score inférieur à 650 sont rejetés conformément à la politique de risque v2.1. »
⭐ 7. Comment ces éléments fonctionnent ensemble
Flux logique :
-
Input Data fournissent les valeurs
-
Decision applique les règles
-
Knowledge Model fournit une logique réutilisable
-
Decision Service expose les décisions
-
Knowledge Source documente l’origine
-
Text Annotation explique le raisonnement
⭐ 8. Tableau comparatif – Éléments DMN dans jBPM
| Élément DMN | Rôle | Exécutable | Réutilisable | Exemple |
|---|---|---|---|---|
| Knowledge Source | Source des règles | ❌ Non | ❌ Non | Loi, politique |
| Knowledge Model (BKM) | Logique réutilisable | ✅ Oui | ✅ Oui | Calcul de score |
| Input Data | Données brutes | ❌ Non | ✅ Oui | Âge, revenu |
| Decision | Prend la décision | ✅ Oui | ❌ Généralement | Approuver / Rejeter |
| Decision Service | Expose la décision | ✅ Oui | ✅ Oui | API d’éligibilité |
| Text Annotation | Documentation | ❌ Non | ❌ Non | Commentaire métier |
⭐ 9. Exemple réel jBPM – Approbation de prêt
Scénario :
-
Un processus BPMN collecte les données client
-
jBPM DMN évalue l’éligibilité
Structure DMN :
-
Input Data → âge, revenu, score
-
Knowledge Model → calcul du risque
-
Decision → décision de prêt
-
Decision Service → LoanEligibilityService
-
Knowledge Source → politique bancaire
-
Text Annotation → explication métier
✔ Séparation claire processus / décision
✔ Règles modifiables sans changer le BPMN
⭐ 10. Bonnes pratiques jBPM DMN
✔ Utiliser des Knowledge Models pour la réutilisation
✔ Exposer les décisions via Decision Services
✔ Garder les Input Data simples et typées
✔ Ajouter des Text Annotations pour l’audit
✔ Toujours référencer une Knowledge Source
✔ Éviter la logique complexe dans BPMN
✔ Versionner correctement les fichiers DMN
👉 Regardez “DMN” en action:
démo live complète des composants DMN
🎬 YouTube: Learn IT with Shikha video 1
🎬 YouTube: Learn IT with Shikha video 2
👉 Source code: LearnITWithShikha/DMNExamples
🎉 Conclusion
Avec jBPM DMN, vous pouvez construire des décisions claires, modulaires et auditables :
-
Knowledge Source → Pourquoi la règle existe
-
Knowledge Model → Logique réutilisable
-
Decision → Résultat final
-
Decision Service → API de décision
-
Input Data → Faits
-
Text Annotation → Explication humaine
Utilisés ensemble, ces éléments permettent de créer des systèmes de décision robustes et évolutifs, parfaitement intégrés aux workflows BPMN.
💼 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