Flowable29多人会签动态完成条件-------------------持续更新中

1. 什么是完成条件 (completionCondition)?

在多实例活动(如多人会签)中,completionCondition 是一个可以配置的表达式。Flowable 在每个实例任务完成时都会对这个表达式进行求值。
如果表达式求值结果为 true,那么多实例活动就会立即结束,所有其他未完成的实例任务都会被删除,流程继续向下流转。
如果表达式求值结果为 false,流程会继续等待其他实例任务的完成。
如果所有实例任务都已完成,但该条件从未为 true,那么多实例活动也会正常结束。

2. "动态"体现在哪里?

“动态”的核心在于,这个表达式不仅能使用 Flowable 内置的循环变量,还能访问流程实例的所有自定义流程变量(Process Variables)。
这意味着你可以根据业务逻辑,在任务处理过程中动态地改变流程变量的值,从而影响最终的完成条件判断。

3. 可在表达式中使用的变量

a. 内置循环变量
Flowable 在多实例活动期间会自动维护一组非常有用的只读变量,你可以直接在表达式中使用它们。
变量名 类型 描述
nrOfInstances Integer 总实例数。即会签的总人数。等于你提供的集合的大小。
nrOfCompletedInstances Integer 已完成的实例数。每次有审批人完成任务,此值加一。
nrOfActiveInstances Integer 当前活动的实例数。即尚未完成任务的人数。
loopCounter Integer 循环计数器。一个从0开始的索引,表示当前是第几次循环。在并行会签中意义不大,但在串行会签中非常有用。
b. 自定义流程变量
你可以定义任何你需要的变量,并在任务完成时去更新它。这是实现复杂逻辑的关键。例如:
voteResult (String): 存储每次投票的结果(如 ‘agree’, ‘reject’)。
rejectionCount (Integer): 专门用于统计“拒绝”票数的计数器。
approvedCount (Integer): 专门用于统计“同意”票数的计数器。

4. 经典场景与表达式示例

场景一:比例通过(例如,超过60%的人同意即通过)
这是最简单的动态场景,仅使用内置变量即可。
逻辑:已完成人数占总人数的比例达到或超过0.6。

<userTask id="countersignTask" name="会签" ...>
  <multiInstanceLoopCharacteristics isSequential="false" flowable:collection="userList"
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值