Politiques de correspondance (Hit Policies) des tables de décision DMN – Explications avec exemples

 Dans DMN, les Hit Policies définissent comment une table de décision évalue les règles et quel résultat est retourné lorsqu’une ou plusieurs règles correspondent.

Une mauvaise compréhension des Hit Policies est l’une des principales causes de décisions incorrectes en production, notamment avec Camunda DMN.

Cet article explique :

  • ce que sont les Hit Policies DMN

  • les principales politiques (FIRST, UNIQUE, ANY, COLLECT, PRIORITY)

  • des exemples métiers concrets

  • les bonnes pratiques issues de projets réels


1️⃣ Qu’est-ce qu’une Hit Policy en DMN ?

Une Hit Policy définit :

  • combien de règles peuvent correspondre,

  • comment le résultat final est calculé si plusieurs règles correspondent.

Sans la bonne Hit Policy :

  • la décision peut retourner un résultat inattendu,

  • des conflits peuvent passer inaperçus,

  • la logique métier peut être fausse en production.


2️⃣ FIRST – La première règle correspondante gagne

🔹 Comportement

  • Les règles sont évaluées de haut en bas

  • La première règle valide est appliquée

  • Les autres règles sont ignorées

🧩 Exemple réel : Calcul de remise

Type clientRemise
Premium20 %
Standard10 %

Client = Premium20 %

✅ À utiliser si :

  • les règles sont ordonnées par priorité

  • un seul résultat est attendu

❌ Risque :

  • un mauvais ordre = mauvaise décision


3️⃣ UNIQUE – Une seule règle doit correspondre

🔹 Comportement

  • Une seule règle est autorisée

  • Plusieurs règles correspondantes → erreur

  • Aucune règle → aucun résultat

🧩 Exemple réel : Tranche d’imposition

RevenuTaux
0–50k5 %
50k–100k10 %

Une seule tranche possible.

✅ À utiliser si :

  • les règles sont mutuellement exclusives

  • les données sont fiables


4️⃣ ANY – Plusieurs règles possibles, même résultat obligatoire

🔹 Comportement

  • Plusieurs règles peuvent correspondre

  • Toutes doivent retourner le même résultat

  • Sinon → erreur

🧩 Exemple réel : Éligibilité

ConditionÉligible
Âge > 18Oui
Pays = UEOui

Résultat final : Oui


5️⃣ COLLECT – Agrégation des résultats

🔹 Comportement

  • Toutes les règles correspondantes sont collectées

  • Agrégation possible :

    • COLLECT

    • COLLECT + (somme)

    • COLLECT < (minimum)

    • COLLECT > (maximum)

    • COLLECT # (compte)

🧩 Exemple réel : Scoring de risque (COLLECT +)

Facteur de risqueScore
Endettement élevé40
Retards de paiement30

Résultat final = 70

✅ À utiliser pour :

  • scoring

  • calculs cumulés

  • évaluations multi-critères


6️⃣ PRIORITY – Le résultat le plus prioritaire gagne

🔹 Comportement

  • Plusieurs règles peuvent correspondre

  • Le résultat avec la priorité la plus élevée est retourné

  • La priorité est définie par l’ordre des valeurs de sortie

🧩 Exemple réel : Niveau d’approbation

ConditionNiveau
Montant > 100kÉLEVÉ
Montant > 50kMOYEN

Résultat final : ÉLEVÉ


7️⃣ Tableau comparatif

Hit PolicyCorrespondances multiplesRésultat
FIRSTOuiPremière règle
UNIQUEUne seule règle
ANYOuiMême résultat
COLLECTOuiAgrégé
PRIORITYOuiPriorité la plus élevée

8️⃣ Erreurs fréquentes en production

❌ Utiliser FIRST sans ordre clair
❌ Utiliser UNIQUE avec des plages qui se chevauchent
❌ Utiliser ANY avec des résultats différents
❌ Oublier le type d’agrégation en COLLECT
❌ Utiliser PRIORITY sans définir l’ordre des valeurs


9️⃣ Bonnes pratiques (DMN / Camunda)

✅ Toujours documenter la Hit Policy choisie
✅ Tester les cas limites et chevauchements
✅ Préférer UNIQUE pour des règles métier propres
✅ Utiliser COLLECT pour les modèles de scoring
✅ Tester les décisions avec des données réelles
✅ Relire les tables DMN avant mise en production


🔟 Question d’entretien (bonus)

Q : Quelle Hit Policy utiliser pour un système de scoring ?
R : COLLECT (souvent COLLECT +)

Q : Quelle Hit Policy génère une erreur si plusieurs règles correspondent ?
R : UNIQUE


💼 Support professionnel disponible

Si vous rencontrez des problèmes liés aux tables de décision DMN, à des résultats incorrects ou à des erreurs en production, je propose des services de conseil payants, revue DMN, débogage en production et formations ciblées.

📧 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