Skip to content

DMN

DMN (Decision Model and Notation)

Decision Model and Notation (DMN) is an industry standard for modeling and executing decisions that are determined by business rules.

DMN is not owned by a certain enterprise but by an institution (OMG), which is already established through other world-wide standards, e.g., BPMN and UML. The DMN standard is supported by several software products; you are less dependent on any particular vendor's products.

In DMN, decisions can be modeled and executed using the same language. Business analysts can model the rules that lead to a decision in easy to read tables, and those tables can be executed directly by a decision engine (like Camunda). This minimizes the risk of misunderstandings between business analysts and developers, and it even allows rapid changes in production.

DMN as a standard is young, but it was developed by people having decades of experience with business rule management. Even though, the standard does not dictate any special implementation patterns, allowing for more modern and lightweight implementations than traditional business rule engines.

by Camunda

Why use DMN

With DMN you can simplify your business rule, besides you can make all the rules in BPMN with DMN is easier to read and maintain. The DMN has its own version in repository, so you can change the rules without changing the process, so you don't need to migrate active process and you can reuse the decision table in other process too.

If we express the example above in BPMN, it looks like this:

The sorrow is obvious: It's way more verbose to express rules in BPMN, especially when there are several conditions to consider. The diagram becomes complex and hard to maintain.

That is why BPMN includes a so-called business rule task, which should better be named decision task in a later version of the BPMN standard: That task refers to a decision that needs to be made, and the outcome of the decision allows the subsequent exclusive gateway to route the flow, as you can see in the example below.

Engine

The engine used by Ceap Plataform is Camunda, it parses and executes the DMN file.

A recommended tutorial about Camunda DMN.

Decision Table

A decision table represents decision logic which can be depicted as a table in DMN 1.1. It consists of inputs, outputs and rules.

The most important thing to configure is the Decision Id, which is used in Business Rule in BPMN.

A Decision Table basically consists in inputs, rules and outputs that later can be used in BPMN. The official documentation to understand the how it works:

Decision Requirements Graph

A Decision Requirements Graph (DRG) models a domain of decision-making, showing the most important elements involved in it and the dependencies between them. The elements modeled are decisions, input data, and knowledge sources.

The visual representation of a DRG is called Decision Requirements Diagram (DRD).

When using a DRG, in the Business Rule the last Decision Table Id in the tree must be used. But remember that all the tree will be executed.

Official DRG Documentation

Using a Decision Table

The decision table cannot make any reference to a document, so it exists without a relation to document, if a value from document should be passed as input tou have to configure in the BPMN.

A DMN can only be executed inside a BPMN, though Business Rule Task. See the Business Rule Task Documentation to see how to use it.