I have a requirement to have one process start upon sucessful completion of another (a chain of dependencies actually). I was reading the 5.1 user guide and the event sample at paragraph 5.8.4 looks like exactly what I want to do. The process can be started directly but it could also be triggered by a message start event. The last statement in that paragraph even states exactly what I want to have happen.
For instance: P1 does its processing, upon successful completion a signalEvent is fired and P2 starts.
P1 has no knowledge of P2 and vice versa, other than possibly passing a parameter or two.
For the life of me I cannot figure out how to have the dependent process start after the first process completes. I've tried a couple of things that seem to provide that affect but am pretty certain they are not what was intended.
One thing I did was define P2 to have a start node and the next node be a message event node. Just before I start P1, I start P2, which hits the event node and pauses, waiting for the expeceted event. This works when P1 calls signalEvent with the type expected, but this is not what is needed as P2 also needs to be able to be started on an adhoc basis.
I'd like to be able to do this with events so other processes could be added with, I hope, no changes to the processes which they are dependant on.
I've browsed the docs and the examples and have not been able to find anything to assist.
I took a closer look at the test cases in the jbpm-bpmn2 src and think I found what I was looking for,
Was able to get it working so I can plug in a process dependency simply by defining a new (or editing an existing) process with a <signalEventDefinition> in the <startEvent> node. The BPMN2 eclipse editor does not currently allow you to add that element directly so I had to edit the XML.
<signalEventDefinition> in the <startEvent> node.
The BPMN2 eclipse editor does not currently allow you to add that element directly so I had to edit the XML.