Hi,
If we have a parallel non-interrupting subflow listening on a message, after using Process Instance Modification API, that subflow cannot be invoked by global message using correlation id, it throws an error “No one is listening for the message event…”
Explanation:
I have an exception handler which uses Process Instance Modification API to return the flow to service task where the exception was raised:
execution.processEngineServices.runtimeService
.createProcessInstanceModification(execution.processInstanceId)
.startBeforeActivity(errorTaskId,execution.processInstanceId)
.execute();
In the attached BPMN, flow is like:
- Service Delegate at TASK- 1 raises an exception
- Caught by Subflow “Exception Handler 1”
- Service Delegate “Rollback to original delegate” uses above process instance modification to return the control to TASK-1 delegate
- Now TASK-1 succeeds and it sends a global message with correlation
- This message suppose to invoke “Parallel Process 1” sub process, but it doesn’t work if the control came after process instance modification
This is my BPMN:
ExceptionFlow.bpmn (8.2 KB)