Intermediate Variable passing with call activity


#1

Hello,

I have a question regarding Call Activity implementation.

It seems that passing variables is only happening during calling and when called process finishes.

Furthermore it happens when called process throws an event that is caught at the boundary at the call activity.

I was wondering if there is any option to initiate another variable passing from the calling process side.

Background: I want to be able to close the called process in a controlled fashion and not just cancel the called activity instance by ending the call activity.

Maybe Call Activity has inherit limitations for a flexible back and forth communication between two process and a collaboration using send and catch event would be needed instead.
Is there any recommendation on that?

Thanks Ingo


#2

Hi @pitu72,

you can use runtimeService.setVariable(processInstanceId, variableName, variableValue); in your called process delegate or listener.

I don’t have the call to evaluate the processInstanceId of the super process at hand, but as it’s saved in the database it should be available in a delegate.

Hope this helps, Ingo


#3

Hi Ingo,

thx for the feedback.
This runtime Servie will do the trick to set the variable.

However I still don’t understand how to retrieve the processInstanceId of the called process
(like shown in Cockpit) from the calling process.

Cheers,
Ingo


#4

You can look up the process instance and filter using the “super process id”


#5

https://docs.camunda.org/javadoc/camunda-bpm-platform/7.10/org/camunda/bpm/engine/runtime/ProcessInstanceQuery.html#superProcessInstanceId-java.lang.String-


#6

Thx Stephen I finally got it.