1 案例场景
在过往版本中,工作流多人任务需要所有响应人办理完成后才向下流转,在应用中基本只能满足常规的会签业务,是无法实现例如一票否决业务、超过一定比例同意即判定通过当前节点等业务的。
在V7.1.0版本,我们在用户任务多人响应方式下支持设计人员配置完成条件,使得只要满足特定条件即可完成当前节点任务并让流程向下流转,可以实现上述非常规的多人审批场景业务,并且在流程流转后可以根据提供的审批结果相关流程变量对多人任务的流转走向进行条件判定,满足多样的流程设计需求。(V7.1.0及以后的版本支持)
2 配置说明
注意:V7.1.0及以后的版本中对用户任务的【响应方式】做了如下调整:原来的“竞争响应”调整为“单人办理”,原来的“全部响应”调整为“多人办理”,并且原有的需要所有响应人办理完成后节点才向下流转的响应方式仅作为“多人办理”中的默认任务完成条件。
这里我们着重介绍如何在多人办理方式下通过任务完成条件的配置来实现不同场景下的多人办理。(目前多人办理仅支持并行方式执行,即多人同时收到待办任务进行各自进行办理)
(1)全部响应
即所有响应人都需要办理以后节点才能向下流转,这是最常见的多人办理模式,也是常规的“会签”业务,因此作为选择多人办理模式下的默认配置存在。
在执行的时候,如当前用户任务需要A、B、C三人进行办理,则只有A、B、C三人均处理完响应的待办任务,这个节点才能流向下一节点。换句话说只要有任意一人未完成其待办任务,流程将停留在当前节点将无法向后流转。
(2)一票否决
一票否决,也是实际应用中多人办理中可能会使用到的一种办理模式,一般应用于多人对某个事项进行投票决策,只要过程中有一人不通过则剩余未投票人员就无需进行投票,流程立即向下流转。
执行时,例如当前任务也是由A、B、C三人进行办理,三人会同时收到待办任务,各自进行审批。 若办理过程中没有人选择“拒绝”,则需要所有人同意以后,流程才能向下流转。若办理过程中有任意一人提交了“拒绝”,此时未办理的人员继续选择同意或拒绝的意义不大,他们的待办任务将会被取消,流程可以直接向下流转(当然这种情况下在选择“拒绝”的这个人之前已办理的人员选择的肯定都是“同意”)。
注意:选择此项时,需要开启审批模式(同意/拒绝)才能生效,否则将不会触发“否决”这个条件,无法达到想要的执行效果。
(3)自定义完成条件
以上是两种常见业务,可以直接通过选项选择使用,如若还有其他多人办理的业务需要实现可以选择自定义完成条件的方式进行配置,如下图所示可以在条件输入框中输入条件表达式。
在表达式编辑器中扩充了当前任务办理情况相关的变量,如下图所示:
- 实例总数 nrOfInstances
- 办理完成的实例数 nrOfActiveInstances
- 未完成的实例数 nrOfCompletedInstances
- 同意的实例数 nrOfAgreedInstances
- 拒绝的实例数 nrOfDisagreedInstances
自定义完成条件执行规则:
条件表达式返回true时,销毁当前节点未处理的待办任务,直接完成当前节点任务,流程向下流转。若办理过程中条件不成立,则需要所有响应人办理完成后才能向下流转
示例:
一票否决:${nrOfDisagreedInstances>0}
超过半数办理:${nrOfCompletedInstances/nrOfInstances>0.5}
超过半数同意:${nrOfAgreedInstances/nrOfInstances>0.5}
最后编辑:Eric 更新时间:2025-04-24 13:55
