Business Rule Task

Business Rule Task
A Business Rule Task provides a mechanism for the Process to provide input to a Business Rules Engine and to get the output of calculations that the Business Rules Engine might provide. The InputOutputSpecification of the Task will allow the Process to send data to and receive data from the Business Rules Engine.
— BPMN 2.0.2 Standard, 10.3.3, Business Rule Task

In Flowable, Business Rule Tasks are used to interact with external rule engines such as Drools. By default, Drools Expert is used to evaluate the rules.

Do not confuse this task with the Decision Task which is used to execute DMN decision tables.

Example

The example below shows the use of Business Rule task in analyzing the result of a survey. The business rule engine is used to analyzing the data collected from the survey. The analyzed data is summarized by a service task and then mailed to the main office.

Business Rule Task

Attributes

Group Attribute Description

General

ID

The unique identifier of the element within the process model.

Name

The name of the element. This is the name displayed in the diagram.

Documentation

A description and additional information about this element.

Details

Rules

The rules to execute.

Class

The fully qualified name of a class which either implements the class JavaDelegate or ActivityBehavior.

If you want to change the behavior of the rule evaluation or if you want to plug in another Rule engine, do so with this attribute.

Execution listeners

Active Execution Listeners of the activity. This lets you react to the following events:

  • Start: Occurs when the activity is started.

  • End: Occurs when the activity is completed.

Asynchronous

When enabled, the activity is started as an asynchronous job. The process state is persisted before this element is executed. Then the process execution is resumed asynchroneously. This can be used when the execution of an activity takes a long time to return the user interface. However, if an error occurs before the following wait state, there is no direct user feedback.

Result variable

The variable into which the result of the rule evaluation is stored.

Variables input

The variables that serve as inputs for the rule evaluation.

Exclude

Determines whether the business rules are excluded while executing.

Skip expression

Defines an expression which is evaluated before executing the task. If it evaluates to true, the task is skipped.

Skip expressions are only be evaluated if there is a process variable _ACTIVITI_SKIP_EXPRESSION_ENABLED with the boolean value true.

Is for compensation

Determines whether the activity can serve as a compensation for another activity.

Multi instance

Multi instance type

Determines if multiple instances of this activity are created. There are three choices:

  • None (default, only one instance is created).

  • MI parallel (activities are created in parallel. This is a good practice for User Tasks).

  • MI sequential (activities are created sequentially. This is a good practice for Service Tasks).

Once a type other than None is chosen, the following options appear:

  • Collection: The number of instances is determined by the elements of a collection. For each element in the collection, a new instance is created.

  • Element variable: The variable under which each element is available to the newly created instance.

  • Element index variable: The variable under which the current number of iterations is stored.

  • Completion condition: An expression which, if it evaluated to true, stops the creation of new instances.

  • Cardinality: An expression or numeric value (integer) which determines how many instances are created.

Visual

Font weight

The font weight of the element in the diagram.

Font size

The font size of the element in the diagram.

Font color

The font color of the element in the diagram.

Font style

The font style of the element in the diagram.

Background color

The background color of the element in the diagram.

Border color

The border color of the element in the diagram.