Build a DMN decision table
Building a table is mechanical once the structure is clear: add the input columns, add the output columns, then add one row per rule.
Set the hit policy deliberately before writing rules, because it decides what happens when two of them match.
#What this is for
Turning a set of business rules into something executable.
Replacing a spreadsheet of rules that nobody can validate.
Documenting rules a business owner will maintain.
#How it works
Action | How |
|---|---|
Add an input column | Set its expression and its type reference. |
Add an output column | One or more, each with a type. |
Allowed values | Constrain a column to a list, which turns typos into errors. |
Add rules | One row each, with a value, a range, or a dash in every input cell. |
Hit policy | Top-left. Unique is the safest default. |
Annotation column | Right-most. Notes that do not affect the result. |
#A few things that catch people out
Set allowed values where you can. It is the difference between a validated table and a spreadsheet.
A dash means the input is irrelevant to that rule. An empty cell is not the same thing.
With Unique, overlapping rules become a visible error, which is exactly what you want.
#Related
Draw the map before writing the rules.
