当某节点前后有多个分支节点时,就必须使用网关,不同场景下需要用不同的网关,网关需要成对使用才能实现效果。
网关介绍如下:
流程设计器网关节点:
三种网关图:
当流程到达这个网关时,会去执行每个分支上的条件表达式,流程会沿着条件执行结果为true的分支继续进行,如果多个分支为true,则选择第一分支进行执行,如果所有的分支都为false,则报错,流程可以有默认分支,类似if else逻辑,当都为false时,走默认分支。
例:请假申请场景,如果请假天数小于等于3天,部门领导审批即可,如果请假天数大于3天,还需要分管领导审批。
流程设计器配置
请假天数大于3天需要分管领导审批,连接线上条件类型选择表达式,表达式的值为:
${qjsqDay>3},如下图所示:
请假天数小于等于3天直接到结束节点,连接线上条件类型选择表达式,表达式的值为:
${qjsqDay<=3},如下图所示:
条件表达式中使用了流程变量qjsqDay,该值来源于表单字段,需要在电子表单设计器中指定为流程变量,如下图所示:
流程流转效果
请假人填写申请表单,请假天数录入4:
启动流程并提交到部门领导审批节点,流程运行效果如下:
部门领导打开待办办理流程,请假天数是4天,大于3天,${qjsqDay>3}满足条件,会提交的分管领导审批节点,因此点击办理时会弹出分管领导审批节点的选人界面,如下图所示:
注:
1.排他网关的流程只会走一个分支,条件执行结果为true的第一分支或者默认分支
2.如果没有满足条件的分支,流程会报错
并行网关,即通过此网关后的任务并行进行,或者在这个网关之前的任务并行进行。
例:合同审批流程,合同拟稿后需要质量部、市场部、研发部会签完才能归档。
流程图如下所示:
该流程启动后,合同拟稿人录入合同信息,办理时需要同时提交到质量部审批、市场部审批、研发部审批,单击办理会弹出这三个节点的选人界面,如下图所示:
提交后流程流转图如下所示:
研发部人员打开待办提交后,流程会后面网关节点等待其他分支,流程流转图如下所示:
市场部人员打开待办提交后,流程流转图如下所示:
质量部人员打开待办提交时,由于是最后一个分支节点,需要选择合同归档节点的执行人,如下图所示:
质量部人员提交后流转到合同归档节点,流程流转图如下所示:
当流程中有多个分支节点,需按条件判断执行多个分支节点,满足条件的分支节点都要执行,此时需要用包容网关。
例:合同定价审批流程,会根据合同金额给到不同人审核,当合同金额小于等于500万时由项目经理审批和技术经理审批,当合同金额大于500万时由项目经理、技术经理和部门经理审批共同审批。
到项目经理审批和技术经理审批的连线不设置条件,到部门经理审批的连线设置条件合同金额大于500,即${contractAmount>500},如下图所示:
根据该配置,合同定价节点提交后,当合同金额小于等于500万时,会流转到项目经理审批和技术经理审批节点,当合同金额大于500万时会流转到项目经理审批、技术经理审批和部门经理审批三个节点。
如下图所示,合同金额录入1000万:
启动流程并办理任务,由于金额大于500万,会提交到三个节点,办理时会弹出三个节点的选人界面,如下图所示:
提交后流程流转图如下: