An intermediate event is an event that might occur during the execution of a business process instance and will affect its course.
The semantic of some intermediate events might be two-folded as they can be used to catch or to throw an event. To make the distinction, a filled-in symbol can be used to indicate the sender semantic, while an unfilled one will denote a receiver one.
All types of intermediate catch events are mapped to a state triggered by a signal (see chapter Throw Intermediate Events et seq.), except a timeDate timer which is triggered by a time event (see chapter Intermediate TimeEvents et seq.).

Intermediate Throw events

BPMN shapeBPMN description

The picture shows a Signal Throwing Intermediate Event.

UML representationUML description

Throw events are mapped to states having an entry action that implements the throwing of a signal by calling an operation that sends a signal to self.
For presentation reasons, the depiction of the state is reduced to the shape only.

An overridable <<BPMNOnIntermediateThrowEvent>> operation is created. This operation is used by the handler mentioned above

In contrast to intermediate catch events, in BPMN intermediate throw events on borders are not allowed (see Catch Intermediate Boundary Events).

Intermediate Catch Events

BPMN shapeBPMN description

The picture shows an Intermediate Catch Event without a trigger, but any triggers such as Error, Signal, etc. are mapped the same way.

UML representationUML description

An intermediate catch event is mapped to a state named Wait for <Intermediate Event Name> and is stereotyped with <<BPMNIntermediateCatchEvent>>.
For presentation reasons, the depiction of the state is reduced to the shape only.

A signal event triggers the catch of the intermediate event and invokes a handler where the modeler can implement any handling if needed. The signal name is derived from the event name.

Furthermore, an overridable <<BPMNOnIntermediateCatchEvent>> operation is created. This operation is used by the handler mentioned above.

Catch Intermediate Boundary Events

BPMN shapeBPMN description

Intermediate catch events might be specified on the border of a BPMN element, i.e. to abort a sub-process or a task before it has finished.

UML representationUML description

In this case a state Wait for <Intermediate Event Name> is not necessary; the signal event is generated directly at the UML element that was created from the BPMN element.

The signal event triggers the catch of the intermediate event and invokes a handler activity. The signal name is derived from the event name.

Furthermore, an overridable <<BPMNOnBoundaryEvent>> operation is created. This operation is used by the handler mentioned above.

Intermediate Time Events

A specific time-date or a specific cycle (e.g., every Sunday) can be set that will trigger the event. The mapping of Intermediate Time Events depends, whether it is a time-date, a cyclic or a duration event.

Cyclic Timer Event

BPMN shapeBPMN description

A Cyclic Timer Event is defined by specifying the tagged value timeCycle on a Timer Catching Intermediate Event.
The value does not need to have any syntax as it will only be used as documentation in the target UML.

UML representationUML description

Time events are mapped to <<BPMNIntermediateCatchEvent>> states named Wait for <Intermediate Event Name>.
For presentation reasons, the depiction of the state is reduced to the shape only.

A UML signal event triggers the occurrence of the event and invokes a handler where the modeler can implement any handling if needed.
The signal must be triggered from the outside of the state machine by a timer or event observer class.

An overridable <<BPMNOnIntermediateCatchEvent>> operation is created. This operation is used by the handler mentioned above.


Time-Date Timer Event

BPMN shapeBPMN description

A Time-Date Timer Event is defined by specifying the tagged value timeDate on a Timer Catching Intermediate Event.



The value does not need to have any syntax as it will be just used as documentation in the target UML.

UML representationUML description

Time events are mapped to <<BPMNIntermediateCatchEvent>> states named Wait for <Intermediate Event Name>.
For presentation reasons, the depiction of the state is reduced to the shape only.

In contrast to the cyclic timer, for time date timer an absolute UML time event triggers the end of the waiting time and invokes a handler where the modeler can implement any handling if needed.

Additionally, a UML attribute of type dateTime holding the event time is created. The name of the attribute is derived from the event name. This attribute is used in the event condition in the state diagram and the value has to be set by the modeler (e.g. during process creation).
Furthermore, an overridable <<BPMNOnIntermediateCatchEvent>> operation is created. This operation is used by the handler mentioned above.


Duration Timer Event

BPMN shapeBPMN description

A Duration Timer Event is defined by specifying the tagged value timeDuration on a Timer Catching Intermediate Event.

  • Added in 5.1.8.49

The timeDuration value is used to set the default duration in seconds in the UML model if it is a comma separated list of weeks, days, hours, minutes, and seconds. For example, "1 hour, 10 minutes, 30 seconds" is translated into a UML default value of 4230 seconds. It is also possible to prefix this value with the keyword after. For instance, "after 1 hour, 10 minutes, 30 seconds" evaluates to 4230 seconds as well.


If the timeDuration cannot be translated into seconds, the UML default value is set to the lowest positive integer value - namely 1 second.

UML representationUML description

Time events are mapped to <<BPMNIntermediateCatchEvent>> states named Wait for <Intermediate Event Name>.
For presentation reasons, the depiction of the state is reduced to the shape only.

A UML time event triggers the occurrence of the event and invokes a handler where the modeler can implement any handling if needed.

The persistent state class of the process contains an attribute holding the time duration. The value of this attribute must be set by the modeler, e.g. at process creation.

On this Page:
  • No labels