1 Reply Latest reply on Feb 21, 2007 6:21 AM by harrylette

    Transient variables between process and subprocess II

    harrylette

      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);
      
       }
      
       }
      
       }
      
      


      Should I open a jira issue? Please give me a hint for a good approach to solve this problem..

      Best regards

      Harry