BPMN + DMN: Combining Process and Decision Modeling in Sparx EA
BPMN shows what happens and in what order. DMN shows how a complex decision is made. Model them separately and both get easier to maintain, govern, and automate.
Most process models hide their decision logic. A label on a sequence flow reads if credit score > 700 and employment > 2 years and loan-to-value < 80%, and that works, right up until the rules get complicated or start changing every quarter. DMN (Decision Model and Notation) pulls that logic out into its own model: the notation for rules, conditions, and outputs that BPMN was never designed to carry. In Sparx EA, both live in the same repository.
A process architect's job is to get the flow of the work and the rules that steer it into models the business can review and the organization can run. Building the diagrams, wiring the Business Rule Tasks and keeping decision tables consistent with the processes that call them is mechanical work. In AI-augmented work the architect states the process and the policy, and AI builds the BPMN, the Decision Requirements Diagram and the tables in the model and checks that every decision is called from somewhere. The skill this asks for is knowing when logic belongs in a gateway and when it belongs in a decision, and reading a generated table against the actual policy. The rest of this article is the reference for that judgment.
Why separate process from decision
Embedding decision logic in BPMN gateways is fine for one or two conditions. It breaks down the moment decisions get real:
- Rules buried in gateway conditions are hard to find, audit, and change.
- Business stakeholders cannot review rules expressed as process conditions.
- When a rule changes, a regulatory update, a product policy shift, finding and updating every affected gateway is error-prone.
- The same logic gets duplicated across multiple process models.
DMN fixes this by giving the decision its own model. The BPMN process calls the decision (“make credit decision”); the DMN specifies how (“apply these rules to these inputs to produce this output”). A business analyst can update the Decision Table without touching the process.
How BPMN and DMN connect in Sparx EA
The bridge between the two notations is the Business Rule Task, a BPMN task marked with a small table icon that says “at this point, invoke this decision.” It links to a DMN Decision element, which in turn is specified by a Decision Table.
To wire it up in Sparx EA: add a Business Rule Task at the decision point in your BPMN diagram, set its Implementation type to DMN, then link it to the DMN Decision element with a Dependency relationship (or via the task's Called Decision property). For executable processes on Camunda or Zeebe, the task configuration also carries the DMN decision key and the input/output variable mappings.
DMN core concepts
Decision. The fundamental DMN element. It takes inputs and produces an output. A credit decision takes credit score, income, debt-to-income ratio, loan amount, and property value, and produces Approved / Declined / Referred.
Decision Requirements Diagram (DRD). The structural view showing how decisions relate to each other and to their input data. A loan DRD might show a Credit Score Decision feeding a Credit Approval Decision, which feeds a Loan Terms Decision.
Decision Table. The most common DMN artifact. Each row is a rule: given these input conditions, produce this output. Hit Policies determine what happens when multiple rules match.
FEEL. Friendly Enough Expression Language, the DMN expression language for conditions and outputs. FEEL is human-readable: credit_score > 700, income * 0.28 >= monthly_payment, ["Approved", "Premium"] includes decision_output.
Input Data. Data that feeds decisions from outside the decision model: from the process context, a database, or a service call.
Decision Tables and Hit Policies
A Decision Table has three parts: input columns (the conditions evaluated), output columns (the values returned when a rule matches), and rule rows. The Hit Policy controls what happens when more than one rule matches.
| Hit Policy | Code | Behavior |
|---|---|---|
| Unique | U | Exactly one rule must match; others are errors |
| Any | A | Multiple rules can match but must produce the same output |
| First | F | First matching rule wins (rules ordered by priority) |
| Rule Order | R | All matching rules apply, results in rule order |
| Collect | C | All matching rules apply, results collected (sum, min, max, count, or list) |
| Output Order | O | All matching rules apply, outputs ordered |
Unique is the safest and most common policy for approval decisions. First suits rules with a natural priority order. Collect with sum is the scoring-table pattern, where several rules each contribute to a total.
The Decision Requirements Diagram in Sparx EA
The DRD is the overview that shows the decision architecture, which decisions depend on which, and which input data feeds which decisions.
DRD elements (DMN MDG):
- Decision (rectangle): the decision being made.
- Input Data (rectangle with clipped corners): data from outside the decision model.
- Business Knowledge Model (rectangle with a wavy bottom): reusable decision logic, like a function, that decisions invoke.
- Knowledge Source (ellipse): the authority, policy, or regulation that governs a decision.
Relationships: Information Requirement (solid arrow), a Decision or Input Data provides information to another Decision; Knowledge Requirement (dashed arrow), a Decision invokes a Business Knowledge Model; Authority Requirement (dashed arrow with a circle), a Knowledge Source governs a Decision.
To build one: make sure the DMN technology is enabled, add a Decision Requirements Diagram, drag Decision and Input Data elements from the toolbox, and connect them with Information Requirement arrows.
Worked example: loan approval
The BPMN process (top level): Application Received → Collect Application Data → Retrieve Credit Report (service task) → Evaluate Credit Application (Business Rule Task → calls the DMN Credit Decision) → Exclusive Gateway on the outcome. Approved routes to Generate Offer Letter; Conditional routes to Request Additional Documentation and loops back; Declined routes to Send Decline Notice.
The DMN side specifies how the decision is made. Inputs: Credit Score, Annual Income, Monthly Debt Obligations, Loan Amount, Property Value. Two calculated decisions (Debt-to-Income Ratio, Loan-to-Value Ratio) feed the Credit Decision, which produces Approved / Conditional / Declined via this table:
| Credit Score | DTI Ratio | LTV Ratio | Decision |
|---|---|---|---|
| >= 700 | <= 0.36 | <= 0.80 | Approved |
| [650..700) | <= 0.40 | <= 0.85 | Conditional |
| [600..650) | <= 0.43 | <= 0.90 | Conditional |
| < 600 | any | any | Declined |
| any | > 0.43 | any | Declined |
| any | any | > 0.90 | Declined |
This table is the lending policy. When regulators change DTI limits or the product team adjusts LTV criteria, analysts edit the Decision Table, the BPMN process model never moves. Keeping flow and rules separate is the process modeling discipline that keeps a repository governable.
When to model a decision separately: and when not to
Use DMN when
- The decision has three or more input variables.
- Rules change frequently and need independent governance.
- The same logic applies across multiple processes.
- Business stakeholders must review rules without reading BPMN.
- The process runs on a DMN-capable engine (Camunda, Drools, Trisotech).
Keep it inline when
- The decision is one or two conditions, clear as a gateway label.
- It is unique to this process and won't be reused.
- The logic is stable and unlikely to change.
- The model is documentation-only and simplicity beats completeness.
The overhead of DMN earns its keep when decisions are complex, changeable, or shared. For a simple “if order value > $1,000, require manager approval,” a gateway label is enough. Getting that judgment right consistently across a team is a capability worth building deliberately.
Frequently asked questions
Does Sparx EA support DMN Decision Table editing natively?
Yes, with the DMN MDG extension installed. Sparx EA renders Decision Tables as editable grids in the element properties dialog, and FEEL expressions go straight into the cells. For very large tables with many rules, some architects build them in a dedicated DMN editor (Camunda Modeler, Trisotech) and import the DMN XML into Sparx EA for documentation.
Can DMN be used without BPMN?
Yes. DMN is a standalone notation. You can model a complete decision architecture in DRD and Decision Table form with no process context at all: useful for policy modeling, regulatory compliance documentation, and decision audit trails where the process is not the point.
What is FEEL, and do we need to learn it?
FEEL (Friendly Enough Expression Language) is the DMN expression language. For straightforward value matching (>= 700, "Approved", [550..650)) it is intuitive for most analysts. Date arithmetic, list operations, and context expressions take more study, but basic FEEL covers the great majority of business rule tables.
How does DMN handle lookups or external data?
Decision Tables operate only on the data provided to them. They do not query databases. External data arrives as Input Data from the process context (populated by preceding service tasks) or as Business Knowledge Models holding reusable lookup logic. If a decision needs current data from a system of record, a BPMN service task retrieves it before the Business Rule Task fires.
Can the same DMN decision be called from multiple BPMN processes?
Yes. This is one of DMN's main benefits. A Credit Decision model can serve a mortgage application, a personal loan, and a credit card application, all on the same logic. When lending policy changes, you update the Decision Table once and every process is current.
How do we version-control Decision Tables as rules change?
Treat DMN elements like any other governed artifact: take a baseline of the package at each major policy update, and tag each rule with effective_date and policy_version in the notes. For executable DMN on process engines, most engines manage decision versions directly. You deploy a new version and configure which instances use it.
Get process and decision models built and kept current, by your team or by us.
We can teach your process architects to build BPMN and DMN with AI on your own repository and mentor them until it sticks, or build the models for you and hand it over. Most teams want some of both.
Book a callKeep reading
You might also be interested in
BPMN Gateways: XOR, OR, AND and Event-Based: When to Use Each
Pick the right gateway so your process means what you intend.
Read InsightBPMN Sub-Processes, Call Activities and Error Handling
Reuse, exception handling, and compensation done correctly in Sparx EA.
Read DisciplineProcess Modeling
Build BPMN and DMN capability that produces models fit for execution.
Explore For architectsFor Architects
How Sparx Services helps practitioners model with rigor and confidence.
Explore