A Subprocess hides details of a process and provides an abstraction for the main process. Within the subprocess there must be an initiator (only 1) and a finalizer, and a sequence of tasks and gateways.
A Call activity is the inclusion of another process in the diagrammed flow.
An Ad-hoc subprocess contains tasks that can be performed by the process at any time. These tasks can be joined by a sequence of flows.
A Transactional subprocess defines a set of tasks necessary to bypass an “error” situation in the flow.
A Event Subprocess defines a flow that is generated for a process independent of the current task. It can be of the “interrupt” type, which interrupts the main flow and transfers control to the subprocess; or it can be of the “no-interruption” type, which starts the subprocess without altering the main process flow.