[Camunda 7] From basic flow to event subprocess

Hi!
So I’ve been modelling some processes that have lots of unexpected events happening all of a sudden. Some will be occurring every time interval, others will be a result of a message and the rest is just an outcome of an error.

It is easy to prepare time-related event subprocesses.

However, I’m struggling with messages and errors:

  • Why is it impossible to jump between tasks like the red arrow?
  • How else can I put a message event on one task, and after sending/receiving it, just go to event subprocess?
  • Is it possible to “code” a pop-out window* asking whether message should be sent and what should be inside this message? So I could select one from two event subprocesses based on content of message.
    *this window should pop-out while using Camunda Run (Tasklist, Cockpit).

The BPMN Specification prohibits sending messages from a process to itself, but I don’t think that’s the issue here.

The Boundary Message is a Receive Message, not a Throw, so you would end up having two things trying to catch the same message.

This MIGHT (absolutely NO promises) work, but I think it still violates the rules.:

1 Like

Hi GotnOGuts,
thanks for your response.

I tried your solution, however it didn’t work like I described. Whole process stops with message end event.
I believe that even if a message could be sent to event subprocess, the whole process would end with the end of event subprocess anyway.

Let me give you another example.


All the buzz is about checking the event subprocess start-point in every moment of processing diagram. If event subprocess start-point is valid (it happens), user needs to go through event subprocess. After finishing it, user will go back to the point in process where he stopped.

You can see that it’s pointless to put a conditional after every task, because this part of diagram would be repeatable.

Any suggestions for that? :slightly_smiling_face:

Hi @flammable,

BPMN has the non-interrupting Message Start Event for this:

grafik

Here you can find further details: Event Subprocess | docs.camunda.org

Hope this helps, Ingo

Hello, Ingo_Richtsmeier
thanks for joining this conversation, your answer is very helpful. Especially the link for docs, because used docs for Camunda 8.0+ only.

However, there is still one piece that I’m missing. Let me show you an example from those docs:


How is the non-interrupting message (“A new guest has announced himself”) triggered? How can I make it happen in Camunda Run (demo version)? What should be the properties of this message, so it worked?

Hi @flammable,

you have to correlate the message with this API: Correlate a Message | docs.camunda.org.

You can find more details here: Message Events | docs.camunda.org

Hope this helps, Ingo

I think this captures your process a little bit more.
I often use “Black Box” Pools, when I want to make clear that we don’t understand the process that is going on with the other party, but we know how some of the communication works.

At any time between the start of the process and “Put in Bed” is completed, the baby can send the message “Crying” and the person responsible for “Baby’s Bedtime” will have new activities to complete. In fact, the Baby can sent “Crying” again while the “Bedtime” actor is still checking the diaper, which will cause them to check it again.