Call activity calling process with message start events

Hi good people! :slightly_smiling_face:

So I am trying to use a Call activity to call a process which starts with 2 message events. How do I correlate a message using the call activity? If I try to correlate in process 1 then the message isn’t present yet, but I can’t seem to correlate after as the process 2 is never started?

Screenshot 2021-05-07 113503 Screenshot 2021-05-07 113440

I’m currently trying execution listener at the call activity, but maybe I am using it wrong or correlating incorrectly?

Screenshot 2021-05-07 113027

Should I be using something particular for this or how should I solve this?

Edit:
I have tried to set an Execution Listener at the call activity start and then a delegate to correlate a message, but I still get the same error. It seems that the message correlation doesn’t start the process or the process isn’t in the correct state when correlating perhaps?

Error code:
java.lang.NullPointerException: null
at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationProcessStart.isAsync(PvmAtomicOperationProcessStart.java:36) ~[camunda-engine-7.14.0.jar:7.14.0]
at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationProcessStart.isAsync(PvmAtomicOperationProcessStart.java:32) ~[camunda-engine-7.14.0.jar:7.14.0]
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:620) ~[camunda-engine-7.14.0.jar:7.14.0]
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:602) ~[camunda-engine-7.14.0.jar:7.14.0]
at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.start(PvmExecutionImpl.java:287) ~[camunda-engine-7.14.0.jar:7.14.0]
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.start(ExecutionEntity.java:458) ~[camunda-engine-7.14.0.jar:7.14.0]

Hi @Jennie,

Call activity works with none start event only.

To start a process by message use a message intermediate throw event instead. Below post contains an example with implementation set to Expression

But keep in mind that using message intermediate throw event will continue execution of the calling process and won’t wait until the end of the called process as with “Call Activity” so if the need is to wait then a message intermediate catch event should follow the message intermediate throw event in the calling process & a message end event should be used in the called process.

1 Like