Search code examples
bpmn

Allowability of Timer start event in an Event Sub-Process


I am unclear as to whether it is permissible in a BPMN 2.0 model for a timer to be the Start Event for an event sub-process, such as in the simplified example below:

model with timer starting an event sub-process

The BPMN 2.0 documentation (version 2.0.1 dated 2013-09-02) on page 174 (section 10.3.5, Event Sub-processes) suggests this is not permissible:

The Start Event of an Event Sub-Process MUST have a defined trigger. The Start Event trigger (EventDefinition) MUST be from the following types: Message, Error, Escalation, Compensation, Conditional, Signal, and Multiple(see page 259 for more details)

On page 241 (section 10.5.2, Start Event), the specification states that a Timer is allowed as a Start Event:

A Start Event can also initiate an inline Event Sub-Process (see page 174). In that case, the same Event types as for boundary Events are allowed (see Table 10.86), namely: Message, Timer, Escalation, Error, Compensation, Conditional, Signal, Multiple, and Parallel.

Which of these sections would apply in the case of the above example?


Solution

  • I'm going to conclude this is almost certainly an error in §10.5.2 of the spec, and that the timer as the start event in an event sub-process is allowed.

    1. Tables 10.86 and 10.93 are both explicit in that the timer can be the trigger for an event sub-process.
    2. The non-interrupting timer start event is only useful in an event sub-process. That symbol would have no use if a timer event were not allowed to trigger an event sub-process.
    3. Section 10.5.6 consistently allows the use of the timer as the start event trigger

    The issue was reported to OMG in 2010 (Issue 15532), although no further action was taken.

    The same principle applies to Parallel Multiple events, which are similarly omitted from the same list in §10.5.2, but permitted in other sections.