工作流Activiti实现审批人灵活配置:
我主要采用的是使用监听器进行审批人员的添加,由于本次工程中使用了四种审批模式:
1. 组任务
2. 会签串行
3. 会签并行
4. 个人任务
其中会签串行和并行都是采用多实例方式,会签并行是相当于流程运行到这个任务,Activiti会自动创建多个实例任务,互不影响,类似物理学中电路的并行;而会签串行是流程运行到这个任务,Activiti会创建一个任务,等待这个任务完成,在创建一个新的任务,有多少审批人或者条件满足时,串行任务完成结束。
针对会签任务,其实就是多实例任务,由于在任务创建之前就需要确定任务数,与配置的审批人数相对应,我就选择在用户任务之前的线上加上监听器,将线的ID设置为下一任务节点的审批角色名称,这样就可以实现审批人灵活配置。
具体监听器代码如下:
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.ExecutionListener;
import org.activiti.engine.impl.persistence.entity.ExecutionEntity;
import org.activiti.engine.impl.pvm.PvmProcessElement;
/**
* 任务监听器
* @author MuYi
*