avatarGhailene ben Marzouk

Summary

The Camunda DMN engine utilizes FEEL (Friendly Enough Expression Language) for defining input values, offering a range of basic unary tests including comparisons, ranges, disjunctions, negations, and qualified names, while also providing date functions for generating date and time values.

Abstract

The Camunda DMN engine integrates the FEEL language to facilitate the expression of simple unary tests for input values, which are crucial for evaluating conditions within decision models. FEEL supports comparison operators, such as "equals" (denoted by empty space instead of =) and excludes a non-equal operator, requiring negation for its expression. It also allows for testing values against ranges, including the specification of range boundaries. Disjunction in FEEL enables the conjunction of expressions to evaluate as true if any expression is true. Negation is achieved using the not function, with the limitation that only a single negation is allowed at the beginning of an expression. Additionally, FEEL can retrieve variables and object properties using qualified names. The language is also equipped with functions to handle date and time values, such as parsing strings into date and time objects. The article concludes by inviting readers to contact the author for further information and provides a list of related Camunda topics for further exploration.

Opinions

  • The author emphasizes the simplicity and utility of FEEL for expressing conditions within the Camunda DMN engine.
  • The use of specific examples and screenshots suggests a practical approach to understanding and implementing FEEL within Camunda.
  • The author provides guidance on the correct usage of operators, especially noting the absence of a non-equal operator and the necessity of using negation.
  • By highlighting the capabilities of FEEL in handling various data types and date functions, the author conveys the robustness of the language for complex decision-making processes.
  • The invitation for further contact and the list of additional Camunda-related articles indicate the author's willingness to engage with the community and share expertise.

Feel language Camunda

The Camunda DMN engine enables the use of FEEL (Friendly Enough Expression Language) for input values. The FEEL language provides simple unary tests for expression in input values. These unary tests evaluate an input value against an expression and yield either true if the test is met or false otherwise. The expression can consist of various elements, which are explained in the following sections.

Comparison

FEEL basic unary tests include the comparison operators listed below. Please keep in mind that the equals operator is denoted as empty and not =. Moreover, there is no non-equal operator like != available. To convey this, negation must be utilized.

Range

Certain FEEL data types, such as numeric types and date types, can undergo testing against a range of values. These ranges encompass both a start value and an end value. Additionally, the range specification determines whether the start and end values are included in the range.

Disjunction

A FEEL basic unary test can be expressed as a conjunction of expressions. These expressions must either consist of comparisons or ranges. The test will be true if at least one of the conjunct expressions evaluates to true.

Negation

A FEEL basic unary test can undergo negation using the not function. In this case, if the enclosing expression evaluates to true, the test will yield false. Please be aware that only a single negation as the first operator is permitted, but it can include a disjunction.

Qualified Names

FEEL basic unary tests have the capability to retrieve variables and object properties using qualified names.

Date Functions

FEEL basic unary tests offer functionalities for generating date types. The Camunda DMN engine facilitates the use of the subsequent date functions:

  • date and time(“…”): Generates a date and time value from a String formatted as yyyy-MM-dd’T’HH:mm:ss.

Thank you for reading my article, Please contact me for any further information.

Other Camunda topics:

camunda task events notifier camunda genericuser task listener in camunda task marker multi-instance taskmarker loop in camunda feel language camunda how to work with dmn how to work with dmn how-to-use-embedded-task-form-in-camunda all-about-camunda-database error-handling-in-camunda sub-process-in-camunda gateways-in-camunda camunda-with-spring-boot-example task-in-camunda events-in-camunda

Dmn
Language
Camunda
Friendly
Expression
Recommended from ReadMedium