Element Reference

This section describes the BPMN 2.0 elements that you can use in Jmix BPM and the tasks that Jmix adds: Entity Data, Send Email and Send Notification tasks. For each element, it lists the properties in the Modeler view and explains how the process engine runs the element. In XML, the Jmix tasks are service tasks with a flowable:type attribute, for example, jmix-send-email. The section doesn’t explain the BPMN notation. For the notation, see the BPMN 2.0.2 specification and BPMN 2.0 Constructs in the Flowable documentation.

Supported Elements

Element Description

Process

Process properties: who can start the process, the signal, message, error and escalation definitions that events refer to, and the history level.

Pools, Lanes and Collaborations

Pools and lanes of a diagram, and collaborations of several processes. A lane can assign the user tasks placed on it.

Events

Start, intermediate, boundary and end events. See BPMN Events Coverage for the supported event types.

User Task

A task for a person: assignee and candidates, process form, outcomes, due date and notifications.

Service Task

Calls a Spring bean method, a Java delegate class, an expression or a delegate expression, or creates a job for an external worker.

Script Task

Runs a Groovy script.

Business Rule Task

Evaluates a DMN decision table.

Entity Data Task (Jmix)

Loads, creates or modifies Jmix entities.

Send Email Task (Jmix)

Sends an email through the Email add-on.

Send Notification Task (Jmix)

Sends in-app and email notifications through the Notifications add-on.

Conditions and Gateways

Sequence flows, conditions from an expression, a user task outcome or a business rule task result, and exclusive, parallel, inclusive and event-based gateways.

Subprocesses and Call Activities

Embedded, event and transaction subprocesses, and call activities.

Multi-instance Activities

Runs a task or a subprocess several times, sequentially or in parallel.

Unsupported Elements

The Change type menu of the Modeler view doesn’t offer the send task, receive task, manual task and collapsed subprocess.

Jmix BPM doesn’t support:

  • Complex gateway. The Change type menu of the Modeler view offers it, but the engine doesn’t implement it: a process with a complex gateway deploys without errors, but the gateway doesn’t work as BPMN defines.

  • Loop marker. To run an activity several times, use its multi-instance properties.

  • Some event types. See BPMN Events Coverage and Workarounds for Unsupported Events.

A task without a type, called an abstract task, can be deployed, but the engine ignores it and moves on.

Extension Properties

User tasks, service tasks and script tasks have the Extension properties field. An extension property is a name-value pair that is saved with the element in the process XML.

extension properties

In XML, extension properties are defined by the jmix:property element:

<serviceTask id="service-task" name="Service Task" >
<!--    . . .   -->
<extensionElements>
<!--   . . .    -->
    <jmix:properties>
      <jmix:property name="color" value="red" />
    </jmix:properties>
  </extensionElements>
</serviceTask>