Activities

An activity is an action. As such it is typically named Verb-Object. BPMN defines two types of activity, task and subprocess.

Tasks

A task is an atomic activity, meaning it has no subdivisions understood by the process model.

Task Types

BPMN defines a variety of task types, selected by the Change Shape context menu applied to the Task shape.

task type 1
  • User. A User task represents a task performed by a person.

  • Manual. A Manual task also represents a task performed by a person, but one that is not automated by the process. In non-executable process models, a Manual task has no meaning.

  • Service. A Service task is a fully automated task, meaning when the sequence flow arrives the task is executed automatically. In executable models, a Service task invokes a REST service selected from the Operation Library.

  • Script. A Script task is also an automated task. In executable models, a Script task executes a FEEL expression. In non-executable models, a Script task has no meaning.

  • Business Rule. A Business Rule task, also called a Decision task, executes a decision service. In executable models, it executes a DMN decision service in the same workspace as the process model.

  • Call Activity. A Call Activity executes another BPMN process as a reusable subprocess.

  • Case. A Case task executes a CMMN case. Technically this is a Trisotech extension.

  • Send. A Send task sends a message flow and completes immediately. It is the same as a throwing message event.

  • Receive. A Receive task pauses the process and waits for a message flow, then continues. It is the same as a catching message event.

  • None. A None task means the task type is undefined. It may not be used in executable models.

Subprocesses

A subprocess is a compound activity, meaning it is defined as an activity flow from start event to end events. A subprocess is visualized in the diagram in two ways:

  1. Collapsed: Displayed as an opaque rounded rectangle with a [+] marker.

  2. Expanded, Shown as a resizable rounded rectangle enclosing the activity flow.

Process Levels

BPMN supports a hierarchical modeling style, in which the flow represented by a subprocess is drawn in a separate diagram having a child-to-parent relationship with the diagram containing the collapsed subprocess. There is no limit to the number of process levels in a model.

When the expanded subprocess shape is used, the child-level flow is drawn in the same diagram as the parent level.

In either case, when the subprocess starts, the activities in the child level are executed and when they complete, the process continues on the subprocess exit in the parent level.

Event Subprocess

A normal subprocess starts with a None start event, since the "trigger" of the subprocess is the incoming sequence flow, not an event. An event subprocess, however, is a subprocess initiated by an event occurring in the same process level. Like a normal subprocess, an event subprocess may be rendered either collapsed or expanded. The triggering event is indicated by the start event type of the child level, which in the case of a collapsed event subprocess is displayed in the collapsed event subprocess shape.

Repeating Activities

The actions of a task or subprocess may be defined to repeat, as specified in the Attributes context menu of the activity.

loop type 1
  • Standard loop. A circular arrow marker, indicating a Standard loop, means that when the action completes a data condition is tested and the activity either exits or performs tha activity again. The number of iterations is not known when the activity starts, although a maximum count may be set.

  • MI Parallel. A marker with three vertical bars indicates a Multi-Instance Parallel activity, where some data element is a list and the activity is performed once for each item in the list. The repeating instances are performed in parallel, and the activity is complete when all instances are complete.

  • MI Sequential. A marker with three horizontal bars indicates a Multi-Instance Sequential activity. Behavior is the same as MI Parallel except that the instances are performed sequentially.

Ad-Hoc Subprocess

An Ad-Hoc Subprocess is a special type of activity, a subprocess in which completion of the child-level activities is optional. It is specified using the Change Shape context menu on a subprocess:

sub process type 1