Process Business key for multi instance call activity

Hi guys,

I have a process with a multi instance call activity. I would like to use the element variable of every instance as business key for the concrete call activity instance. Unfortunately i can only pass the business key of the parent process to every call activity instance but this would not fulfill my requirement.
Is there any possibility to set the business key after the call activity instance is started for example in delegate code?
If not what do you think about a jira issue?
In my oppinion it would be a nice feature.

Best regards,

Markus

1 Like

Hi Markus,

it should be possible to use the element variable as business key. Please try something like this:

<callActivity id="callSubProcess" calledElement="simpleSubProcess" >
  <extensionElements>
    <camunda:in businessKey="#{key}" />
  </extensionElements>
  <multiInstanceLoopCharacteristics isSequential="false" 
    camunda:collection="${keys}" camunda:elementVariable="key" >
  </multiInstanceLoopCharacteristics>
</callActivity>

Does this work for you?
What version of camunda do you use?

Greetings,
Philipp

3 Likes

Hi Philipp,

thanks for the quick reply. The solution works very fine for me.

By the way I am using camunda 7.4.0 :wink:

Best regards ,

Markus

Hi community,

I have found this post as I am searching for the exactly same thing as Markus did.
I have read the Delegate Variable Mapping via Reference but I am somehow confused how to implement the solution to the current version of Camunda Modeler 1.11.3. (Camunda 7.8)

Thank you for any help.

M.

Hi @Michal_S,

I think you have to swithc to the xml tabl in camunda modeler and implement it as @Philipp_Ossler described in this thread.

Best regards,

Markus

can i start a sub process with the identifiable business keys.
eg business key of the parent process- ABC1234
business key of the sub process like- ABC1234-1, ABC1234-2 etc.
i tried with this expression - #{execution.processBusinessKey+"-"+execution.loopCounter}
but it gives me error.
i can prepare a collection as well but trying to do it as expression.
any help please?

loopCouter is not a variable within the execution. you need to alll the getVariable method to fetch a specific variable.

1 Like

yeah noticed and also it needed to be separated…
it worked–
#{execution.processBusinessKey}-#{execution.getVariable(“loopCounter”)+1}

2 Likes