In a business process, sub-processes have several use cases, including:

  • hiding the complexity of a business process
  • and defining a contextual scope that can be used for:
    • data visibility
    • transactional scope
    • the handling of internal and external exceptions of events
    • or for compensation.

BPMN 1

Figure 1: A business process with a sub-process

BPMN 2

Figure 2: Hiding the complexity of a business process

BPMN 3

Figure 3: Contextual scope – data visibility

BPMN 4

Figure 4: Contextual scope – Transactional scope

BPMN 5

Figure 5 Contextual scope – internal exceptions

BPMN 6

Figure 6: Contextual scope – external exceptions

Besides simple sub-processes, BPMN defines three special types of sub-processes: call, event-based, and transactions.

Free BPMN Resources

A call sub-process represents a reusable sub-process. It identifies a point in the process where a global sub-process is used. A call sub-process object must have a thick boundary line.

BPMN 7

Figure 7: Call sub-process

An Event based sub-process is used within a process or sub-process. An Event sub-process is not part of the normal flow of its parent process, which means that it has no incoming or outgoing sequence flows.

BPMN 8

Figure 8: Event sub-process

An event sub-process is started by an event, like a time condition or message received.

BPMN 9

Figure 9: Event sub-process triggered by a timer event

There are two possible consequences to the parent process when an Event sub-process is triggered: Either the parent process can be interrupted, or the parent process can continue its work. This is determined by the type of start event used – interrupting or non-interrupting event.

BPMN 10

Figure 10: Event sub-process stops the main process

BPMN 11

Figure 11: Event sub-process does not stop the main process

An Event sub-process should be drawn with a single thin dotted line.

BPMN 12

Figure 12: Event sub-process visual representation

A Transactional sub-process is a double-lined object, and controlled through a transaction protocol.

BPMN 13

Figure 13: Transactional sub-process

A transactional sub-process can result in three outcomes. Successful completion is modelled with a normal sequence flow that leaves the transaction.

BPMN 14

Figure 14: Successful completion of a transaction

Failed completion is modeled with a sequence flow starting at a cancel intermediate event. This occurs if any of the pre-determined criteria of failure are met or if an ‘Abort’ message is received. In both cases the non-normal flow is executed, meaning none of the tasks in the transaction are completed.

BPMN 15

Figure 15: Cancelling a transaction

Hazard is modelled with a sequence flow starting at an error intermediate event. A hazard means that something went terribly wrong and so a normal success or cancel is not possible. When a hazard occurs, any of the tasks in the transaction end up not being executed or compensated.

BPMN 16

Figure 16: Hazard in a transaction

Free BPMN Downloads!

SHARE
Gregor received his PhD in 2008 in the fields of software engineering and information systems and has nearly a decade of experience in BPMN, starting to investigate and actively use BPMN since its introduction in 2004. In addition, he has participated in the development of one of the first BPMN modeling utilities - a package of plugins for Visio, which were introduced early in 2005 and is the main author of the first BPMN poster (bpmn.itposter.net), which has been translated into several languages and already exceeded 50.000 downloads.
  • Adabik

    Hi, IMHO there is a mistake in this sentence “Failed completion is modeled with a sequence flow starting at a cancel
    intermediate event. This occurs if any of the pre-determined criteria of
    failure are met or if an ‘Abort’ message is received. In both cases the
    non-normal flow is executed, meaning none of the tasks in the
    transaction are completed.” – figure 15
    THE COMPENSATION MODEL occure when process is succeed. See – http://www.mastertheboss.com/jboss-jbpm/bpmn-20/bpmn-tutorial-for-beginners?showall=&start=2