🇫🇷 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 :

calculateScore(income, age) = (income / 1000) + (age * 2)

✔ 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

Input Data : - age : number - income : number - creditScore : number

⭐ 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éditRevenuDécision
≥ 750≥ 30 000APPROUVER
≥ 650≥ 20 000À_RÉVISER
< 650ToutREJETER

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 :

  1. Input Data fournissent les valeurs

  2. Decision applique les règles

  3. Knowledge Model fournit une logique réutilisable

  4. Decision Service expose les décisions

  5. Knowledge Source documente l’origine

  6. Text Annotation explique le raisonnement


⭐ 8. Tableau comparatif – Éléments DMN dans jBPM

Élément DMNRôleExécutableRéutilisableExemple
Knowledge SourceSource des règles❌ Non❌ NonLoi, politique
Knowledge Model (BKM)Logique réutilisable✅ Oui✅ OuiCalcul de score
Input DataDonnées brutes❌ Non✅ OuiÂge, revenu
DecisionPrend la décision✅ Oui❌ GénéralementApprouver / Rejeter
Decision ServiceExpose la décision✅ Oui✅ OuiAPI d’éligibilité
Text AnnotationDocumentation❌ Non❌ NonCommentaire 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 SourcePourquoi la règle existe

  • Knowledge ModelLogique réutilisable

  • DecisionRésultat final

  • Decision ServiceAPI de décision

  • Input DataFaits

  • Text AnnotationExplication 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).

📧 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