Hey,
we are working with a 3rd Party Software using Flowable as the Workflow Engine.
We are upgrading the product, including the upgrade from activity 5.15 to flowable 6.6.0.
We now have a Problem using our Call Activities they way we used to.
So we have a main Workflow, calling a “callActivity” and passing some variables like this:
<callActivity id="flowable.MyWorkflow" name="flowable.MyWorkflow" calledElement="MyWorkflow">
<extensionElements>
<flowable:in source="test1" target="internalTest1"/>
<flowable:in source="test2" target="internalTest2"/>
</extensionElements>
</callActivity>
The variable “internalTest1” is not used in the parent workflow and does not exist.
The variable “internalTest2” tho, is existant and has a value in the parent workflow.
So if we try to get “internalTest2” in the child process/callActivity by using:
execution.getVariable("internalTest2")
we will get the value of the parent process instead of getting the value it was set to (so speaking in “parent process terms” it should have the value of “test2”)
When reading “internalTest1” tho, we will get the value it was set to during creation of the callActivity
When getting all variables using:
execution.getVariables()
“internalTest2” exists only once and has the value of the parent process.
On the side, the getVariablesLocal() is empty.
This used to work in activity. What are we missunderstanding?
If we change the name of the “in” variable from “internalTest2” to let’s say “myNewlyCompletlyUniqueVariable2” it will work correctly. The problem is, these workflows are calling each other in many complex ways and we can not guarantee that there will be no collisions in other circumstances.
How are we supposed to handle this issue?