Manual Task

A task that is performed outside of any process engine or application. For example, a user must make a telephone call.

Attributes: General

Attribute Description
Model ID The unique identifier of the element within the process model.
Name The name of the element displayed in the diagram.
Documentation A description and any additional information about this element.

Attributes: Execution

Attribute Description
Asynchronous When enabled, the activity starts as an asynchronous job.
Execution listeners

Allows you to invoke Java logic after certain events:

  • Start: Executes after the activity has been started.
  • End: Executes after the activity was completed.
  • Transition: When defined on a sequence flow, executes once the flow is transition is taken.
Skip expression

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

You must opt-in to enable this feature by setting a process variable _FLOWABLE_SKIP_EXPRESSION_ENABLED with the Boolean value true.

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

Attributes: Multi instance

Attribute Description
Multi instance type Determines if multiple instances of this activity are created:
  • None - default, only one instance is created.
  • MI parallel - activities are created in parallel. This is good practice for user tasks.
  • MI sequential - activities are created sequentially. This is good practice for service tasks.
Collection

Expression to set the loop collection for a multi-instance task. The number of instances is determined by the elements of a collection. For each element in the collection, a new instance is created.

A common use case is to loop over lists created by multi-element subforms. For example, if you bound a subform to an array of invoice positions using the expression invoicePositions, you can set the loop collection to ${invoicePositions} to loop over each position.

Element variable

The name of the variable where the currently processed item from the loop collection is stored, for example invoicePosition.

You can access the element in the process through an expression, for example ${invoicePosition}. To access the element in a form, you can add a task listener that copies the variable on creation from the execution level to a local task variable, for example ${task.setVariableLocal("invoicePosition",invoicePosition)}. The element is then available in the form through the task.invoicePosition variable.

Element index variable

The name of the variable where the index of the currently processed item from the loop collection is stored, for example, itemIndex.

The index starts with 0 and increases with every element that is being looped through. You can access the index in the process through an expression, for example ${itemIndex} in the process. To access the index in a form, you can add a task listener that copies the variable on creation from the execution level to a local task variable, for example ${task.setVariableLocal("itemIndex", itemIndex)}. The index is then available in the form through the task.itemIndex variable.

Cardinality A number or an expression that evaluates to an integer, which controls the number of activity instances that are created. If the attribute Collection is empty, a new instance is created for every element of the list. With cardinality, you can overwrite this and only create a given number of instances. You can also use this attribute if you want to loop over an activity a given number of times without specifying a collection.
Completion condition A Boolean expression that when true cancels the remaining activity instances, stopping the loop, and produces a token.

Attributes: Visual

Attribute Description
Font color The font color.
Font size The font size.
Font style The font style.
Font weight The font weight.
Background color The background color of the element in the diagram.