How signal throwing and signal catching are supposed to work respectively for end events and start events?

816 views
Skip to first unread message

jai...@gmail.com

unread,
Sep 16, 2014, 10:18:45 AM9/16/14
to camunda-...@googlegroups.com
Greetings,

I've looked for questions about the problem I am facing but I've got no similar questions here. I suppose the solution is trivial but I have no clue how to solve it.

In my scenario I have a process instance that at the end must throw a signal, then process engine should instantiate process from two (or more) process definitions.

I've followed instructions on the docs below - with no success:
https://github.com/camunda/docs.camunda.org/blob/master/site/src/documents/api-references/bpmn20/30-events/60-signal-events.html.md

I've tried to query which process are waiting for the signal, but it returns an empty list (I suppose it only works for process instances and not for process definitions) using the following approach:

List<Execution> executions = runtimeService.createExecutionQuery()
.signalEventSubscriptionName("alert")
.list();

We are using Camunda v7.1.0-Final and developing processes as Maven Projects on Eclipse.

So, how signal throwing and signal catching are supposed to work respectively for end events and start events?

Any help is appreciated.

Regards,
--
Jailson Brito

thorben....@camunda.com

unread,
Sep 17, 2014, 4:47:06 AM9/17/14
to camunda-...@googlegroups.com
Hi Jailson,

You are correct, signal start events are currently not supported by the engine. See also the BPMN implementation reference (link [1]) which highlights the supported event types with orange borders. While we have a feature request for signal start events (see [2]), it is currently not scheduled for an upcoming release.

I doubt there is a clean solution to achieve your desired behavior.

One option is to use message events instead. As a message can only instantiate a single process, this would require an intermediate process definition that is triggered by the end event and sends multiple messages to the process definitions to be instantiated. If you do not want such a process definition, you can also implement this logic in a JavaDelegate and use a service task to instantiate the processes.
This approach is less extensible than using a signal event since you have to explicitly declare the message names of any process to be instantiated. Nevertheless, I do not see a better solution at the moment.

Cheers,
Thorben

[1] http://docs.camunda.org/latest/api-references/bpmn20/#overview-bpmn-20-overview-and-coverage-events
[2] https://app.camunda.com/jira/browse/CAM-1422

Jailson Brito

unread,
Sep 17, 2014, 7:18:44 AM9/17/14
to camunda-...@googlegroups.com
Hi Thorben,

Thanks for your quick response and your helpful explanations and suggestions. Using an intermediate process was my plan B, since I've already managed how to use messages to start events. I will probably use this approach. 

Nevertheless, I vote (and I will prey every night) for the signal start event be scheduled for an upcoming release.

Thank you again.

Sincerely,
--
Jailson Brito


--
You received this message because you are subscribed to the Google Groups "camunda BPM users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to camunda-bpm-us...@googlegroups.com.
To post to this group, send email to camunda-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/camunda-bpm-users/9570b7ef-d7e7-4caa-9503-08664d7c1a19%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages