Can BPMN boundary events on subprocesses communicate in either direction?

  softwareengineering

My old post (which is hidden and will anyway be deleted by me later) seemed to cause confusion, so here is a new – hopefully clearer – question.
Thanks for your feedback @ JimmyJames, Jörg W Mittag, candied_orange.

I added quite some images, hoping with appropriate sizing it clarifies from where I come and where I am heading.

The general setup is quite easy: I model a service ticket process. Specific tasks happen within a distinctive part of the ticket life cycle. I encapsulated these as a subprocess because sending and receiving messages can happen anytime in this life cycle stage between the participants (from both sides).

On our side these messages are triggered from ‘outside’, meaning we do not plan to send them but actors from our organization can contact us and add information that needs to be processed then. For readability everything is boiled down in my diagrams.

Just to start off, these are all legit ways to show some communication crossing pool boundaries as I understand it, so the general setup without a subprocess is clear:
A_1
A_2
A_2
A_2

The general set up is this:
B_1

Having my subprocess I need boundary events.
I do understand that this is not allowed as every boundary event must have an outgoing sequence flow:
B_2

So this might be ok for interrupting events, but for non-interrupting boundary events I guess we would accumulate tokens which we do not want to.
B_3

We exit the subprocess when a specific message to ‘move on’ comes from the other participant (actually a status update):
B_4

Wrapping it up:
Catching a message from the other participant could be processed with an event subprocess.
Another event sub process could “catch” messages from our “realm”.
Thus an event subprocess would catch the boundary event (message from other participant) and another subprocess would catch ‘our’ actor’s message and push it through to another boundary event that catches it and sends it to the other participant.

B_5

Several questions arise:

  1. Does the boundary event better lead to an end instead of (cf. diagram B_3) recursively to the subprocess? Wrt to the token question from above, this way should be correct.
  2. Should I put the handling tasks into the event subprocess or between the (green) boundary event and throwing the message to participant 2?
  3. The light blue part seems quite intuitive. A boundary event triggers the event subprocess in the general subprocess. But is the green one ok, too? The event subprocess catches, processes, and then throws to the boundary which catches and then processes in the direction of participant 2. Meaning: The boundary event is allowed to catch from inside!?
  4. An add on question is: Just how could one send a message from a specific task from within the subprocess to the other participant? I presume the light blue idea is simply incorrect.
    B_6

LEAVE A COMMENT