activiti设计器会签人员配置

2022-07-31,,,

activiti设计器会签人员配置

    • 第一种方式通过设置变量
    • 第二种方式通过任务监听器配置
    • 第三种方式想在页面将人员写死

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

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

第一种方式通过设置变量

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

代码设置:

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

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

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

代码设置:

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));
    }
}

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

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

集合(多实例): ${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设计器会签人员配置.doc》

下载本文的Word格式文档,以方便收藏与打印。