Flow conditions

BPMN flow conditions are expressions used to determine the path of execution in a BPMN process based on specific criteria. They enable dynamic routing of process instances by evaluating the conditions at runtime and choosing the appropriate sequence flow.

Setting conditionals

Setting conditions with regex involves using regular expressions to define a pattern that a particular piece of data must match. When the data matches the specified regex pattern, the condition is met, allowing for actions or decisions to be taken based on that match.

  1. Select flow (arrow)

  2. Go to ADVANCED SETTINGS

  3. Go to Conditions

  4. Select Type=Expression

  5. Provide a conditional expression

Available conditional expression

Basic operators

NameConditional expressionDescription

Exists

${value != null}

"Value cannot be empty"

Does not exists

${value == null}

"Value is empty"

Text operators

NameConditional expressionDescription

Equals to "John"

${FirstName.equalsIgnoreCase('John')}

"The first name exactly matches 'John'."

Equals to "John" (case sensitive)

${FirstName.equals('John')}

"The first name matches 'John' with exact letter casing."

Not equals to "John"

${!FirstName.equalsIgnoreCase('John')}

"The first name does not match 'John'."

Not equals to "John" (case sensitive)

${!FirstName.equals('John')}

"The first name does not match 'John' with exact letter casing."

Not contains "John"

${!FirstName.containsIgnoreCase('John')}

"The first name does not have 'John' anywhere within it."

Not contains "John" (case sensitive)

${!FirstName.contains('John')}

"The first name does not have 'John' anywhere within it."

Contains "John"

${FirstName.containsIgnoreCase('John')}

"The first name has 'John' somewhere within it."

Contains "John" (case sensitive)

${FirstName.contains('John')}

"The first name has 'John' somewhere within it."

Does not contains "John"

${!FirstName.containsIgnoreCase('John')}

"The first name does not have 'John' anywhere within it."

Does not contains "John" (case sensitive)

${!FirstName.contains('John')}

"The first name does not have 'John' anywhere within it."

Starts with "John"

${FirstName.startsWithIgnoreCase('John')}

"The first name begins with 'John'."

Starts with "John" (case sensitive)

${FirstName.startsWith('John')}

"The first name begins with 'John'."

Does not start with "John"

${!FirstName.startsWithIgnoreCase('John')}

"The first name does not begin with 'John'."

Does not start with "John" (case sensitive)

${!FirstName.startsWith('John')}

"The first name does not begin with 'John'."

Ends with "John"

${FirstName.endsWithIgnoreCase('John')}

"The first name concludes with 'John'."

Ends with "John" (case sensitive)

${FirstName.endsWith('John')}

"The first name concludes with 'John'."

Does not end with "John"

${!FirstName.endsWithIgnoreCase('John')}

"The first name does not conclude with 'John'."

Does not end with "John" (case sensitive)

${!FirstName.endsWith('John')}

"The first name does not conclude with 'John'."

Numeric operators

NameConditional expressionDescription

Equal to 100

${NumericValue == 100}

"The numeric value is exactly 100."

Not equal to 100

${NumericValue != 100}

"The numeric value is not 100."

Greater than 100

${NumericValue > 100}

"The numeric value is greater than 100."

Less than 100

${NumericValue < 100}

"The numeric value is less than 100."

Greater than or equal to 100

${NumericValue >= 100}

"The numeric value is 100 or greater."

Less than or equal to 100

${NumericValue <= 100}

"The numeric value is 100 or less."

Date & Time operators

NameConditional expressionDescription

Equal to targetDate

${DateTimeValue.equals(targetDate)}

"The DateTime value matches the target date."

Not equal to targetDate

${!DateTimeValue.equals(targetDate)}

"The DateTime value doesn't match the target date."

Greater than targetDate

${DateTimeValue.after(targetDate)}

"The DateTime value is after the target date."

Less than targetDate

${DateTimeValue.before(targetDate)}

"The DateTime value is before the target date."

Greater than or equal to targetDate

`${DateTimeValue.after(targetDate)

"The DateTime value is after or today the target date."

Less than or equal to targetDate

`${DateTimeValue.before(targetDate)

"The DateTime value is earlier or today the target date."

Boolean operators

NameConditional expressionDescription

Equal to true

${BooleanValue == true}

"The boolean value is true."

Not equal to true

${BooleanValue != true}

"The boolean value is not true."

Array operators

NameConditional expressionDescription

Contains 'John'

${Value.contains('John')}

"The list contains the string 'John'."

Contains 'John' (Case sensitive)

${Value.stream().anyMatch(str -> str.equals('John'))}

"The list contains the string 'John' with exact letter casing."

Does not contain 'John'

${!Value.contains('John')}

"The DateTime value is after the target date."

Does not contain 'John' (Case sensitive)

${ArrayListValue.stream().noneMatch(str -> str.equals('John'))}

"The list does not contain the string 'John' with exact letter casing."

Last updated