Author Topic: Alternate End Events  (Read 847 times)


  • EA Novice
  • *
  • Posts: 13
  • Karma: +0/-0
    • View Profile
Alternate End Events
« on: April 17, 2014, 07:55:39 pm »

I have a business process diagram (BPMN 2.0) with four activities with a sequence of ADD -> GENERATE -> SEND -> END where ADD can be replaced by UPDATE or DELETE (or indeed DELETE and ADD in parallel).

As GEN-SEND-END is nearly always the same I'm contemplating creating a sub-process (TRANSMIT)to hold all three, then I have three diagrams which capture;
So what I'd like advice on is the alternate end events.
GENERATE and SEND have Error events which should trigger different responses within ADD/DELETE/UPDATE.
So how do I show that TRANSMIT has completed with a GENERATE Error as opposed to a SEND Error?

Thanks in advance,


Jacob Vos

  • EA User
  • **
  • Posts: 90
  • Karma: +0/-0
    • View Profile
Re: Alternate End Events
« Reply #1 on: May 07, 2014, 05:25:24 pm »
Hi Chris,

Find my advice on how to model your situation in BPMN below, first some starting points (alas I cannot add a picture, that would have been easier):

1. There is a (global) process 'Transmit', called from the processes 'Add', 'Delete' and 'Update'.

2. The process 'Transmit' comprises the activities 'Generate', 'Send' and 'End'.

3. At the activities 'Generate' and 'Send' an exception can occur that aborts that activitiy concerned and by that also the 'Transmit' process.

4. At the processes 'Add', 'Delete' and 'Update', when the called 'Transmit' process is aborted, another path is followed than when that process was ended normally.

I modelled in Sparx EA in the following way the error throw-catch mechanism:

A. In the process 'Transmit', at the activity 'Generate' a boundary Error intermediate event with an outgoing sequence flow to a throwing error end event called 'Aborted - generate error'.

B. The same for the 'Send' activity, but named 'Aborted - send error'.

C. In the process 'Add' (and the same should be done for the processes 'Delete' and 'Update') I added two error intermediate boundary events to the call activity 'Transmit' (which calls the process 'Transmit'). One is named 'Aborted - generate error' and the other 'Aborted - send error'. Those are the catching events for the throwing events on the called process level.

D. Each of those catching events has an outgoing sequence flow, namely to an activity 'Act on Generate error' and 'Act on Send error' respectively.

Hope this helps.

- Jacob
« Last Edit: May 07, 2014, 05:47:16 pm by jacobvos »