Automatically Adapting Events

Depending on the incoming and outgoing flows, assignments and other factors, it is possible to automatically customize event types. Set the Innovator determines Type property for event nodes for this.

Context Dependency of the Event Type

The event type has a complex context dependency. It is a good idea to set the Innovator determines Type property for event nodes so that the type can be automatically adapted.

The following event types exist:

  • Start event

  • Intermediate catch event

  • Intermediate throw event

  • Boundary event

  • End event

The following factors determine whether the event type is permissible:

  • Number of incoming and outgoing sequence flows

  • Number of incoming and outgoing message flows

  • Data input or output assignment

  • Number and type of event definitions assigned

  • Assignment of an event to an activity

  • is interrupting event property

  • is parallel multiple event property

  • Is Triggered by Event subprocess property

  • subprocess type subprocess property with the transaction value

Dependency of Event Type on Incoming and Outgoing Edges

The type ...

  • Start event is permissible if

    • The event is completely isolated (newly-created),

    • The event does not have an activity assignment,

    • No message flows are going out of the event and

    • No sequence flows are coming into the event

  • End event is permissible if

    • The event is completely isolated (newly-created),

    • The event does not have an activity assignment,

    • No message flows are coming into the event and

    • No sequence flows are going out of the event

  • Intermediate catch event is permissible if

    • The event does not have an activity assignment and

    • No message flows are going out of the event

    Note

    Sequence flows are not taken into consideration for this type as you can fulfill the condition for intermediate events (at least one incoming and outgoing sequence flow) at a later stage when completing the sequence flow.

  • Intermediate throw event is permissible if

    • The event does not have an activity assignment and

    • No message flows are coming into the event

    Note

    Sequence flows are not taken into consideration for this type as you can fulfill the condition for intermediate events (at least one incoming and outgoing sequence flow) at a later stage when completing the sequence flow.

  • Boundary event is permissible if

    • The event does not have an activity assignment,

    • No message flows are going out of the event and

    • No sequence flows are coming into the event

Dependency of Event Type of Assigned Data Inputs or Outputs

Catching and throwing events are differentiated between. Start, intermediate catch and boundary events belong to the first group. Intermediate throw and end events belong to the second group.

Data input or output assignment sets an event for one of the types named.

  • Data outputs are only permissible for catching events.

  • Data inputs are only permissible for throwing events.

Note

A data input is created for the event when a data association which flows into an event is created. Vice versa, a data output is created for an outgoing data association. A data association's direction sets the event to catching or throwing.

Dependency of Event Type of Assigned Event Definitions

The type…

  • Start event is permissible at the top level if one or more event definitions are assigned with the following types:

    • None

    • Message

    • Timer

    • Constraint

    • Signal

  • Start event for an event in a subprocess without the is triggered by an event property is permissible if no or only one event definition with the following type is assigned:

    • None

  • Start event for an interrupting event in a subprocess with the is triggered by an eventproperty is permissible if one or multiple event definitions with the following type are assigned:

    • Message

    • Timer

    • Hazard

    • Escalation

    • Compensation

    • Constraint

    • Signal

    Note

    There must be exactly one start event in an embedded subprocess with the Is Triggered by Event property.

  • Start event for an uninterrupting event in a subprocess with the is triggered by an event property is permissible if one or multiple event definitions with the following type are assigned:

    • Message

    • Timer

    • Escalation

    • Constraint

    • Signal

    Note

    There must be exactly one start event in an embedded subprocess with the Is Triggered by Event property.

  • Intermediate catch event is permissible if one or multiple event definitions are assigned with the following types:

    • None

      Note

      Deviation from BPMN specification! Is only permissible due to usability.

    • Message

    • Timer

    • Constraint

    • Link

    • Signal

  • Boundary event for an interrupting event is permissible if one or multiple event definitions are assigned with the following types:

    • None

      Note

      Deviation from BPMN specification! Is only permissible due to usability.

    • Message

    • Timer

    • Hazard

    • Escalation

    • Failed completion

      Note

      Only permissible if it concerns a boundary event on a subprocess which has the subprocess type = transaction property.

    • Compensation

    • Constraint

    • Signal

  • Boundary event for an uninterrupting event is permissible if one or multiple event definitions are assigned with the following types:

    • None

      Note

      Deviation from BPMN specification! Is only permissible due to usability.

    • Message

    • Timer

    • Escalation

    • Constraint

    • Signal

  • Intermediate throw event for an event which is not a parallel multiple is permissible if one or multiple event definitions are assigned with the following types:

    • None

    • Message

    • Escalation

    • Compensation

    • Link

    • Signal

  • End event for an event which is not a parallel multiple is permissible if one or multiple event definitions are assigned with the following types:

    • None

    • Message

    • Hazard

    • Escalation

    • Cancel

    • Compensation

    • Signal

    • Terminate