Activit多实例任务

多实例任务:顺序和并行

顺序:按照集合设置的顺序执行

并行:按照集合设置的同时到达任务人

实例的数量就是任务执行人的数量,如果不是用户任务那么就要自己设置实例的数量

即:一个任务节点多人(顺序或并行)执行

Activit多实例任务_第1张图片Activit多实例任务_第2张图片


用户多实例例子

顺序:实例的数量不进行设置,而是根据任务执行人数量进行设置

这里用监听器进行设置

Sequential: true—顺序/false—并行

Collection:集合-------一般用list来设置

Element variable : Element 用于遍历集合 ,任务执行人assignee 即设置取Elementvariable 的值${ Element }

流程图:

上级领导审批是并行:在流程启动时设置审批人managerList

人事部审批是顺序:在监听器中设置审批人hrList

关于监听器:http://blog.csdn.net/qq_30739519/article/details/51258447


Activit多实例任务_第3张图片Activit多实例任务_第4张图片

新建listener:java class

在流程启动时调用:

package com.activiti.listener.execution;

importjava.util.ArrayList;

importjava.util.List;

importorg.activiti.engine.delegate.DelegateExecution;

importorg.activiti.engine.delegate.ExecutionListener;

 

public classLeaveListener implements ExecutionListener {

         //监听器设置

         @Override

         public void notify(DelegateExecutionexecution) throws Exception {

                   //上级领导审批执行人设置ABC

                   List managerList = newArrayList();

                   managerList.add("A");

                   managerList.add("B");

                   managerList.add("C");

                   execution.setVariable("managerList",managerList);

                   //hr审批执行人设置 QWE

                   List hrList = newArrayList();

                   hrList.add("Q");

                   hrList.add("W");

                   hrList.add("E");

                   execution.setVariable("hrList",hrList);  

        

         }

}

 

流程启动后:

任务节点上级领导审批节点中(并行ABC)

正在运行的任务:

Activit多实例任务_第5张图片


ABC同时接收到任务,ABC都办理完成之后才能进行下一个节点的执行

ABC都办理后,到人事部审批 (顺序QWE)Q办理后到W,W办理后到E,E执行完后才能往下的节点继续走。

Activit多实例任务_第6张图片

你可能感兴趣的:(工作流程)