欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

activiti设计器会签人员配置

程序员文章站 2022-05-04 08:48:09
activiti设计器会签人员配置第一种方式通过设置变量第二种方式通过任务监听器配置第三种方式想在页面将人员写死使用activiti设计器进行流程图绘制,并且配置会签和或签人员,我也是在学习中,通过不断查阅资料,总结了三种方式配置会签人员在配置人员之前,我们先说一下多实例类型 并行和串行并行:并行代表同时进行,任务如果分配给两个人,那么在这个节点的时候,两个人同时都会收到任务,各自处理串行:串行是指任务由一个人完成后,才会流转到第二个人手上第一种方式通过设置变量通过在设计器设置会签人员集合,在流...

使用activiti设计器进行流程图绘制,并且配置会签和或签人员,我也是在学习中,通过不断查阅资料,总结了三种方式配置会签人员

在配置人员之前,我们先说一下多实例类型 并行和串行
并行:并行代表同时进行,任务如果分配给两个人,那么在这个节点的时候,两个人同时都会收到任务,各自处理
串行:串行是指任务由一个人完成后,才会流转到第二个人手上

第一种方式通过设置变量

通过在设计器设置会签人员集合,在流程启动之前,将变量值设置进去
页面配置:
activiti设计器会签人员配置

代码设置:

List<String> assigneeList = new ArrayList<>();
assigneeList.add("张三");
assigneeList.add("李四");
vars.put("assigneeList",assigneeList);
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId(), businessKey, vars);

然后流程在走到会签这一步的时候,会自动将任务分配给张三和李四

第二种方式通过任务监听器配置

activiti设计器会签人员配置

activiti设计器会签人员配置
代码设置:

import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.Arrays;
public class TaskListenter implements TaskListener {
    @Override
    public void notify(DelegateTask delegateTask) {
        String[] empLoyees = {"张三","李四"};
//        会签设置审核人/
        delegateTask.addCandidateUsers(Arrays.asList(empLoyees));
    }
}

然后流程在走到会签这一步的时候,会自动将任务分配给张三和李四

第三种方式想在页面将人员写死

activiti设计器会签人员配置

集合(多实例): ${testUser.resolveUsersForTask(execution,“张三,李四”)}

代码:

@Component
public class TestUser {

    /**
     * 会签时,动态获取审批人
     * @param execution
     * @return
     */
    public List<String> resolveUsersForTask(DelegateExecution execution, String value) {
        System.out.println(value);
        String[] user = value.split(",");
        String instanceId = execution.getProcessInstanceId();
        System.out.println("实例id:"+instanceId);
        List<String> users = Arrays.asList(user);

        return users;
    }
}

以上三种方式 是我自己总结的设置会签人员的方法

最后附上多实例完成条件:

nrOfInstances:实例总数
nrOfActiveInstances:当前活动的,比如还没完成的,实例数量。对于顺序执行的多实例,值一直为1。
nrOfCompletedInstances:已经完成实例的数目

举例:
${nrOfCompletedInstances>0} 表示只要有人完成任务就通过该节点
${nrOfCompletedInstances/nrOfInstances==1} 全部完成才能通过该节点

本文地址:https://blog.csdn.net/u010796208/article/details/107690399

相关标签: activiti java