先了解一下:會籤,或籤,加簽是什麼意思
會籤:幾個審批人,要全部同意
或籤:幾個審批人,只要有一個同意
加簽:增加審批人
下面演示動態增加會籤
一 流程圖
我們只使用 審批1和審批2節點 演示
二 設置審批1
1 設置審批1位並行
2 填寫右邊 Multi-instance 和 User assignment
3 發佈流程
三 代碼接口
1 啓動實例
在審批1種,設置了一個admin爲審批人
ProcessDefinitionId 在Camunda界面上看一下。
@ApiOperation("啓動實例") @GetMapping("/start1") public ResponseEntity start1(processDefinitionId,businessKey){ //添加審批人 Map<String,Object> map = new HashMap<>(); //主管審批 List<String> managerList = new ArrayList<>(4); managerList.add("admin"); map.put("userList",managerList); //啓動實例,添加業務key Execution execution = runtimeService.startProcessInstanceById(processDefinitionId,businessKey,map); return ResponseEntity.ok(execution.getProcessInstanceId()); }
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"); }
可以看到,已經新增了test審批。
四 或籤
或籤的區別,其實很簡單
只是在Multi-instance中增加 ${nrOfCompletedInstances == 1} 代表1人審覈通過,就通過。
nrOfCompletedInstances 是內置變量,無需聲明。