Modeling subprocesses
A subprocess represents a collection of logically related steps contained within a parent process. You can view a subprocess as a single activity, providing a simplified, high-level view of the parent process, or you can drill into the subprocess for a more detailed view of its contents.
A subprocess can be embedded within another subprocess. To drill down into a collapsed subprocess and view the contents, double-click the subprocess activity in the parent. To go back to the parent process from within a subprocess or event subprocess, use the navigation in the upper left corner of the diagram. To return to a parent process from a linked process, use the menu above the canvas.
Subprocesses can contain swimlanes that are distinct from the parent process. For example, activities in your subprocess can be carried out by a set of participants that is different from the set of participants that carry out the activities in the parent process.
Like other activities, subprocesses can be configured to run multiple times within the execution of the parent process by configuring looping behavior on the subprocess activity element in the parent process.
The following describes the types of subprocesses that you can model in a process, and their characteristics.
Implementation | Description | Characteristics | Variable scope |
---|---|---|---|
Subprocess | A non-reusable subprocess that exists only within the parent process. | Each subprocess must contain at least one start event with an implementation
type of None. Activity names must be unique with respect to the top-level process activities, and all other subprocesses and event subprocesses under the same top-level process. |
Inherits variables from the parent process and can contain local private
variables visible only within the subprocess. Variable names declared in a subprocess cannot be the same as variable names declared in any of its parent processes. If there are multiple layers of embedding, with subprocesses contained within other subprocesses, variable names must be unique throughout the entire subprocess hierarchy. |
Linked process | A call to another reusable process. | The process called by the linked process activity can contain multiple start events, but must contain at least one start event with an implementation type of None. | Variable data is local to each process, therefore data mapping is required to pass data into and out of the linked process. |
Event subprocess | A specialized type of non-reusable subprocess that is not part of the normal sequence flow of its parent process, and which might occur zero or many times during the execution of the parent process. | Must contain a single start event, which can be one of:
Event subprocess execution can interrupt parent process or can run in parallel. Activity names must be unique with respect to the top-level process activities, and all other subprocesses and event subprocesses under the same top-level process. Boundary events are not supported on an event subprocess. |
Inherits variables from the parent process and can contain local private
variables visible only within the subprocess. Variable names declared in an event subprocess cannot be the same as variable names declared in any of its parent processes. If there are multiple layers of embedding, with event subprocesses contained within other subprocesses, variable names must be unique throughout the entire subprocess hierarchy. |