Skip to main content

Process Editor

The Process Editor is the primary means to create BPMN diagrams. It allows you to visually model them using simple drag-and-drop commands.

User Interface

The Process Editor user interface is roughly divided into four areas:

  • The menu bar on top, just below the navigation bar.

  • The palette on the left side.

  • The canvas in the middle.

  • The attribute bar on the right side.

210 design bpmn editor

Each area is described in detail in the following sections.

The menu bar offers a number of actions, some of them only affecting the currently opened model while others have a more global impact.

210 design bpmn menu bar

GroupIconDescription
Save210 icon saveSaves the currently opened model.
210 icon save allSaves all opened models.
Validate210 icon validateValidates the currently opened model.
Edit210 icon copyCopy the selected element.
210 icon pastePastes the contents of the clipboard.
210 icon cutCuts the currently selected element.
210 icon deleteDeletes the currently selected element.
Protocol210 icon undoUndoes the previous action.
210 icon redoRedoes the most current action.
Zoom210 icon zoom inZooms into the model.
210 icon zoom outZoom out of the model.
210 icon zoom standardResets the zoom level.
210 icon zoom fitSet the zoom level to fit the model.
Layout210 icon alignAligns all selected elements in relation to the first selected element.
210 icon same sizeSets the size of all selected elements to the size of the first selected element.
210 icon auto layoutResets connectors according to their default settings.
210 icon delete dockerAllows to delete dockers from connectors with a left click.
210 icon change positionActivates spacer tool.
Documentation210 icon commentsShows all comments made on elements.
210 icon languageSwitches the language of the model.
Model210 icon data model viewerOpens the Data Model Viewer.
210 icon compare revisionsOpens the Revision Editor, see revisions.
210 icon search attributesSearches for an attribute value within the currently opened model.
Export210 icon exportExports the currently opened model, only possible if the model was saved.
Publish210 icon publishPublish an app, see publishing apps.

Drawing Area

To create your BPMN diagrams, you can use simple drag-and-drop commands. To do so, select an element in the palette on the left side and drag it to the drawing area. The element then becomes part of your model.

If you click anywhere in the drawing area, you can change certain attributes in the attribute panel on the right side. If you click on an element, you can change its attributes. If you click outside of an element (in the "space between"), you can change the attributes of the model itself, for instance the author, the version etc.

If you click on an element, a small popup appears on the top-right side. Here, you gain access to a number of often used elements which are directly linked to the currently selected element.

For instance, when you want to connect two tasks to another one, drag the hover over the Edge Drag symbol and drag it to another task. If you want to create a new User Task connected to the current task, do the same with the User Task symbol.

Revisions

The revision functionality of Flowable Design allows you to compare different versions of a model in a visual way. It also offers a way to revert a model to an earlier version of the model.

To compare revisions of your currently opened model, click the 210 icon compare revisions button where you are presented with the following screen:

210 revision bpmn editor

On either side you find one version/revision of the model. The change revisions for the comparison select the required version in the drop down to the right side of each version’s header pane.

New elements are surrounded by a green border, changed elements by a yellow border and deleted elements by a red border. If you hover over an element where you have changed any attribute value, the changes are displayed. Hovering over a new or a deleted element shows all the attributes of that element.

210 revision bpmn editor attribute

If you wish you to revert to an earlier version of your model, you can do so by pressing the button labeled Revert to this version.

210 revision bpmn editor attribute

Publishing Apps

When you are ready to publish your models, you can press the 210 icon publish button. This action opens a dialog where you can select the app which you wish to publish.

210 publish dialog

Once you press the Publish button, the application is published. Please note that this is independent of the currently opened model. You still have to add all models you wish to deploy with the app in the app editor. More information about this topic can be found in the Publishing Editor section.

What is BPMN?

The Business Process Model and Notation (BPMN) is a standard notation and formal specification of the Object Management Group for representing processes. It can be used to document processes in a concise way similar to a flowchart. BPMN is targeted at participants and other stakeholders in a business process to gain understanding through an easy-to-understand visual representation of steps. It provides a standard, common language for all stakeholders, whether technical or non-technical: business analysts, process participants, managers and technical developers, as well as external teams and consultants. Ideally, it bridges the gap between process intention and implementation by providing sufficient detail and clarity into the sequence of business activities.

In addition, BPMN in its current version was designed with automatic execution in mind. This means that a business process can be stored as a file and can then be used to automatize business processes using a so called BPMN engine such as Flowable.

Purpose of BPMN

BPMN is targeted at participants and other stakeholders in a business process to gain understanding through an easy-to-understand visual representation of the steps.

BPMN improves efficiency to gain competitive advantage.

BPMN Elements

The elements used for BPMN can be grouped into the following four categories:

All elements in BPMN have an ID and a name. While the ID must be unique, the name can be freely chosen. By default, both attributes are determined by the type of the element. The name of an element is its label and serves as a description of what the element does. In the case of activities, it should show what the activity does. The name of an event, on the other hand, should describe which event triggers the event.

It is possible to internationalize the name of elements. To do so, click on the language label above the attribute panel which should look like this: 230 language label en

If you selected more than one language, each label can be translated into the other languages as well. The translation is entered into the "General" section of an element’s attribute.

Processes

The Process editor’s purpose is to model BPMN processes. Just like the elements which make up a process, the process itself has a number of attributes which can be set.

The following table gives an overview of all process attributes.

Process Attributes

GroupAttributeDescription

General

Model Key

The unique identifier of the process.

Name

The name of the process.

Documentation

A description and additional information about the process.

Creation date

The date and time the process was originally created (read-only).

Modification date

The date and time the process model was last modified (read-only).

Security policy

The security policy associated with the process.

Folder path for uploaded content items

The folder path where uploaded content items for this process are uploaded.

Is executable

Determines whether or not the process is executable or not. Non-executable processes serve documentation purposes only and cannot be started.

Assignment

Owner

An owner for instances created for this process definition.

Assignee

An assignee for instances created for this process definition.

Potential starter user

A single user who can potentially start the process.

Potential starter group

A group whose users can potentially start the process.

Participant users

Users that can participate in the process.

Participant groups

Groups of users who can participate in the process.

Watcher users

Users that have watcher access in the process.

Watcher groups

Groups of users who have watcher access in the process.

Details

Category

Category (target namespace) of the process model. This allows for the grouping of models.

History level

How much historical information is stored for the process: None, Instance, Task, Activity, Audit or Full.

Execution listeners

Active execution listeners of the process. This lets you react to the following events:

  • Start: Occurs when the process instance is started.

  • End: Occurs when the process instance is completed.

