Signal event pointed to specific executionId


If you look at page 109 of Bruce Silver's second edition of BPMN Method and Style, you will recall that BPMN spec is lacking in that you can't signal to specific instances, but only do a broadcast. Being aware of this, the Activiti people seem to have done a good job to compensate for this by taking the engine ahead of spec and providing means to signal thru API to specific executions:

RuntimeService.signalEventReceived(String signalName, String executionId);

I have a suggestion here: because you have some Activiti-specific extensions to various standard BPMN elements, why not add an Activiti-specific extension to the intermediate throw signal event so that one can use an executionId to direct the thrown signal to a specific execution. One would pass in a process variable the execution id computed at runtime. This way, one can model the signal being thrown to a specific instance directly in the diagram as opposed to throwing it from some service task or another way, which would not be as explicit as in the case when modeled as an intermediate throwing signal event.

The xml fragment associated with signal even would look something like:

<bpmn2:intermediateThrowEvent id="IntermediateThrowSignalEvent_1" name="Reset Assessment Due Date" activiti:executionIdsCsv="eid1, eid2">

and there would be an extra attribute in the Main Config tab of signal event properties as indicated in the attached images

Won't Fix




Cristian Cerb