AnsweredAssumed Answered

Start a process instance using Signal instead of Message

Question asked by sorinello on May 4, 2013
Latest reply on May 6, 2013 by sorinello
Hello,
I am developing a new feature for our product which involves starting a process instance when something in the system (product) happens. So this is an external trigger from Activiti point of view.

I have read the User Guide, and also found some hints in the forum.

After trying to understand, i have some questions:

I see that there is a MessageStartEvent which allows a process to be started when the Activiti Engine receives a message. I am able to start my process when calling
getProcessEngine().getRuntimeService().startProcessInstanceByMessage('autoStart')


Also querying the Engine to see which process instance is "listening" to that _unique_ message, I get my process returned, so everything if OK until now
getProcessEngine().getRepositoryService().createProcessDefinitionQuery().messageEventSubscription("autoStart").singleResult()


In the documentation is stated that:
The name of the message start event must be unique across all deployed process definitions. Activiti throws an exception upon deployment of a process definition such that one or more message start events reference a message with the same name as a message start event already deployed by a different process definition. 

I want to do the same, but instead using Messages (which have to be unique across all deployments within the engine) I'd like to use Events. One of my usecases would be that I want to start several different processes when the engine receives a message (the same message).

I don't see any start node which listens for an Event, so I am stuck here.
I also see that querying for registered Signals is done using RuntimeService, and for querying listening Messages the RepositoryService is used.

Any hints or clarifications would be very helpful.

Regards,
Sorin B.

Outcomes