1 Reply Latest reply on Aug 8, 2008 5:55 AM by fero kocun

    process variables out of session

    fero kocun Newbie

      Hi, I use variables (business objects) in ActionHandler

      public class Task_ABC implements ActionHandler{

      public void execute(ExecutionContext executionContext) throws Exception {
      ContextInstance c = executionContext.getProcessInstance().getContextInstance();

      Abc abc= (Abc) c.getVariable("abc");

      .... do something ...


      Problem is that this variables are not registered in session, if variable has an association and I use it, I get an exception. But if I have variable class has only primitive attributes (String, BigDecimal..) it works perfectly. Workaround is to declare all association in Hibernate as lazy="false" what I don't want. But really interesting is, that if I change value in variable that it will be stored in db. That means that jbpm will register variables in Hibernate session but later and I don't know when.

      I don't use any special workflow configuration. This is snip set from my workflow interface:

      public class WorkflowService extends HibernateDaoSupport implements IWorkflowService {

      private static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();

      public void startWorkflow(Workflow workflow, Map<String, Object> variables) {
      JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();

      try {
      ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate(workflow.getFullName());
      } finally {