Prev Next

Expression Editor Dialog

The expression Editor dialog is used for setting expressions in the Boxed content, Invocation and Literal Expression element types. It provides Intelli-sense support for constructing expressions based on the FEEL grammar, as well as the code languages that can be used for the code generation of the model.

Expression Editor and Intelli-sense support

In order to help you edit the expressions with less typing and making fewer mistakes, Enterprise Architect provides Intelli-sense support for editing these expressions.

Note that the parameter and Context Entry's variable name can contain spaces, according to the FEEL language specification. This feature is intended to make the expression easy to read.


Given this decision hierarchy, the expression in 'Decision3' is able to use the outputs from the two referenced Decisions.

A DMN diagram for decision hierarchy modeled in Sparx Systems Enterprise Architect.

To open the Expression Editor:

  1. Right-click on the Expression and select the menu option 'Edit Expressions...'

    This will display the 'Expression' dialog.
  2. Press Ctrl+Space to show the Intelli-sense menu:

Setting a FEEL expression for a DNM decision using Sparx Systems Enterprise Architect.

  • For 'BKM', all the parameters will be included
  • For 'Decision', all the required Decisions will be included
  • All the Context Entry Variables earlier than the current one will be included (the context entries later than the current one are excluded).

In this example, editing a BKM Boxed Context expression, the Input Parameters are shown in the  Intelli-sense menu:

Lanaguage selection

The DMN Model can be generated as source code in JavaScript, Java, C# or C++. As the syntax differs between the languages, Enterprise Architect provides language-override pages for each language. If no override code is specified for a language, the expression that is defined for the FEEL language will be used.

Note: In the generated code, the space inside a variable name will be replaced by an underscore.

Learn more