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