ProcessMaker 4.2
ProcessMaker API Documentation
ProcessMaker Examples
Deprecation Notices
Expression Syntax Components
Use Friendly Enough Expression Language (FEEL) to assign the Task's assignee using one or more rules.

Overview

Friendly Enough Expression Language (FEEL) is a syntax ProcessMaker uses to design expressions that calculate values based on dynamic conditions either within Request data and/or Magic Variables. ProcessMaker uses these Expression Syntax Components for the following purposes:

Show or Hide Screen Builder Controls

Use Expression Syntax Components for Visibility Rule settings in Screen Builder controls that describe under which condition(s) that Screen control to display. See an example.
If an expression in a control evaluates as True, then that control displays during a Request. If an expression in a control does not evaluate as True, then that control does not display during a Request.
Spaces are allowed before and after expression components, such as arithmetic and comparison operators, to more easily read the expression.
Combine expressions using logical operators. Example: (not approved) or (cost > 500).

Controls with No Visibility Rule Display by Default

If a Screen control does not have an expression in its Visibility Rule setting, then that control displays by default.

Use Magic Variable Values in Expressions

Use Magic Variables when composing Visibility Rule expressions.

Use Request Variable Values as Dynamic Values in Expressions

Request variable values can be used when composing Visibility Rule expressions. For example, to dynamically compare the _user.id Magic Variable value that represents the unique identifier for the user against a Request variable called BusinessBankerID that represents the current Request variable value derived from a Collection during a Request, use the "equal to" comparative operator to compare those values: _user.id == businessBankerId.

Visibility Rules Override Custom CSS

If a Screen control affected by a visibility rule is hidden by default from custom CSS, the visibility rule overrides the custom CSS design. For example, if custom CSS is designed to hide a Screen control by default when that control's visibility rule dictates that it be visible, the visibility rule overrides the custom CSS to display that control. As a best practice, use visibility rules instead of custom CSS to hide a control by default.

Assign Tasks Dynamically Based on Request Data

Optionally assign a Task using rules. Rules allow to dynamically assign a Task based on conditions during that Request. When the BPMN element associated with that Task triggers, ProcessMaker evaluates the rule(s) for that element to assign that Task to an assignee.
The following Task-type BPMN elements can use rules to dynamically assign its Task:
Each rule can only have one expression, but by using logical operators multiple conditions can be specified in that expression. You may use multiple rules to better confine the condition(s) to whom to assign the Task. You may use Magic Variables in your expression syntax.

Set Request Conditions When a Sequence Flow Element Triggers from an Exclusive Gateway or Inclusive Gateway Element

Specify the condition(s) that must occur in a Request to trigger that Sequence Flow element, thereby triggering its connecting element. By setting different conditions on all outgoing Sequence Flow elements from an Exclusive Gateway or Inclusive Gateway element, you determine the business requirements for each Request of that Process model. ProcessMaker evaluates a Sequence Flow element's condition(s) to trigger by reviewing the Request's data to an expression that describes the condition(s). You may use Magic Variables in your expression syntax.

Expression Syntax Components

Use the following expression syntax components to compose the expression that describes to whom is assigned a Task referenced in a Form Task element or Manual Task element.
Spaces are allowed before and after expression components, such as arithmetic and comparison operators, to more easily read the expression.
Combine expressions using logical operators. Example: (not approved) or (cost > 500).
Magic Variables can be used in when composing expressions.

Literals

Component
Syntax
Example
string
"hello world" or 'hello world'
FullNameInput == "Louis Canera"
number
100
cost > 500
array
[value1, value2]
myFruit not in ["apples", "oranges"]
Boolean
true and false
directorSigned

Arithmetic Operations

Component
Syntax
addition
+
subtraction
-
multiplication
*
division
/

Logical Operators

Component
Syntax
not
not
and
and
or
or

Comparison Operators

Component
Syntax
equal to
==
not equal to
!=
less than
<
greater than
>
less than or equal to
<=
greater than or equal to
>=

String Operator

Component
Syntax
concatenate matches
~

Array Operators

Component
Syntax
contains
in
does not contain
not in

Range

Component
Syntax
Example
range
..
foo in 1..10

Related Topics