【Camunda六】Camunda实现会签和或签

一、知识点

会签:指同一个审批节点设置多个人,如ABC三人,三人会同时收到审批,需全部同意之后,审批才可到下一审批节点;

或签:指同一个审批节点设置多个人,如ABC三人,三人会同时收到审批,只要其中任意一人审批即可到下一审批节点。

所以不管是会签还是或签它都是多实例节点,而会签又可以分为并行与串行。

三条垂直线表示实例将并行执行,而三条水平线表示顺序【串行】执行。

  • nrOfInstances : 实例总数
  • nrOfActiveInstances:当前活动的实例的数量。对于串行而言该值始终为1
  • nrOfCompletedInstances:已经完成的实例数
  • loopCounter 循环计数器

二、实现或签

 这样设置完后该节点就是多实例节点了,点击该节点后可以看到需要填写一些参数

 Loop Cardinality:循环基数,表示会签的人数。
Collection:集合。会签人数的集合,通常为list,和loop cardinality二选一。
Element Variable:元素变量。选择Collection时必选,为collection集合每次遍历的元素。
Completion Condition:完成条件。比如我们这里设置nrOfCompletedInstances == 1

具体把审批人变量的值设置到节点上还是得靠Assignee,所以注意上图的参数设置。

部署流程定义和启动流程请参考之前的博文,就不赘述了。 

public ResultReturn startProcessInstanceByKey(String processDefinitionKey, String businessKey,String initiator) {
        try {
            Map<String,Object> map = new HashMap<>();
           //设置流程发起人
            identityService.setAuthenticatedUserId("initiator");
            List<String> userList = new ArrayList<>(4);
            userList.add("userOne");
            userList.add("userTwo");
            userList.add("userThree");
            map.put("userList",userList);
            ProcessInstance processInstance=runtimeService.startProcessInstanceByKey(processDefinitionKey,businessKey,map);
           if (ObjectUtil.isNull(processInstance)) {
               return ResultReturnUtil.error(ResponseEnums.PROCESS_INSTANCE_START_FAIL);
           } else {
               String processInstanceId = processInstance.getProcessInstanceId();
               return ResultReturnUtil.success(processInstanceId);
           }
       }catch (Exception e){
           log.error(e.getMessage());
           throw new ProcessException(ResponseEnums.PROCESS_INSTANCE_START_FAIL.getMsg());
       }
    }

然后发起流程

 来到Camunda监控平台看一下

 我们去模拟审批一次

 回到监控平台,可以发现该流程实例已经完成了

 三、实现会签

前文也提到会签和或签只是该节点的完成条件不一样。

 意思就是当已完成实例数等于实例总数该节点就算完成

${nrOfInstances == nrOfCompletedInstances}

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LoneWalker、

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值