Activities represent work to be performed by a participant that require time and resources to complete. The three most common activities are tasks, subprocesses, and call activities.
- A task is a fundamental unit of work that cannot be broken down to a more granular level of detail.
- A subprocess, on the other hand, hides complexity: it contains its own activities, gateways, events, and (except in the case of ad hoc subprocesses) a sequence flow. Subprocesses are, by default, embedded within their superordinate, or parent, process. As a consequence, they can only be invoked by the parent process.
- Call activities, however, are global. That is, they can be used in many different processes.
Activity Markers
Markers indicate the execution behavior of activities. These are among the most common:
- A loop activity is repeated until the condition associated with the activity is satisfied. In other words, the number of instances isn’t known in advance.
- When a task or subprocess must repeat a known number of times, a parallel or sequential multi-instance activity is used, indicated by three vertical or horizontal lines.
- In an ad hoc subprocess, activities are executed without a pre-defined sequence. That is, it doesn’t contain a sequence flow.
Activity Types
Activities can be further differentiated by type.
- Abstract (“None” type) activities don’t specify a default behavior.
- The send task sends a message to an external participant.
- The receive task receives a message from an external participant.
- A service task is used when an external service, such as a web service, is called to perform a task.
- A user task is completed with the assistance of information technology.
- A manual task is completed without the assistance of information technology.
- A business rule task is used to model the evaluation of a recurring decision.
- A script task is used when a task is executed locally using a process engine.