Data objects

Definition of data objects, a kind of meta information, available in the process.

Event listeners

Event listeners of this process which can react to many different events. See Events for more details.

Signal definitions

Definition of all signals used in this process.

Message definitions

Definition of all messages used in this process.

Eager fetching

Enables eager execution fetching of the process definition.

Initiator

The variable that holds the user that is used as the default user who initiates the process.

Version

The current version of the process.

Author

The author of the process (for documentation purposes).

Visual

Shape label expression

Replaces the label of all activities with the provided expression. For instance, ${id} would display the ID of elements as the label in the model.

Font size

Determines the font size of all labels.

Font weight

Determines whether or not labels are displayed in bold.

Font style

Determines whether or not the labels are displayed in italic.

Font color

Determines the font color of all labels.

Subprocesses

A Sub-Process is a BPMN activity where the details have been completely defined inside a parent process (that’s why it’s often called an embedded Sub-Process).

Sub-Processes have two major use cases:

  • Sub-Processes allow hierarchical modeling. Flowable Design allows Sub-Processes to be collapsed, hiding all the details of the Sub-Process, resulting in a high-level, end-to-end overview of the business process.
  • A Sub-Process creates a new scope for events. Events that are thrown during execution of the Sub-Process can be caught by a boundary event on the boundary of the Sub-Process, creating a scope for that event limited to the Sub-Process.
  • Using a Sub-Process does have some constraints:

  • A Sub-Process can only have one 'none start event', no other start event types are allowed. A Sub-Process must have at least one 'end event'. Please note that the BPMN 2.0 specification allows the omission of the start and end events in a Sub-Process, but the current Flowable implementation does not support this.
  • Sequence flows cannot cross Sub-Process boundaries.
  • Using a "Collapsed subprocess" over a “Call activity”?

    BPMN 2.0 makes a distinction between a regular sub-process, often also called embedded sub-process, and the call activity, which looks very similar. From a conceptual point of view, both will call a sub-process when the process execution arrives at the activity.

    The difference is that the call activity references a process that is external to the process definition, whereas the sub-process is embedded within the original process definition. The main use case for the call activity is to have a reusable process definition that can be called from multiple other process definitions.

    When the process execution arrives at the call activity, a new execution is created that is a sub-execution of the execution that arrived at the call activity. This sub-execution is then used to execute the sub-process, potentially creating parallel child executions, as within a regular process. The super-execution waits until the sub-process has completely ended, and continues with the original process afterwards.

    What is the difference between a "Subprocess" and an "Ad-hoc subprocess"?

    In BPMN, an ad-hoc subprocess is one which has no sequence: the order in which the constituent tasks are performed is unknown or unspecified.

    An ad-hoc sub process by default can execute multiple enabled activities at the same time. This is defined with the ordering attribute in the BPMN XML definition. This means that if you have a Adhoc subprocess with 2 tasks in it, you could execute Task 2, while also having Task 1 active at the same time.

    Activities

    Activities are the elements that actually do something in a process. There are three types of activities:

    • Task: The smallest unit of work in a process, for instance the prompt to fill out a form or a call to an external web service.

    • Call Activity: Executes another, previously defined process which is useful when a model becomes too large or when the same sequence of steps is required in different locations.

    • Sub-process: Allows to model a process within a process which is useful when working with loops, transactions and compensation.

    Tasks

    Tasks are the most common type of activity. In essence, tasks are the elements that do something in a process. There are a number of predefined tasks:

    User Tasks

    User Task

    A User Task is a typical “workflow” Task where a human performer performs the Task with the assistance of a software application and is scheduled through a task list manager of some sort.

    — BPMN 2.0.2 Standard, 10.3.3, User Task

    In Flowable, User Tasks are the primary way to interact with humans within a process. Once the execution reaches such a task, a user is required to fill in a form of some sort.

    Through forms, it is possible to create and update variables which can be used in other tasks or can be used to control the flow of a process.

    Each task can be assigned to one or more people as well as shared with any number of groups. In addition, a task can optionally have a due date.

    Example

    The following example shows how a process where a user is required to fill a form. The information gathered is used to create an invoice.

    User Task

    A simple corresponding form could look like this:

    User Task

    Attributes

    GroupAttributeDescription

    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.

    Security policy

    The security policy associated with this element.

    Documentation

    A description and additional information about this element.

    Assignment

    Owner

    The Owner attribute describes who owns the task. The owner can have specific task permissions defined in the security policy.

    Assignee

    Defines the assignee of a task. The assignee is the person who is responsible for the completion of a task. By default, the assignee is set to $INITIATOR which is a special variable that is set to the user who started the process. It is possible to set the assignee directly or through an expression. In both cases, the expected value is the User ID of the assignee.

    Candidate users

    Defines a list of users that can become assignee by claiming the task. It is possible to set the candidate users directly or through an expression. In both cases, a list of user IDs is expected.

    Candidate groups

    Defines one or more groups that can become assignee by claiming the task. You can either directly select a group or use an expression. It is possible to set the candidate groups directly or through an expression. In both cases, a list of group IDs is expected.

    Participant users

    The selected users to add as participant identity links to the task.

    Participant groups

    The selected groups to add as participant identity links to the task.

    Watcher users

    The selected users to add as watcher identity links to the task.

    Watcher groups

    The selected groups to add as watcher identity links to the task.

    Details

    Form reference

    The form associated with the User Task. Once a user opens the task, he or she is presented with the referenced form. It is possible to create a new form, reference an existing one or delete the current reference.

    Validate form fields (server-side)

    If the form is submitted and validate form fields expression evaluates to true, form fields are validated on the back send according to the form model restrictions.

    Form properties

    Deprecated: Sets the form properties. Only relevant if you work with a legacy version of Flowable Tasks.

    Task listener

    Sets Task Listeners for this task. This lets you react to the following events:

    • Create: Occurs when the task has been created and all task properties are set.

    • Assignment: Occurs when the task is assigned to somebody. Please note that the Assignment event is fired before the Create event.

    • Complete: Occurs when the task is completed and just before the task is deleted from the runtime data.

    • Delete: Occurs just before the task is going to be deleted or completed.

    Expose as action to object

    Allows you to expose the activation action to objects other than the process, such as a user or conversation.

    Asynchronous

    Sets the User Task as "asynchronous" which introduces a wait state once the execution reaches the task.

    Important

    In most cases, there should not be a reason to use this attribute in a User Task.

    Expose as an action message

    Allows you to expose the activation action as a message to a conversation.

    Folder path for uploaded content items

    The folder path where uploaded content items for this task are uploaded.

    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.

    Priority

    An integer number denoting the priority of the task.

    Due date

    The due date of the task. No due date is the default and there are three different options to set a due date:

    • Relative: Add or subtract a number of days, months or years relative to the current date.

    • Absolute: Set an absolute date.

    • Expressions: Use an expression to dynamically calculate a date.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Case Task

    Case Task

    In Flowable, Case Tasks are used to create new case instances. As soon as the task is activated, a new case instance is created.

    Case tasks are completed once the newly created case is completed unless the Blocking attribute is set to false.

    Attributes

    GroupAttributeDescription

    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

    Case name

    An optional run-time expression for the name of the newly started case instance. If left empty, defaults to the value of the 'Name' attribute.

    Case reference

    The Case model reference referring to the CMMN Case that is to start as this Case task moves to state ACTIVE.

    In same deployment

    Set it to true if the referenced case should be referenced from within the same app deployment. Set it to false to always use the newest case definition.

    In

    An optional input parameter map. Allows passing variables into the newly created case.

    Out

    An optional output parameter map. Allows storing variables of the case back to the parent when the case completes.

    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.

    Fallback to default tenant

    Indicates the case is created with the default tenant if it is not available on the current tenant. This is only relevant if the application is running in a multi-tenant setup.

    Business key

    An expression that resolves to a business key for the child case instance.

    Inherit business key

    Inherit the business key from the parent process.

    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 asynchronously. 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.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Service Task

    Service Task

    A Service Task is a Task that uses some sort of service, which could be a Web service or an automated application.

    — BPMN 2.0.2 Standard, 10.3.3, Service Task

    In Flowable, Service Tasks are used to perform some form of "technical" task. Whenever you want to perform calculations, trigger some action within your application’s back end or integrate with another system, it often involves Service Tasks. Most custom tasks such as the Email task or the HTTP Task are specialized versions of Service Tasks. This is possible thanks to the extensible nature of the BPMN standard which allows us to create our own tasks based on an existing type. For more information on creating a custom service task see Implement a Custom Service Task.

    It is possible to configure Service Tasks in four ways:

    • Use a Value Expression.

    • Specifying a class that implements JavaDelegate or ActivityBehavior.

    • Evaluating an expression that resolves to a delegation object.

    • Invoking a method expression.

    In many cases you want to store the result of an operation carried out by a Service Task in a variable. The resulting variable name is specified in the Result variable attribute.

    Example

    The following example shows a very simple process where a user enters some information about a client. The following service task then takes that information and creates a new client in the company’s operational systems.

    Service Task

    Attributes

    GroupAttributeDescription

    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

    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.

    Expression

    An expression which is resolved once the task is executed. The expression can either be a value expression such as ${firstName} or it can resolve a named object (e.g., a Spring Bean) and interact with it. For instance, in the above example, a possible expression could be${clientService.createNewClient(firstName, lastName, email)}.

    Delegate expression

    An expression which resolved to a named object (e.g., a Spring Bean) which either implements the class JavaDelegate or ActivityBehavior.

    Result variable

    The name of the variable in which the result of the Service Task’s execution is stored. If no result variable is indicated, the result is discarded.

    Use local scope

    Indicates whether to store the result variable as a local variable.

    Class

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

    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 asynchronously. 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.

    Class Fields

    Class fields make it possible to inject field values into your delegated class. You can either inject a fixed string value or an expression. See the section 'Field Injection' of the Flowable documentation for more information.

    Triggerable

    Sets the Service Tasks to be triggerable. This makes it possible that an external trigger determines when to continue the execution of the process once the Service Task was executed. For instance, in the above example, such an external trigger could be the activation of the new client.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Script Task

    Script Task

    A Script Task is executed by a business process engine. The modeler or implementer defines a script in a language that the engine can interpret. When the Task is ready to start, the engine will execute the script. When the script is completed, the Task will also be completed.

    — BPMN 2.0.2 Standard, 10.3.3, Script Task

    In Flowable, Script Tasks are used to execute scripts in a JSR-223 compatible scripting language, for instance JavaScript or Groovy.

    Scripts Tasks are mainly used to perform simple calculations or operations. For more complex use cases, you should consider writing a Java Service and calling it via a Service Task.

    Example

    In the following example, a user is prompted to enter the first and last name. A script generates an email address and stores it in the variable "email":

    Script Task

    The following script shows a very simple example script that could be used to achieve this task:

    var firstName = execution.getVariable("firstName").toLowerCase();
    var lastName = execution.getVariable("lastName").toLowerCase();
    var email = firstName + "." + lastName + "@yourCompany.com";
    execution.setVariable("email", email);

    Attributes

    GroupAttributeDescription

    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

    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 asynchronously. 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.

    Auto store variables

    Automatically stores any variable defined in the script on the execution. Please note that some languages such as JavaScript do not support this feature.

    Script

    Script that is executed when the task is executed.

    Script format

    Defines the script format. The script format must be provided if a script is provided. By default, Groovy and JavaScript are provided.

    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.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    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

    GroupAttributeDescription

    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.

    Tip

    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 asynchronously. 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.

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Receive Task

    Receive Task

    A Receive Task is a simple Task that is designed to wait for a Message to arrive from an external Participant (relative to the Process). Once the Message has been received, the Task is completed.

    — BPMN 2.0.2 Standard, 10.3.3, Receive Task

    In Flowable, Receive Tasks are used if you want to stop the execution flow until an external source sends a trigger to continue.

    This can be useful if an external system needs a long time to process data and you want to wait until the processing is done.

    A similar result can be achieved if the flag Triggerable in a Service Task is activated.

    Example

    The following example shows a process where a user enters the name and address of a client. The information is then sent to an ERP system. Since the communication between the Java back end of our application and the external system is asynchronously, we do not know when the processing is done. For that reason, the ERP system has to acknowledge that the client was created, for instance by calling a REST endpoint defined in the application which triggers the continuation of the process.

    Receive Task

    Attributes

    GroupAttributeDescription

    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

    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 asynchronously. 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.

    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.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Manual Task

    Manual Task

    A Manual Task is a Task that is expected to be performed without the aid of any business process execution engine or any application. An example of this could be a telephone technician installing a telephone at a customer location.

    — BPMN 2.0.2 Standard, 10.3.3, Manual Task

    In Flowable, Manual Tasks have no execution semantics. They are usually used for documentation purposes only. However, it is possible to place execution listeners on them as with any other activity.

    Example

    The following example shows how a Manual Task which is non-executable (Collect Cash) is used to clarify a model.

    Manual Task

    Attributes

    GroupAttributeDescription

    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

    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 asynchronously. 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.

    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.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Email Task

    Email Task

    In Flowable, Email Tasks are used to send out emails. Flowable does not come with a mail server, so it is necessary to set up an email server via configuration.

    Attributes

    GroupAttributeDescription

    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

    Email properties

    Allows you to set all properties of this email task:

    • Subject: The subject of the email.

    • From: The sender email address. If not provided, the default configured "from address" is used.

    • To: The recipients of the email. Multiple recipients can be defined in a comma-separated list.

    • Cc: The CC (Carbon Copy) recipients of the email. Multiple recipients can be defined in a comma-separated list.

    • Bcc: The BCC (Blind Carbon Copy) recipients of the email. Multiple recipients can be defined in a comma-separated list.

    • HTML: Content of the email in the HTML format. This allows for the creation of rich formatting and the usage of images.

    • Text: Text of the email in clear text. If HTML is not supported on the receiver’s end, the text version of the email is displayed.

    • Charset: Character set to be used in the email.

    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 asynchronously. 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.

    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.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Camel Task

    Camel Task

    The Camel task allows you to send messages to and receive messages from Apache Camel, and thereby enhances the integration features of Flowable. Please note that you must include the Flowable Camel module in your project to use the Camel task functionality.

    Attributes

    GroupAttributeDescription

    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

    Camel context

    Camel context used for camel task definition.

    Camel behavior class

    Class to override the default Camel behavior class.

    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 asynchronously. 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.

    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.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Shell Task

    Shell Task

    The Shell task allows you to run shell scripts and commands.

    Attributes

    GroupAttributeDescription

    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

    Command

    Shell command to execute.

    Arguments

    Arguments to be passed to the shell command.

    Directory

    Default directory of shell process.

    Output variable

    Name of variable to contain the output.

    Clean environment

    Indicates whether the shell process inherits the current environment.

    Wait

    Wait, if necessary, until the shell process has terminated.

    Redirect error

    Indicates whether the standard error is combined with the standard output.

    Error code variable

    Name of variable to contain the output.

    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 asynchronously. 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.

    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.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    HTTP Task

    HTTP Task

    The HTTP Task allows to submit and store the result of a HTTP call.

    Attributes

    GroupAttributeDescription

    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

    Request method

    Request method to be used in the HTTP call: GET, POST, PUT or DELETE.

    Request headers

    Line-separated HTTP request headers.

    Request URL

    Request URL of the HTTP call. Can contain expressions, e.g., http://your-system.example.com/your-endpoint/${someVariable}.

    Request body

    Request body to be sent, e.g., a JSON file. You can use expressions, e.g., {'clientId': ${clientId}, 'name': ${name}}.

    Request body encoding

    Encoding of the request body.

    Request timeout

    Request timeout in milliseconds.

    Disallow redirects

    Determines whether HTTP redirects can be redirected.

    Fail status codes

    List of Http response status codes to fail the request and throw a FlowableException. Code ranges can be set with a wildcard X: Examples: 400, 404, 5XX.

    Handle status codes

    List of status codes for which the task throws BpmnError which can be caught by a boundary error event. Code ranges can be set with a wildcard X: Examples: 400, 404, 5XX. Status codes in handleStatusCodes override those in failStatusCodes when they are both set.

    Ignore exception

    Determines whether exceptions are ignored and stored in the variable indicated in the response variable.

    Response variable name

    The variable name in which the HTTP response is stored.

    Save request variables

    Determines whether all request variables are stored. By default, only response related variables are stored as variables.

    Save response details

    Determines whether response variables including HTTP status, headers etc. are stored. By default, only the response body is stored as a variable.

    Result variable prefix

    A prefix that is put in front of the variable name of the result variables for easier grouping. The following variables are affected: responseProtocol, responseReason, responseStatusCode, responseHeaders, responseBody, errorMessage.

    Save response as JSON

    Determines whether the response variable is stored as a JSON variable instead of a String.

    Save response as a transient variable

    Determines whether the response variables should be stored as transient.

    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 asynchronously. 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.

    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.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Mule Task

    Mule Task

    The Mule task allows you to send messages to and receive messages from a Mule ESB, and thereby enhances the integration features of Flowable.

    Attributes

    GroupAttributeDescription

    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

    Result variable

    The name of the variable which contains the result of the invocation.

    Endpoint URL

    End point URL for mule server configuration.

    Payload expression

    An expression that is the message’s payload.

    Language

    The language you want to use to evaluate the payload expression field.

    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 asynchronously. 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.

    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.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Decision Task

    Decision Task

    Decision Tasks are used to execute Business Rules encoded in DMN tables. You only have to indicate a Decision Table Reference; the mapping of the variable is configured in the Decision Table. See Decision Table Editor for details on creating a Decision Table.

    Each input in the Decision Table is mapped to a variable which must be available in the process. The same is true for the output columns which do not necessarily have to exist.

    Once the task is executed, the inputs are checked according to the Hit Policy defined in the table. If at least one rule matches, the values of the output columns are stored in the variables indicated in the table.

    Example

    In the following example, a Decision Task is used to determine the credit rating of a potential client.

    Decision Task

    Attributes

    GroupAttributeDescription

    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

    Decision table reference

    Reference to the DMN table to be executed.

    Throw error if no rules were hit

    Determines whether an error should be thrown if no rules of the decision table were hit and consequently no result was found.

    Fallback to default tenant

    Indicates that the Decision task is created with the default tenant if it is not available on the current tenant. This is only relevant if the application is running in a multi-tenant setup.

    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 asynchronously. 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.

    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.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Initialize Variables

    This is a service task for initializing variables in the process or case context. Expressions are used to define the target work item to set a variable for, or to set the variable value.

    Initialize Variable Task

    Attributes

    GroupAttributeDescription

    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

    Triggerable

    Sets the service task to be triggerable. That means that the task is executed but only moves forward in the flow once a certain trigger is executed. This is, for instance, useful when working with long-running operations that rely on an outside source to complete. Triggerable tasks must be a delegate implementing the TriggerableActivityBehavior interface.

    Class fields

    Class fields make it possible to inject field values into your delegated class. You can either inject a fixed string value or an expression. See the section 'Field Injection' of the Flowable documentation for more information.

    Init variables

    Specify all variables to be set using this service task. Specify the target object for each of the variables (even with an expression), specify the name of the variable to set and finally the variable value itself to be set (can also be an expression).

    Overwrite if existing

    If set to true, variables that exist are overwritten, if set to false, only non-existent variable values are set, and existing ones are not changed.

    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 asynchronously. 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.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Generate Document

    Generate a document based on a Word template.

    Generate Document Task

    Attributes

    GroupAttributeDescription

    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

    Template key

    The key referencing the key of the template in the template engine.

    Document name

    The human-readable name of the generated document.

    Document type

    The type of the generated document: either a word or `pdf document.

    Output variable

    The variable name that stores a reference to the generated document (as a content item in the content engine).

    Context object

    The name of the context variable in template expressions such as <<[context.value("${name}")]>>. By default, 'context'.

    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 asynchronously. 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.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Merge Documents

    The Merge Documents task merges multiple PDF documents into one PDF document.

    Merge Documents Task

    Attributes

    GroupAttributeDescription
    GeneralIDThe unique identifier of the element within the process model.
    NameThe name of the element. This is the name displayed in the diagram.
    DocumentationA description and additional information about this element.
    DetailsInput PDF documentsContent Items which need to be merged together.
    Merged document nameThe human-readable name of the created PDF document.
    Output variableThe variable name that stores a reference to the generated document (as a content item in the content engine).
    Store output variable transientlyFlag that marks that the result of the expression will not be persisted at the end of the database transaction. Use this if you do not want to store a result after the next wait state, e.g. if you only need access to the result in the next service task.
    Execution listenersActive 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 asynchronously. 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.| | | Skip expression |Defines an expression which is evaluated before executing the task. If it evaluates to true, the task is skipped.

    Important 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.|

    Service Registry Task

    Service Registry Task

    The Service Registry Task is a service task using a service definition defined in the service registry engine.

    See the Service Registry Modeler Guide for a complete discussion of this task.

    Attributes

    GroupAttributeDescription

    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

    Service model

    The name of the service model to use from the service registry.

    Service operation

    The operation to invoked on the selected service model.

    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 asynchronously. 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.

    Save output variables as transient variable

    Stores all variables created by invoking this service task as transient.

    Output variable name

    Store the result of the service invocation in a variable with this name. No output parameters are applied.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Audit Task

    Audit Task

    The Audit Task enables adding log information to the system audit log.

    See Adding Additional Auditing Information for more information on this task.

    Attributes

    GroupAttributeDescription

    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

    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 asynchronously. 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.

    Payload

    The content of the audit log.

    Creator Id

    The identifier of the creator of the audit. It defaults to the currently logged in user.

    External Id

    An identifier of an external object included in the audit log.

    Type

    The audit log type.

    Sub type

    The audit log sub type.

    Scope Id

    A reference to an optional scope instance for which the audit instance was created. If all of the scope attributes are empty, the current scope is used.

    Sub scope Id

    A reference to an optional sub scope instance for which the audit instance was created. If all of the scope attributes are empty, the current sub scope is used.

    Scope type

    The optional scope type for which the audit instance was created. If all of the scope attributes are empty, the current scope type is used.

    Scope definition ID

    The scope instance definition for which the audit instance was created. If all of the scope attributes are empty, the current scope definition ID is used.

    Skip expression

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

    Important

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Housekeeping Task

    Housekeeping Task

    The Housekeeping Task is a service task that can be used to perform Housekeeping runs.

    See the Housekeeping How-To for a complete discussion of this task.

    Generate Sequence Task

    Generate Sequence Task

    The "Generate Sequence Task" is a service task that can be used to generate sequence values.

    See the Business Sequence Generation How-To for a complete discussion of this task.

    Call Activity

    Call Activity

    A Call Activity identifies a point in the Process where a global Process or a Global Task is used. The Call Activity acts as a 'wrapper' for the invocation of a global Process or Global Task within the execution. The activation of a call Activity results in the transfer of control to the called global Process or Global Task.

    — BPMN 2.0.2 Standard, 10.3.6, Call Activity

    BPMN 2.0 makes a distinction between a regular sub-process, often also called embedded sub-process, and the call activity, which looks very similar. From a conceptual point of view, both call a sub-process when the process execution arrives at the activity.

    The difference is that the call activity references a process that is external to the process definition, whereas the sub-process is embedded within the original process definition. The main use case for the call activity is to have a reusable process definition that can be called from multiple other process definitions.

    Attributes

    GroupAttributeDescription

    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

    In same deployment

    Set it to true if the referenced process should be referenced from within the same app deployment. Set it to false to always use the newest process definition.

    Subprocess ref.

    Reference of an existing process that is started globally when executing the activity.

    Instance name

    Name of the newly created process instance.

    In

    An optional input parameter map. Allows the mapping of parameters and variables which are then available in the newly created process.

    Out

    An optional output parameter map. Allows the mapping of parameters and variables onto the original Case Work Item as the Human task’s Work Item completes.

    Inherit variables

    Inherit parent process variables in the newly created process.

    Business key

    Business key of the newly created process instance. Can be an expression.

    Inherit business key

    Inherit the business key from the parent process.

    Use local scope

    Use local variable scope for out parameters.

    Complete asynchronously

    Executes the completion of the call activity in an exclusive asynchronous job. This is for example useful in combination with parallel multi-instance.

    Fallback to default tenant

    Indicates that the process instance is created with the default tenant if it is not available on the current tenant. if the application is running in a multi-tenant setup.

    Is transaction

    A BPMN transaction is a set of activities that logically belongs together. Transactions can be cancelled through the Cancel End Event and handled through the Cancel Intermediate Boundary Event.

    Data objects

    Defines the Data Objects of the process or subprocess. Each data object is initialized as a process variable under the defined name.

    Transaction method

    The technique that is used to undo a transaction that has been canceled.

    Subprocess type

    Subprocess type is an attribute that defines whether the sub-process details are embedded within the higher level process or refers (Reference) to another, re-usable process. The default is Embedded.

    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 asynchronously. 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.

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Sub-Process

    Subprocess

    A Sub-Process is an Activity whose internal details have been modeled using Activities, Gateways, Events, and Sequence Flows. A Sub-Process is a graphical object within a Process, but it also can be “opened up” to show a lower-level Process. Sub-Processes define a contextual scope that can be used for attribute visibility, transactional scope, for the handling of exceptions, of Events, or for compensation.

    — BPMN 2.0.2 Standard, 10.3.5, Sub-Processes

    A Sub-Process is an activity that contains other activities, gateways, events, and so on, which in itself forms a process that is part of the bigger process. A Sub-Process is completely defined inside a parent process (that is why it is often called an embedded Sub-Process).

    Sub-Processes have two major use cases:

    • Sub-Processes allow hierarchical modeling. Many modeling tools allow Sub-Processes to be collapsed, hiding all the details of the Sub-Process, resulting in a high-level, end-to-end overview of the business process.

    • A Sub-Process creates a new scope for events. Events that are thrown during execution of the Sub-Process can be caught by a boundary event on the boundary of the Sub-Process, creating a scope for that event limited to the Sub-Process.

    Using a Sub-Process does impose some constraints:

    A Sub-Process can only have one none start event; no other start event types are allowed. A Sub-Process must at least have one end event. Note that the BPMN 2.0 specification allows the omission of the start and end events in a Sub-Process, but the current Flowable implementation does not support this.

    Sequence flows cannot cross Sub-Process boundaries.

    Attributes (expanded Sub-process)

    GroupAttributeDescription

    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

    Data objects

    Defines the Data Objects of the process or subprocess. Each data object is initialized as a process variable under the defined name.

    Is transaction

    A BPMN transaction is a set of activities that logically belongs together. Transactions can be cancelled through the Cancel End Event and handled through the Cancel Intermediate Boundary Event.

    Transaction method

    The technique that is used to undo a transaction that has been canceled.

    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 asynchronously. 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.

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Attributes (collapsed Sub-process)

    GroupAttributeDescription

    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

    Is call activity

    A call activity is a wrapper for a globally defined Sub-Process that is reused in the current process.

    Subprocess type

    Subprocess type is an attribute that defines whether the sub-process details are embedded within the higher level process or refers to another, re-usable process. The default is Embedded.

    Data objects

    Defines the Data Objects of the process or subprocess. Each data object is initialized as a process variable under the defined name.

    Is transaction

    A BPMN transaction is a set of activities that logically belongs together. Transactions can be cancelled through the Cancel End Event and handled through the Cancel Intermediate Boundary Event.

    Transaction method

    The technique that is used to undo a transaction that has been canceled.

    Subprocess ref.

    Reference of an existing process that is started globally when executing the activity.

    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 asynchronously. 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.

    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 forUser Tasks).

    • MI sequential (activities are created sequentially. This is a good practice forService 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.

    Gateways

    Gateways are used to control how the Process flows (how Tokens flow) through Sequence Flows as they converge and diverge within a Process. If the flow does not need to be controlled, then a Gateway is not needed. The term “gateway” implies that there is a gating mechanism that either allows or disallows passage through the Gateway; that is, as tokens arrive at a Gateway, they can be merged together on input and/or split apart on output as the Gateway mechanisms are invoked.

    — BPMN 2.0.2 Standard, 10.6, Gateways

    Gateways

    Gateways are used to control the flow of a process. While the standard also allows branching without the use of gateways, using gateways greatly improves the understandability of a process model.

    In Flowable, the following gateway types are supported:

    Exclusive Gateway

    Exclusive Gateway

    A diverging Exclusive Gateway (Decision) is used to create alternative paths within a Process flow. This is basically the "diversion point in the road" for a Process. For a given instance of the Process, only one of the paths can be taken.

    — BPMN 2.0.2 Standard, 10.6.2, Exclusive Gateway

    Exclusive gateways are one of the most common sights within a process model. They are used to model decisions within a process.

    To decide which route the process follows, the conditions on the outgoing Sequence Flows are checked. The conditions are modeled as an expression and must always evaluate to a boolean value of true or false. It is important to understand that the conditions of an exclusive gateway are not modeled on the gateway itself but rather on the outgoing sequence flows.

    If more than one condition evaluates to true, the path that was defined first is chosen. This should obviously never happen. If no condition evaluates to true, the process is stuck.

    There is the possibility to mark a Sequence Flow as Default Flow. If you do so, the flow follows this route if no condition matches.

    Example

    The following example shows how an Exclusive gateway is used to model a simple decision.

    Exclusive gateway

    Attributes

    GroupAttributeDescription

    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.

    Security policy

    The security policy associated with this element.

    Documentation

    A description and additional information about this element.

    Details

    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 asynchronously. 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.

    Flow order

    The order in which the outgoing flows are evaluated and stored in the XML representation of the process. The order of the outgoing flows is managed by clicking on the btn:[up] and btn:[down] arrows icon.

    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.

    Inclusive Gateway

    Inclusive Gateway

    A diverging Inclusive Gateway (Inclusive Decision) can be used to create alternative but also parallel paths within a Process flow. Unlike the Exclusive Gateway, all condition Expressions are evaluated. The true evaluation of one condition Expression does not exclude the evaluation of other condition Expressions. All Sequence Flows with a true evaluation will be traversed by a token. Since each path is considered to be independent, all combinations of the paths MAY be taken, from zero to all. However, it should be designed so that at least one path is taken.

    — BPMN 2.0.2 Standard, 10.6.3, Inclusive Gateway

    Inclusive gateways are used to model decisions where one or more paths can be taken.

    To decide which route(s) the process follows, the conditions on the outgoing Sequence Flows are checked. The condition is modeled as an expression and must always evaluate to a boolean value of true or false. It is important to understand that the conditions of an inclusive gateway are not modeled on the gateway itself but rather on the outgoing sequence flows.

    Every time a condition evaluates to true or if a Sequence Flow has no condition, the process branches at that position. If no condition evaluates to true or if there is no Sequence Flow without a condition, the process is stuck.

    To join inclusive branches, use another inclusive gateway. The execution only continues once all paths have been completed.

    Example

    The following example shows how an Inclusive gateway is used to model a simple decision where more than one path can be true.

    Inclusive gateway

    Parallel Gateway

    Parallel Gateway

    A Parallel Gateway is used to synchronize (combine) parallel flows and to create parallel flows. A Parallel Gateway creates parallel paths without checking any conditions; each outgoing Sequence Flow receives a token upon execution of this Gateway. For incoming flows, the Parallel Gateway will wait for all incoming flows before triggering the flow through its outgoing Sequence Flows.

    — BPMN 2.0.2 Standard, 10.6.4, Parallel Gateway

    Parallel gateways are used to model situations where more than one path is executed in parallel. These gateways do not have any conditions since all paths are always executed. To join parallel branches, use another parallel gateway. The execution only continues once all paths have been completed.

    Example

    In the following example, the process immediately starts with a parallel gateway which triggers the execution of all three tasks. Once all of them are completed, the process is completed.

    ELEMENT NAME

    Attributes

    GroupAttributeDescription

    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.

    Security policy

    The security policy associated with this element.

    Documentation

    A description and additional information about this element.

    Details

    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 asynchronously. 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.

    Flow order

    The order in which the outgoing flows are evaluated and stored in the XML representation of the process. The order of the flows is managed by clicking on the btn:[up] and btn:[down] arrows icon.

    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.

    Event Based Gateway

    Event Based Gateway

    The Event-Based Gateway represents a branching point in the Process where the alternative paths that follow the Gateway are based on Events that occur, rather than the evaluation of Expressions using Process data (as with an Exclusive or Inclusive Gateway). A specific Event, usually the receipt of a Message, determines the path that will be taken. Basically, the decision is made by another Participant, based on data that is not visible to Process, thus, requiring the use of the Event-Based Gateway.

    — BPMN 2.0.2 Standard, 10.6.6, Event-Based Gateway

    In Flowable, Event-Based Gateways are used to model branches which are depending on the occurrence of two or more events. The process execution stops at the gateway and resumes once one of the events connected via Sequence Flow occur.

    Example

    The following example shows a process where an activation code is being sent out. The process then stops and waits until an acknowledgement message arrives or if 5 minutes elapsed.

    ELEMENT NAME

    Events

    An Event is something that "happens" during the course of a Process. These Events affect the flow of the Process and usually have a cause or an impact and in general require or allow for a reaction. The term "event" is general enough to cover many things in a Process. The start of an Activity, the end of an Activity, the change of state of a document, a Message that arrives, etc., all could be considered Events.

    — BPMN 2.0.2 Standard, 10.5, Events

    In Flowable, events are triggers which either start, modify or complete a process. Events are represented as circles containing other symbols based on event type. There are three types of events: Start Events, End Events and Intermediate Events.

    • Start Events indicate where a process starts.

    • End Events indicate where a path of a process ends.

    • Intermediate Events indicate that something happens between start and end of a process.

    For a process model to be executable, it must always contain at least one start event and one end event. Intermediate events can be placed if required. A simple example containing all three types of incoming could be the following process:

    Simple Events Process

    The process starts with a None Start Event followed by two activities. Then, the Intermediate Timer Event waits for an hour. After that, a final activity is being executed and the process ends with a None End Event.

    As you can see, the Start Event can only have an outgoing sequence flow. The intermediate event has both, an incoming and and outgoing sequence flow and the end event only has an incoming sequence flow.

    Additionally, every event is either throwing or catching. A catching event waits for something to happen. A throwing event allows another part of your process (or a new process) to proceed or to start. Every Start Event is a catching event because it waits for something to happen. Every End Event is a throwing event.

    Finally, there are Boundary Events which are attached to tasks, sub-process, or a call activities. They are waiting for an event to happen while that activity is active. If the event occurs, the process execution follows the outgoing sequence of that boundary event. The following process shows how a boundary event could be used:

    Simple Events Process

    The process starts with a User Task, prompting a user to enter some data. Attached to this task, a Boundary Timer Event is starting a count down of one day, once the task has been activated. If the User Task has not been completed after a day, the execution continues to the Mail Task. After the Mail Task, there is an End Event. This does not mean that the process is completed! Instead, the task remains open until the user completes it. If you want to achieve this behavior, you must place an interrupting event.

    Most BPMN Boundary Events can be both, interrupting or non-interrupting. Interrupting means that the activity is completed and the flow continues down the event’s sequence flow. In Flowable, the attribute Cancel activity determines whether or not an event is interrupting. The following example illustrates an example where an interrupting event makes sense:

    Simple Events Process

    This process is triggered by an incoming message. Then, the user has one hour to enter the activation code. If she fails to do so, the code is invalidated and the process is completed. Unlike in the example before, the circle of this event is dotted, indicating that the event is interrupting.

    List of all Supported Event Types in Flowable

    NameStartIntermediate CatchingIntermediate ThrowingBoundaryEnd

    None

    None Start Event

    None Intermediate Throwing Event

    None End Event

    Message

    Message Start Event

    Message Intermediate Catching Event

    Message Boundary Event

    Timer

    Timer Start Event

    Timer Intermediate Catching Event

    Timer Boundary Event

    Error

    Event Start

    Event Throwing

    Event End

    Cancel

    Event Throwing

    Event End

    Compensation

    Event Throwing

    Signal

    Event Start

    Timer

    Event Throwing

    Event Throwing

    Terminate

    Event Throwing

    None Events

    IconNameDescription
    Event Start

    Event Start

    Untyped start event is also called the None Start Event. The Start event is the most common type of event. Processes that start with such an event are created without any pre-conditions. It is common to use this event when a human starts a process through a graphical user interface.

    Event Throwing

    Event Throwing

    This event marks the occurrence of a particular business event. Process execution is not delayed. In combination with execution listeners, this type of event can, for instance, serve as points to capture KPIs or other metrics.

    Event End

    Event End

    The untyped end event typically marks the typical end of a process.

    Message Event

    IconNameDescription
    Message Start Event

    Message Start Event

    A process instance is started on receipt of a message. The reception of messages must occur in the back end.

    Message Catching Boundary Event

    Message Catching Boundary Event

    This event reacts on the arrival of a message.

    Message Intermediate Boundary Event

    Message Intermediate Boundary Event

    This event reacts on the arrival of a message.

    Timer Event

    IconNameDescription
    Timer Start Event

    Timer Start Event

    A process instance is started on cyclic timer events, at points in time, after time spans or after timeouts.

    Timer Catching Boundary Event

    Timer Catching Boundary Event

    Process execution is delayed until a certain point in time is reached or a particular duration is over.

    Timer Intermediate Boundary Event

    Timer Intermediate Boundary Event

    Process execution is delayed until a certain point in time is reached or a particular duration is over.

    Error Event

    IconNameDescription
    Error Start Event

    Error Start Event" />

    Catches named errors. This event is only used inside of a event sub-process.

    Error Intermediate Boundary Event

    Error Intermediate Boundary Event

    Catches a named error, which is thrown by an inner scope (for example, a sub-process). This event must be attached to the boundary of an activity.

    Error Intermediate Boundary Event

    Error End Event

    The process ends in an error state. As a result a named error is thrown.

    Cancel Event

    IconNameDescription
    Cancel Intermediate Boundary Event

    Cancel Intermediate Boundary Event

    Reacts on a transaction, which was canceled inside an inner scope (for example, a sub-process). This event needs to be attached to the boundary of an activity.

    Cancel Intermediate Boundary Event

    Cancel End Event

    Triggers the cancellation of a transaction.

    Compensation Event

    IconNameDescription
    Compensation Intermediate Boundary Event

    Compensation Intermediate Boundary Event

    Compensation handling in case of partially failed operations. This event needs to be attached to the boundary of an activity.

    Signal Event

    IconNameDescription
    Signal Start Event

    Signal Start Event

    A process instance is started based on signalling across different processes. A single thrown signal can be caught multiple times by different catching signal events.

    Signal Catching Boundary Event

    Signal Catching Boundary Event

    Process execution is delayed until a particular signal is received. Signalling can happen across different processes.

    Signal Intermediate Boundary Event

    Signal Intermediate Boundary Event

    Process execution is delayed until a particular signal is received. Signalling can happen across different processes.

    Signal Intermediate Throwing Event

    Signal Intermediate Throwing Event

    The throwing signal event fires a signal. Afterwards it continues the process execution. Signals can be thrown either from the back end or using the Signal throwing intermediate event. One single thrown signal can be caught multiple times by different catching signal events.

    Terminate Event

    IconNameDescription
    Terminate End Event

    Terminate End Event

    Triggers the immediate termination of a process instance. All steps still executing in parallel branches are terminated.

    Connection Objects

    In the following sections, the different ways to connect together BPMN elements are described.

    Sequence Flows

    Sequence Flow

    A Sequence Flow is used to show the order of Flow Elements in a Process or a Choreography. Each Sequence Flow has only one source and only one target. The source and target MUST be from the set of the following Flow Elements: Events (Start, Intermediate, and End), Activities (Task and Sub-Process; for Processes), Choreography Activities (Choreography Task and Sub-Choreography; for Choreographies), and Gateways.

    — BPMN 2.0.2 Standard, 8.4.13, Sequence Flow

    There are a number of ways to connect elements in BPMN. However, by far the most common one within executable business processes is the Sequence Flow.

    A sequence flow is the connector between two elements of a process. After an element is visited during process execution, all outgoing sequence flows are followed. This means that the default nature of BPMN 2.0 is to be parallel: two outgoing sequence flows create two separate, parallel paths of execution.

    A sequence flow can have a condition defined on it. When a BPMN 2.0 activity is left, the default behavior is to evaluate the conditions on the outgoing sequence flow. When a condition evaluates to true, that outgoing sequence flow is selected. When multiple sequence flow are selected that way, multiple executions are generated and the process is continued in a parallel way.

    note

    The above holds for BPMN 2.0 activities (and events), but not for gateways. Gateways handle sequence flow with conditions in specific ways, depending on the gateway type.

    A condition defined on a gateway must be an expression and must always evaluate either to the boolean value true or false.

    All BPMN 2.0 tasks and gateways can have a default sequence flow. This sequence flow is only selected as the outgoing sequence flow for that activity if and only if none of the other sequence flow could be selected. Conditions on a default sequence flow are always ignored.

    Message Flows

    Message Flow

    A Message Flow is used to show the flow of Messages between two Participants that are prepared to send and receive them.

    — BPMN 2.0.2 Standard, 9.4, Message Flow

    Message Flows connect model the information flow between two entities represented as pools. Information between two pools can only be exchanged via message flows. A message flow can be attached to pools, activities or message events. The order of message exchanges can be specified by combining message flows and sequence flows.

    note

    Executable business processes usually do not make use of message flows since they are not considered when executing the process. Using them only serves documentation purposes.

    Association

    Association

    An Association is used to associate information and Artifacts with Flow Objects. Text and graphical non-Flow Objects can be associated with the Flow Objects and Flow. An Association is also used to show the Activity used for compensation.

    — BPMN 2.0.2 Standard, 8.4.1, Association

    Provides a way to connect a Data Objects to any other element in a BPMN diagram. They do not have any impact on the execution of the business process.

    Pools and Lanes

    Processes in BPMN models are often wrapped in a so-called pool which is further divided into lanes. The following sections describe how they can be used by the Flowable process engine.

    Pool

    Pool

    A Pool is the graphical representation of a Participant in a Collaboration. A Participant can be a specific PartnerEntity (e.g., a company) or can be a more general PartnerRole (e.g., a buyer, seller, or manufacturer). A Pool MAY or MAY NOT reference a Process. A Pool is NOT REQUIRED to contain a Process, i.e., it can be a “black box.”

    — BPMN 2.0.2 Standard, 9.3, Pool and Participant

    A process does not necessarily need a pool to be executable. However, it can help to make the model clearer.

    Pool Attributes

    GroupAttributeDescription

    Details

    Is executable

    Determines whether or not the process is executable. There can only ever be one executable business process per process model.

    Process identifier

    Unique identifier of the process definition.

    More

    Is multi instance participant

    Defines the multiplicity of a participant.

    Minimum

    The minimum number of participants that must be involved in the collaboration.

    Maximum

    The maximum number of participants that must be involved in the collaboration.

    Lane

    Lane

    A Lane is a sub-partition within a Process (often within a Pool) and will extend the entire length of the Process level, either vertically or horizontally.

    — BPMN 2.0.2 Standard, 9.3.2, Lanes

    Lanes are a good way to organize responsibilities in a process. Often, a pool defines a process or an organization and the lanes represent departments. BPMN elements such as Tasks, Gateways etc. are then modeled within the pool that most matches that organizational unit. While this has no effect on most tasks, User Tasks can benefit from it.

    Artifacts

    BPMN provides modelers with the capability of showing additional information about a Process that is not directly related to the Sequence Flows or Message Flows of the Process.

    — BPMN 2.0.2 Standard, 8.4.1, Artifacts

    Artifacts provide additional information that modelers add to bring a necessary level of detail to the diagram. Artifacts do not directly add any runtime behavior but serve to make the model clearer.

    Annotation

    Annotations are a mechanism for a modeler to provide additional information for the reader of a BPMN Diagram.

    — BPMN 2.0.2 Standard, 8.4.1, Text Annotations

    236 artifact text annotation

    Data Object

    Data Object elements MUST be contained within Process or SubProcess elements. Data Object elements are visually displayed on a Process diagram. Data Object References are a way to reuse Data Objects in the same diagram. They can specify different states of the same Data Object at different points in a Process.

    — BPMN 2.0.2 Standard, 10.4.1, Data Objects

    Group

    Groups are often used to highlight certain sub clauses of a Diagram without adding additional constraints for performance, as a Sub-Process would. The highlighted (grouped) sub clause of the Diagram can be separated for reporting and analysis purposes. Groups do not affect the flow of the Process.

    — BPMN 2.0.2 Standard, 8.4.1, Groups