流程引擎(flowable)之会签相关

相关定义

会签: 在流程业务管理中,任务是通常都是由一个人去处理的,而多个人同时处理一个任务,这种任务我们称之为会签任务。

串行会签:串行会签也叫顺序会签,指按照提交流程处理人的次序user1、user2、user3依次接收待办任务,并按顺序处理流程。

并行会签:指user1、user2、user3同时接收到流程待办任务,并行处理。

循环基数:会签任务的个数,若设置为3,在执行到会签任务时会出现3个任务。

会签完成条件:达到此条件该会签任务结束。

相关配置

会签任务需要在流程定义配置时设置好的,一下代码是会签任务的基本配置项。

   <!--
		userTask:该标签标识用户任务
		assignee:审批人 
		id:流程节点唯一编号 
		name:任务名称
		-->     
<bpmn2:userTask flowable:assignee="${zhangxiaohei}" id="Activity_1inhrs5" name="会签">
  	<!--
			multiInstanceLoopCharacteristics:该标签标识多实例循环任务,也就是会签任务,会签任务此配置为必须填配置
			isSequential:是否串行,控制会签任务是并行执行还是串行执行,默认为 :false
			collection:会签任务执行人集合,可以是el表达式通过流程变量传递值
			elementVariable:元素变量,主要作用:属性传递
		-->
    <bpmn2:multiInstanceLoopCharacteristics isSequential="false" flowable:collection="${userList}"
                                            flowable:elementVariable="zhangxiaohei">
      	<!--
					loopCardinality:循环基数,即会签任务的分发个数。可以是el表达式通过流程变量传递值。可选配置,但是和上面的collection属					性两者必须有一个必须使用项。这个属性是number类型并且为必填属性。
				-->
        <bpmn2:loopCardinality>${userList.size()}</bpmn2:loopCardinality>
      	<!--
					completionCondition:会签完成条件。可选配置,可以是el表达式通过流程变量传递值。若不配置则默认完成条件为:所有会签任务全					部执行完成。这个属性是boolean类型并且为必填属性。
				-->
        <bpmn2:completionCondition>${nrOfInstances == nrOfCompletedInstances}</bpmn2:completionCondition>
    </bpmn2:multiInstanceLoopCharacteristics>
</bpmn2:userTask>
配置项总结
  1. 会签任务是一个用户任务
  2. 会签任务可以设置并行还是串行
  3. 会签任务使用multiInstanceLoopCharacteristics多实例循环维护的,在多实例循环中通过几个属性控制会签任务的运行规则,分别有:
    a). isSequential:是否串行,控制会签任务是并行执行还是串行执行,默认为 :false
    b). collection:会签任务执行人集合,可以是el表达式通过流程变量传递值
    c). <p>
           elementVariable:元素变量,主要作用:属性传递。
           元素变量一帮和<userTask/>标签的assignee属性匹配,
           在解析的过程中会将collection集合中的属性遍历,
           在遍历的过程中将集合中的属性依次赋值给elementVariable元素变量,
           再通过元素变量传递给<userTask/>的assignee属性,
           实现给每一个会签任务设置审批人,整个过程和for循环遍历赋值类似。
        </p>
    d). <p>
           loopCardinality:循环基数,即会签任务的分发个数。可以是el表达式通过流程变量传递值。
           这个属性是number类型并且为必填属性,需要注意的是该属性在设置时其大小必须小于等于collection集合大小,
           若循环基数等于collection集合大小,在编排任务时候会根据遍历顺序依次从collection集合中获取审批人并设置审批人
           若小于collection集合大小,在编排任务时候会根据遍历顺序丢弃掉集合中的部分审批人。
           若大于collection集合大小,抛出NoSuchElementException异常,底层使用迭代器Iterator遍历集合属性。
        </p>
    e). completionCondition:会签完成条件。可选配置,可以是el表达式通过流程变量传递值,但必须为boolean值。若不配置则默认完成条件为:所有会签任务全部执行完成。
部分源码截图
  1. loopCardinality标签表达式解析
    在这里插入图片描述

  2. collection使用elementVariable做变量传递,并设置流程变量
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AsY2opFB-1664419599932)(/Users/zhangpf/Documents/惠瀜科技/flowable/setVal.png)]

  3. completionCondition标签表达式解析:要么不配置,配置了就必须为boolean类型值

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5AKQF9WZ-1664419599932)(/Users/zhangpf/Documents/惠瀜科技/flowable/条件2.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FRlUee37-1664419599932)(/Users/zhangpf/Documents/惠瀜科技/flowable/条件.png)]
    在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值