Camunda 动态增加会签

先了解一下:会签,或签,加签是什么意思

会签:几个审批人,要全部同意

或签:几个审批人,只要有一个同意

加签:增加审批人

下面演示动态增加会签

一 流程图

我们只使用 审批1和审批2节点  演示

Camunda 动态增加会签_第1张图片

 

二 设置审批1

1 设置审批1位并行

2 填写右边 Multi-instance 和 User assignment

3 发布流程

Camunda 动态增加会签_第2张图片

 

三 代码接口

1 启动实例

在审批1种,设置了一个admin为审批人

ProcessDefinitionId 在Camunda界面上看一下。

@ApiOperation("启动实例")
    @GetMapping("/start1")
    public ResponseEntity start1(processDefinitionId,businessKey){
        //添加审批人
        Map map = new HashMap<>();
        //主管审批
        List managerList = new ArrayList<>(4);
        managerList.add("admin");
        map.put("userList",managerList);

        //启动实例,添加业务key
        Execution execution = runtimeService.startProcessInstanceById(processDefinitionId,businessKey,map);
        return ResponseEntity.ok(execution.getProcessInstanceId());
    }

Camunda 动态增加会签_第3张图片

2 新增一个会签

processInstanceId  在Camunda界面上看

activityId 这个需要在编辑器中查看审批1节点的activityId

@ApiOperation("新增一个实例,并设定开始节点")
    @GetMapping("/assignBefore")
    public ResponseEntity assignBefore(processInstanceId,activityId,user){

        runtimeService.createProcessInstanceModification(processInstanceId)
                .startBeforeActivity(activityId)
                .setVariable("user",user)
                .execute();

        return ResponseEntity.ok("ok");
    }

Camunda 动态增加会签_第4张图片

 可以看到,已经新增了test审批。

四 或签

 或签的区别,其实和简单

只是在Multi-instance中增加 ${nrOfCompletedInstances == 1}  代表1人审核通过,就通过。

nrOfCompletedInstances 是内置变量,无需声明。

Camunda 动态增加会签_第5张图片

 

 

你可能感兴趣的:(Camunda,spring,cloud,servlet,java,jvm)