Erreurs de validation DMN – Comment corriger (avec exemples & bonnes pratiques)
Le DMN (Decision Model and Notation) est très puissant… mais aussi très strict.
Dans la majorité des incidents en production (Camunda, jBPM, Drools), la cause n’est pas le BPMN — ce sont les tables de décision invalides.
Le pire ?
👉 Un DMN peut être déployé correctement mais échouer à l’exécution.
1) Règles manquantes (Gap Error)
Problème
La table de décision ne couvre pas tous les cas possibles.
| Âge | Prêt |
|---|---|
| <18 | Refuser |
| >18 ET <60 | Approuver |
Que se passe-t-il pour âge = 60 ?
➡ Aucun résultat → incident / null / erreur 500
Correction
Ajouter une règle par défaut :
| Âge | Prêt |
|---|---|
| <18 | Refuser |
| >=18 ET <60 | Approuver |
| sinon | Revue manuelle |
Recommandation
Toujours ajouter une règle fallback à la fin :
- (tiret = n’importe quelle valeur)
2) Règles qui se chevauchent (Overlap / Hit Policy)
Problème
Plusieurs règles correspondent à la même entrée.
| Salaire | Statut |
|---|---|
| >50000 | Gold |
| >30000 | Silver |
Salaire = 70000 → 2 résultats ❌
Correction
Rendre les conditions exclusives:
>30000 AND <=50000
>50000
Recommandation
👉 90% des cas métier utilisent FIRST.
3) Erreurs de syntaxe FEEL
Le langage FEEL est la première cause d’échec runtime.
| Faux | Correct |
|---|---|
| = "YES" | "YES" |
| age > = 18 | age >= 18 |
| true() | true |
| null() | null |
Checklist
✔ Pas de = dans la cellule
✔ Boolean = true / false
✔ String entre guillemets
✔ Nom variable exact BPMN
4) Types de données incorrects
DMN est strictement typé.
Entrée : "50000" (string)
Attendu : 50000 (number)
Erreur :
Cannot compare string and number
Correction
Caster les types :
number(salary)
string(customerType)
date(orderDate)
Recommandation
Ne jamais faire confiance aux données externes.
5) Mauvais mapping de sortie
DMN produit :
decisionResult
BPMN attend :
approvalStatus
➡ Processus bloqué
Correction
Mapper explicitement la variable dans le Business Rule Task.
6) Mauvaise utilisation du tiret (-)
Le tiret signifie ANY value, pas NULL.
| Pays | Taxe |
|---|---|
| - | 18% |
Cela écrase toutes les autres règles.
Recommandation
Utiliser uniquement pour la dernière règle.
Stratégie de prévention en production
Tests unitaires DMN (obligatoire)
| Entrée | Résultat |
|---|---|
| Age 10 | Refuser |
| Age 30 | Approuver |
| Age 60 | Manuel |
Bonnes pratiques entreprise
Utiliser FIRST
Ajouter règle par défaut
Caster les variables
Conditions exclusives
Versionner les décisions
Checklist de debug rapide
Lire logs FEEL
Vérifier variables
Vérifier hit policy
Tester cas limite
Vérifier types
Ajouter fallback
📚 Lectures recommandées
Pour mieux comprendre et éviter les incidents en production:
👉 https://shikhanirankari.blogspot.com/search/label/French
Consultez notamment :
Ces sujets sont directement liés aux échecs DMN en production.
Conseil final
BPMN échoue bruyamment.
DMN échoue silencieusement.
En appliquant :
✔ FIRST
✔ règle par défaut
✔ types stricts
✔ tests
Vous éliminez 95% des incidents DMN en production.
💼 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, CMS, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM, Flowable), DMN/Drools.
📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com
🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium
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, CMS, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM, Flowable), DMN/Drools.
📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com
🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium
Comments
Post a Comment