Prev | Next |
Decision Expression Types
The logic level of Decision Modeling and Notation uses expressions that allow decision modelers to construct statements that relate input values to output values using a range of expressions, languages and their predefined functions. The business, engineering or scientific context for each Decision Model is likely to vary widely, and just as the Decision Requirements model will need to differ in these separate contexts, so too will the way the decision logic level is expressed. It is to accommodate these different circumstances that the specification provides four different ways to express the expression logic, and it is left up to the modeler to select the most appropriate one to use. The four value expression types are: Literal Expressions, Boxed Context, Invocations and Decision Tables. The Decision Table is undoubtedly the most flexible and universally applicable of the expression types, and while they will be discussed here an entire topic in this Guide is devoted to how to work with them.
In the next sections we will provide some guidance on which expression type to use in a given context, but in many ways the order that these types are presented is a reflection of their applicability and complexity. Enterprise Architect supports all four expression types, and adds a range of additional features beyond what is prescribed in the specification that will make a modeler productive and help to ensure that the Decision Models provide great business, engineering or scientific value.
We will also provide some information about the expression languages, including the Friendly Enough Expression Language, or FEEL for short.
Value Expression Types
Boxed Context ![]() |
A boxed context is a collection of context entries, consisting of (name, value) pairs, each with a result value. The context entries provide a means of decomposing a complex expression into a series of simple expressions, providing intermediate results that can be used in subsequent context entries. |
Decision Table ![]() |
A decision table is a tabular representation of a set of related input and output expressions, organized into rules indicating which output entry applies to a specific set of input entries. |
Invocation ![]() |
An invocation calls on another model element (a BusinessKnowledgeModel or a Decision Service) to provide a decision result. The invocation defines parameters that are passed into the 'invoked' element, providing context for evaluation of its decision logic. The decision result is then passed back to the 'invoking' element. |
Literal Expression ![]() |
A Literal Expression specifies the decision logic as a textual expression that describes how an output value is derived from its input values. To support simulation and execution, the Literal Expression can use JavaScript functions. |