将所有工作流变量传递给调用的进程

时间:2014-02-14 17:23:45

标签: activiti

是否可以将所有工作流程变量传递给Activiti中的被调用进程?

对于特定的工作流程,我们有许多来自父级的变量需要传递给被调用的工作流程。虽然可以枚举它们,但自动传递所有变量非常有用,而无需在“父”工作流中枚举它们。

1 个答案:

答案 0 :(得分:0)

使用附加到Start事件的ExecutionListener找到了一种方法。

public class WorkflowVariableInjectorListener implements ExecutionListener {
  private static final long serialVersionUID = 1L;

  static Logger logger = Logger.getLogger(WorkflowVariableInjectorListener.class);

  @Override
  public void notify(DelegateExecution execution) throws Exception {
    logger.info("In notify");
    if (execution instanceof ExecutionEntity) {
      ExecutionEntity executionEntity = (ExecutionEntity) execution;
      ExecutionEntity parentEntity = executionEntity.getSuperExecution();
      if (parentEntity != null) {
        // Copy all the variables into me
        executionEntity.setVariables(parentEntity.getVariables());
      }
    }
  }
}