Prev Next

DMN Modeling and Simulation

Decision Model and Notation (DMN) is a standard published and managed by the Object Management Group (OMG). It provides a standard approach for describing, modeling and implementing repeatable decisions within an organization or an initiative. It is also intended to facilitate the sharing and interchange of decision models between organizations.

The modeling notation comprises a visual grammar that allows decisions and business rules to be documented in a way that makes them readable by both business and technical audiences thus ensuring that decisions and rules are not misinterpreted. The resulting Decision Model also provides a definition of how to evaluate the logic of decisions defined in Decision Tables using the Friendly Enough Expression Language (FEEL).

The purpose of DMN is to provide the constructs that are needed to model decisions, so that organizational decision-making can be readily depicted in diagrams, accurately defined by business analysts.

In this topic, we will introduce DMN Expression, DMN Simulation Artifact and how you can use Enterprise Architect to automate the decision-making process.

DMN Expressions

  • DMN Expression: Decision Table
  • DMN Expression: Boxed Context
  • DMN Expression: Literal Expression
  • DMN Expression: Function
  • DMN Expression: Invocation

DMN Data

  • DMN ItemDefinition
  • DMN InputData
  • DataSet for InputData

DMN Simulation

  • Configure a DMN Simulation Artifact
  • Run, Step through or Debug the DMN Simulation

Code Generation & Connect to BPMN

  • Generate the DMN Server in Java, JavaScript, C++, or C#
  • Run/Debug testing of the Java version of the DMN Server
  • Connect the DMN Server with the Enterprise Architect BPSim Execution Engine

Common Errors & Solutions

  • 'Run validation' will help you locate most of the modeling issues; run this before simulation and code generation
  • Variable Types: as DMN models use the FEEL language (Simulate with JavaScript), typing variables is not compulsory; however, when generating code to languages that are compiled, you do have to type a variable - there are context menu options and tag values for setting a type to the variables
  • Since a DMN expression allows for spaces, in order to clarify the composite Input Data there must be a space before and after the '.' in the expression; for example, 'Applicant data . Age' is valid, whereas 'Applicant data.Age' is not valid
    Note that when using the Auto Completion feature this issue will not arise