分支设置
流程的分支功能,需要分别在流程以及填报表单中的进行相关分支属性设置。
以下将结合一个具体的场景用例“报销审批”流程,来说明复杂流程中分支功能的设置和使用。
场景用例-报销审批流程
业务流程示意图
通过流程设计器完成流程定义后的报销审批流程如下图所示,可见,在该流程中,从节点“提交报销单”出发一共出现了三条分支:
业务流程分析
上图所示的“报销审批”流程即是一个较为常见的含有分支的流程,即流程中会根据节点“提交报销单”中所填报数据的情况流转到不同的后续节点。
该场景用例的具体业务背景情况如下:
1、公司人员因工作而支出的费用需进行报销审批。
2、当报销额度1万以上由总经理审核,小于1万由部门经理审核,并且当小于1000时在部门经理处完成自动系统审核。
3、经部门经理或总经理审核后,再由财务部最终审核。
4、部门经理或总经理可以将报销单回退至提交人。
流程中需使用的填报表
在流程中进行数据上报所使用的填报表如下图所示。其中,合计金额将计算出本次报销的总费用额度。
填报表中的分支号计算设置
复杂流程的分支功能,需要在填报表中设置分支号的计算。
例如在用例“报销审核”流程中,需要在填报表中根据合计金额的大小,计算出一个分支号。
具体计算规则如下:
- 当报销单合计金额<1000时,分支号等于10;
- 当报销单合计金额<10000时,分支号等于20;
- 当报销单合计金额>=10000时,分支号等于30;
分支号的计算可以直接在某个单元格中设置自动计算公式。通过设置单元格自动计算公式,可以实现用户在填报表单中填写数据时,根据填写的数据即时完成分支号计算。
例如,用例“报销审核”流程中填报表单的设计如下图:
分支号的计算通过设置填报表单元格的自动计算完成,自动计算提供固定计算、公式计算、js计算三种类型,可以根据分支号的计算逻辑复杂程度选择合适的类型。
通常可选择js计算方式实现灵活的分支号计算,js脚本可以写在html类型的单元格中
Js脚本示例如下:
<script language="javascript">function reVal(varrpt){ if(varrpt<1000){return 10}else if(varrpt<10000){return 20}else{return 30}}</script>
如在A11单元格里设置js脚本:
在填报表模板中可选中单元格【A12】作为分支号计算的单元格,然后在【A12】单元格的填报属性中设置分支号的自动计算为js计算。如下图所示:
同时,由于单元格【A12】计算出的具体分支号并不需要显示在填报表中让用户看到,因此还可以将该单元格设置为不可视,如下图所示。这样当使用“报销流程”和填报表单报送数据时,任务处理人员就看不到【A12】单元格中计算出的分支号了,但系统仍然可从该单元格获取到分支号。
流程中的节点分支设置
为了让流程中的节点可以从填报表单中获取到计算出的分支号,需要在流程设计器的节点流程属性中进行【分支设置】的属性配置,即设置节点的分支号读取单元格。
例如在用例“报销审批”流程中,节点“提交报销单”的处理对象已经设置为静态资源报表【报销单】,那么就可以进一步选中该节点并设置该节点流程属性【分支设置】为【A12】,表示从填报表【报销单】的A12单元格获取分支号。如下图所示:
流程中的节点连线分支号设置
为了实现流程可以根据填报表计算出的分支号,进入相应的分支路径,还需要在流程中设置相应分支的节点连线分支号。要特别说明的是:不能为开始节点设置分支路径。
例如在用例“报销审批”流程中,需要在流程设计器双击以下节点连线弹出连线属性设置界面,设置相应的分支号,注意分支号一定要与填报表的分支计算想匹配:
【提交报销单 --> 部门经理自动审批】:10
【提交报销单 --> 部门经理审批】:20
【提交报销单 --> 总经理审批】:30
设置节点连线的分支号后,可在流程设计器的流程图中在节点图标左上角看到设置的分支号,如下图所示:
流程中的节点分支到达方式设置
以用例“报销审批”流程为例,由于流程中存在分支,会出现“部门经理自动审批”、“部门经理审批”、“总经理审批”三个节点完成处理后的下一节点都是“财务复核”。
即“财务复核”成为了三条节点连线【部门经理自动审批 --> 财务复核】、【部门经理审批 --> 财务复核】、【总经理审批 --> 财务复核】的汇合节点。
此时,就还需要根据实际业务的需要来设置汇合节点的流程属性【分支到达方式】。
节点流程属性【分支到达方式】提供了两个选项:
- 需等待全部到达:是指需要前面分支节点全部都经过处理,填报任务才开始进入到汇合节点的处理。
- 任一分支到达即可:是指只要前面分支中任意一个节点完成了审核处理,填报任务就可以流转进入到汇合节点的处理。
在用例“报销审批”流程中,填报任务将根据“提交报销单”的合计金额的大小进入其中某一条审批的分支路径。
因此,对于节点【财务复核】,只要前面的任一节点完成了审核处理填报任务就应该进入到【财务复核】节点中。
于是,可以设置节点【财务复核】的【分支到达方式】为【任一分支到达即可】。
分支功能的应用
完成上述的填报表单和流程中的分支设置后,即可实现含有分支功能的复杂流程。当用户在任务处理界面完成填报任务的处理时,任务将根据分支号而进入对应的分支路径。
注意:要实现根据单元格的分支计算结果走相应分支路径,则任务的审核完成处理必须是在任务处理页面点击【审核】按钮来完成任务的,而不能通过任务列表的【审核】按钮来完成。