执行业务流程时,如果有不同的业务,需要等多个分支业务完成后,才能执行下一步,该如何实现呢?
比如,当“单位出勤主办审核”完成后进入3个不同的分支业务,当3个分支业务都审核通过完成后才进入“单位薪酬主办最终审核”。

为了便于实现我们以以下小例子来进行讲解,流程开始后,进入“任务A”节点,同时传给“任务B”和“任务C”两个节点 ,当,任务B”和“任务C”2个节点全部审核通过后,才能到达“任务D”节点。

实现步骤:“任务A ”执行时通过业务公式创建 “任务B” 和 “任务C” 模板的表单,当“任务B”和“任务C”执行时,将“流程状态”回写到表单中,并通过数据接口获取多线业务审批通过的数量作为判断条件,利用“任务D”前连接线的满足条件,判断条件决定是否执行到任务D(只完成一个节点时不到达任务D 完成两个节点时才到达任务D) 。
1.模板及设计
先设计好3个模板,任务A在“模板A”中执行、任务B在“模板B”中执行、任务C在“模板C”中执行。

模板《N多线业务流程A》

模板《N多线业务流程B》

模板《N多线业务流程C》
2.流程设计
2.1 开始
新建流程图(如下图),“开始”节点绑定模板《N多线业务流程A》

2.2 多线业务前节点
设置执行人,可根据需求自主设置,这里设置为“发起人”本人。

设置数据传递,以便在后续节点中调用数据,做判断。打开“数据传递”,添加流程变量,将《N多线业务流程A》的数据项赋值给变量传递给下一节点。

2.3 多线业务节点
①任务表单必须设置“使用其他表单”;打开方式必须设置为“
编辑”(不能为新建,但是可以通过业务公式新建),并设置打开唯一指定表单的匹配条件。
②多线业务节点中传递“判断”参数,通过多线业务连接线的满足条件,判断是否向下执行。
2.3.1 设置任务B节点
使用其他表单“N多线业务流程B”,打开方式为“编辑”,并通过“匹配条件”打开唯一符合的表单(流程变量为上一节点传递的数据);执行人可根据需要自主设置;

设置数据传递。获取“N多线业务流程B”的判断结果用于分支判断。

设置连接线判断,满足条件时才向流转到“任务D”节点。

2.3.2 设置任务C节点
使用其他表单“N多线业务流程C”,打开方式为“编辑”,并通过“匹配条件”打开唯一符合的表单(流程变量为上一节点传递的数据);执行人可根据需要自主设置;

设置数据传递。将“N多线业务流程C”的判断结果传递给下一节点。

设置连接线判断,满足条件时才流转到“任务D”节点。

3.业务公式
多线业务中的判断如何获取的呢?
通过业务公式,执行业务流程时,可同步执行业务,将“审批结果”回写到当前表单中,再查询已通过的流程数量赋值给判断。
3.1 多线业务B
3.1.1 更新审批结果
选中“任务B”节点,打开“任务表单”下的“业务公式”,业务公式的事件选择“任务完成后”,添加对本模板“N多线业务流程B”的操作,将审批结果更新到本表单。

3.1.2 更新判断结果
查询已通过审批的数量(调用数据接口“N多线业务流程B.计数”),并赋值给判断。

3.1.3 计数已通过的表单
设计数据接口,根据单号查询已通过审批的数量。由于多线业务必须同时满足,数据源需要设置为多线业务多关联的模板——本模板《N多线业务流程B》和《N多线业务流程C》。

数据列,针对单号进行计数。

过滤条件,设置为指定单号且流程状态为“通过”的记录。

3.2 多线业务C
“多线业务C”的业务公式与“多线业务B”的业务公式基本相同,不同点在于修改对象不同,可调用同一个数据接口进行计数。

4.实现效果
启动业务后,针对多业务分别进行审批,多业务都审批通过时,才流转到“任务D”节点。
