Expressions in DMN
As shown in the decision table and decision literal expression reference, four types of expressions are supported:- Input Expression: sets the input value for an input column of the decision table
- Input Entry: used to determine if a rule of the decision table is applicable
- Output Entry: returns a value which is added to the output of a matched rule of the decision table
- Literal Expression: used to determine the value of a decision literal expression
inputExpression, inputEntry, outputEntry and literalExpression:
Supported Expression Languages
The ASEE Flow DMN engine supports two expression languages out of the box:JUEL: A ASEE Flow-maintained implementation of the Java Unified Expression LanguageFEEL: The Friendly Enough Expression Language of the DMN 1.2 standard.
Javascript implementation
available like Rhino or Nashhorn.
You can also use every other script language which provides a JSR-223
implementation. This includes groovy, python and ruby. To use these
languages you have to add the corresponding dependency to your project.
For example, to use groovy as language for expressions add these dependencies
to your project pom.xml:
Default Expression Languages
The default expression languages of the different expression types in the DMN engine are as follows:- Input Expression:
FEEL - Input Entry:
FEEL - Output Entry:
FEEL - Literal Expression:
FEEL
Legacy BehaviorYou can find how to go back to the legacy behavior, where
JUEL was used for input expressions,
output entries and literal expressions here.expressionLanguage attribute of
the definitions element:
Configuring the Expression Language
It is also possible to set the language for each expression individually using theexpressionLanguage attribute: