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:

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:

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.

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

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.


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.\

I put question #4 into another post (and deleted the respective diagram here) to disentangle some overweight in this question, thanks for the feedback.

  • 2
    Please edit your question to focus on one problem. As it stands, this looks like 4 questions in one post. I'm afraid this will be closed as needing focus. Commented Apr 15 at 19:31
  • Greg, you're right. I added a split up question
    – MaK
    Commented Apr 16 at 6:25


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.