Skip to main content

Collapsed Subprocess

Introduction

This page describes a sub-process which is collapsed. That means by default only one task is visible and multiple tasks are hidden behind this task.

info

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.2.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. Flowable 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 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

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.

tip

A process and a collapsed sub-process share the same BPMN file. Therefore, it is required that model ids are unique across process and all sub-processes. To separate the context the call activity can be used.

Properties

:::palette-item com.flowable.design:flowable-core-palette com/flowable/palette/core.process.palette CollapsedSubprocess