Hi,
why is there not the same functionality for transient variables as for persistent ones when copying variables from a superprocess to a subprocess (process state)?
I have seen this thread
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=70407
The proposed solution as seen in jira
http://jira.jboss.com/jira/browse/JBPM-399
is implemented in jbpm 3.1.2 that I am actually using.
I think this solution is simple but does not fit for the most common case, that a superprocess calls
a common suprocess and the subprocess does not know anything about the superprocess.
More specific, there could be different superprocesses with different transient variable names.
These superprocesses may call a general subprocess...
Using the present solution forces the subprocess to know about all possible variablenames of
all possible superprocesses - that's really bad!
What can we do?
Is it difficult to implement similar code for transient variables as you did for persistent ones?
// loop over all the variable accesses Iterator iter = variableAccesses.iterator(); while (iter.hasNext()) { VariableAccess variableAccess = (VariableAccess) iter.next(); // if this variable access is readable if (variableAccess.isReadable()) { // the variable is copied from the super process variable name // to the sub process mapped name String variableName = variableAccess.getVariableName(); Object value = superContextInstance.getVariable(variableName, superProcessToken); String mappedName = variableAccess.getMappedName(); log.debug("copying super process var '"+variableName+"' to sub process var '"+mappedName+"': "+value); if (value!=null) { subContextInstance.setVariable(mappedName, value); } } }
Here is a solution:
http://jira.jboss.com/jira/browse/JBPM-845