DMN Workflow¶
This guide walks through uploading, deploying, testing, and exporting a DMN decision model as part of a service definition.
Prerequisites¶
- A
.dmnfile (DMN 1.3 XML format) - The service metadata tabs (Service, Organisation, Legal) filled in — the service identifier is used to construct DMN URIs
- Access to the Operaton rule engine (default:
https://operaton.open-regels.nl)
Step 1: Upload the DMN file¶
In the DMN tab, click Upload DMN File and select your .dmn file.
On upload, the editor:
- Parses all
<decision>elements from the XML - Filters out constant parameters (
p_*prefix) automatically - Extracts the primary decision key (the main output decision)
- Auto-generates a test request body from the
<inputData>elements - Shows a badge: "N testable decisions detected (p_* constants filtered)"
If you do not have a DMN file yet, click Load Example to use the provided AOW example.
Step 2: Review the syntactic validation result¶
Immediately after upload, the editor runs the file through the five-layer syntactic validator and displays the result in the file card.
If the file is valid, a green Syntax valid badge appears. Any warnings or informational messages are shown in a collapsed panel — review them before deploying.
If the file has errors, the panel expands automatically and lists the issues grouped by layer. Address the errors in your DMN authoring tool before proceeding with deployment.
| Badge | Meaning |
|---|---|
| 🟢 Syntax valid | No errors. Warnings and info messages may still be present. |
| 🔴 Validation failed | One or more errors detected. Deployment will likely fail or produce incorrect results. |
Tip
Warnings in the Interaction Rules layer often indicate orphaned <inputData> elements — inputs that exist in the DRD but are not connected to any decision via <informationRequirement>. These are harmless for execution but result in dead data in the model.
For a full explanation of every issue code and its rationale, see the DMN Validation Reference.
Step 3: Configure the API endpoint¶
The API endpoint defaults to https://operaton.open-regels.nl/engine-rest. Change it if you are using a different Operaton instance.
Step 4: Deploy to Operaton¶
Click Deploy to Operaton. The editor sends the DMN file to the engine via POST /engine-rest/deployment/create.
On success, the button changes to Deployed — ID: {deployment-id} and the deployment ID and timestamp are stored. These are included in the Turtle output.
Step 5: Test the decision¶
Review the auto-generated request body in the test panel. Edit variable values to match your test scenario.
Click Evaluate Decision to call POST /engine-rest/decision-definition/key/{decisionKey}/evaluate. The response is displayed inline.
For multi-table DMNs, expand the Intermediate Decision Tests section and click Run Intermediate Tests to evaluate each sub-decision individually — useful for isolating which part of a complex DRD is producing an unexpected result.
Step 6: Export TTL with DMN metadata¶
Click Download TTL. The exported file includes:
- The
cprmv:DecisionModelentity with deployment ID and API endpoint - All input variables as
cpsv:Inputentities - All extracted decision rules as
cprmv:DecisionRuleentities, each linked to the relevant legal article viacprmv:extends
The DMN section is appended after the core service metadata.
Tips¶
- Fill in the Service identifier before uploading the DMN — it is used to construct the DMN model URI.
- Use descriptive decision keys in your DMN XML (e.g.
zorgtoeslag_resultaatrather thanDecision_1). - Do not use spaces in decision keys — use underscores or camelCase.
- Deploy and test before exporting. Undeployed DMN metadata in the Turtle output has no deployment ID, which limits its usefulness.
- Resolve all validation errors before deploying. Warnings are advisory and will not prevent a successful deployment.