-
Feature Request
-
Resolution: Fixed
-
L3 - Default
-
None
-
None
Background: Currently we can only set a "process definition key" in a CallActivity (as String or via Expression). This is too limited as it means that always the latest version of the process definition is used.
AT:
- You can specify the "process definition version" additionally in the CallActivity to "early bind" the process definition (as we had it in jBPM 3 and jBPM 4)
- Specify this in the XML like this:
<callActivity id="callSubProcess"
calledElement="checkCreditProcess"
activiti:calledElementBinding="latest|deployment|version"
activiti:calledElementVersion="17">
<extensionElements>
<activiti:in source="someVariableInMainProcess" target="nameOfVariableInSubProcess" />
<activiti:out source="someVariableInSubProcss" target="nameOfVariableInMainProcess" />
</extensionElements>
</callActivity>
Binding Options:
1) LATEST; always call latest version (current semantics)
2) SAME DEPLOYMENT: if called process definition is part of the same deployment as the calling process definition use version from deployment
3) FIXED: fixed version (in this case a processDefinitionId or a version can be provided)
Big question: How to we specify the version or processDefinitionId in the XML. Currently we use the "calledElement" attribute of BPMN 2.0 for the "processDefinitionKey".
Current:
<callActivity id="callSubProcess" calledElement="checkCreditProcess" >
<extensionElements>
<camunda:in source="someVariableInMainProcess" target="nameOfVariableInSubProcess" />
<camunda:out source="someVariableInSubProcss" target="nameOfVariableInMainProcess" />
</extensionElements>
</callActivity>
Alternativ A: Recognize ID automatically by some magic:
<callActivity id="callSubProcess" calledElement="checkCreditProcess:17:dasda234dasd3" >
<extensionElements>
<camunda:in source="someVariableInMainProcess" target="nameOfVariableInSubProcess" />
<camunda:out source="someVariableInSubProcss" target="nameOfVariableInMainProcess" />
</extensionElements>
</callActivity>
Alternativ B: Some pattern in the calledElement
<callActivity id="callSubProcess" calledElement="key=checkCreditProcess;version=17" >
<extensionElements>
<camunda:in source="someVariableInMainProcess" target="nameOfVariableInSubProcess" />
<camunda:out source="someVariableInSubProcss" target="nameOfVariableInMainProcess" />
</extensionElements>
</callActivity>
Alternativ C: own extension element
<callActivity id="callSubProcess" calledElement="checkCreditProcess" >
<extensionElements>
<camunda:calledElement version="17" />
<camunda:in source="someVariableInMainProcess" target="nameOfVariableInSubProcess" />
<camunda:out source="someVariableInSubProcss" target="nameOfVariableInMainProcess" />
</extensionElements>
</callActivity>
or
<callActivity id="callSubProcess" calledElement="checkCreditProcess" >
<extensionElements>
<camunda:calledElement processDefinitionId="checkCreditProcess:17:dasda234dasd3" />
<camunda:in source="someVariableInMainProcess" target="nameOfVariableInSubProcess" />
<camunda:out source="someVariableInSubProcss" target="nameOfVariableInMainProcess" />
</extensionElements>
</callActivity>
WDYT?