工作流制作和应用
以员工请假场景为例,介绍如何通过工作流来实现 “员工提交请假单->部门经理审批->人力资源审批” 这样一个完整的流程效果。
本章节将以员工请假场景为例,介绍如何通过工作流来实现 “员工提交请假单->部门经理审批->人力资源审批” 这样一个完整的流程效果。
工作流中常常需要取填报表中数据。在设计工作流之前,需要先做好填报表,使填报表数据能满足工作流需要,并且可正常填报。
由于当前需求场景中请假单需要先部门经理审批,然后人力资源同事审批,都审批通过后才允许休假,所以我们可以在填报表中将当前请假单提交人对应的“部门经理”人员编号和“人力资源”人员编号获取到,供后续工作流中使用。
既然在填报表单中需要获取到部门经理信息的值,那么我们需要确保有地方维护了每个部门的部门经理数据。
在当前示例中,我们可以在部门维表中用一个字段来维护每个部门的部门经理是谁,如下图:
前面章节我们已经制作好《员工请假单》填报表,且已经获取到了人力资源人员编号。
这里我们就使用这个表单填报表。我们还需要增加一个组件求出“部门经理”。具体操作如下:
增加一个单行输入框组件,设置标题为部门经理,设置表达式为diminf("部门",diminf('人员维',HHH2.HHH7,'DM_UPCODE2'),"BMJL")。
表达式解读: 内层diminf通过“人员维”求出请假人所属部门,外层diminf通过“部门”维表求出部门经理。具体diminf函数用法见diminf函数。 |
如果实际表单中不需要显示该组件,可设置其【显示】属性为 隐藏,如下图。
用户填写《员工请假单》,点击提交后,对应部门经理审批,如审批通过则流转到人力资源人员审批,如部门经理审批不通过则打回给填报人重新修改直到部门经理审批通过;人力资源审批通过后流程结束允许休假,否则退回到填报人重新修改请假单并重新走审批流程直到流程结束。
在工作流编辑页面上,左侧是组件列表,可以通过拖拽的方式把需要的组件拖入到空白画布上。
首先,我们在事件分类组件中找到【开始】组件,鼠标左键选中,拖到中间空白画布上,表示流程开始。
然后用户填报请假单、部门经理审批,所以分别拖拽【表单活动】和【审批活动】。然后我们把【开始】、【表单活动】、【审批活动】串联起来,组件串联的操作有两种方式:
连接后效果如下:
拖入组件后,为了区分每个活动组件对应的含义,可以当即修改下组件名称,方便区分。
部门经理审批时,会存在审批通过和审批不通过两种情况,所以可以用【单一网关】和【条件流】来判断不同情况下的流向。当部门经理审批不通过时,退回到请假单填写环节,设置如下:
和前面添加组件同样的方式拖拽一个【单一网关】到画布中,连接【单一网关】和【表单活动】的连接点,会自动生成【条件流】,调整位置后在条件流的基础属性中设置流向条件:@I_FLOWTO = "2"
在流向条件的编辑框中,鼠标点击右上角问号图标,可查看表达式设置说明:
当部门经理审批通过(即非不通过)的时候,继续后面人力资源部同事审批,设置如下:
拖入【审批活动(人力审批)】,然后连接【单一网关】和【审批活动(人力审批)】,会自动生成条件流,在条件流属性中修改类型为“默认流”,如下图:
接下来,和设置部门经理审批及判断是否通过的方式一样,我们设置人力审批活动后面的网关和条件判断。
当人力审批通过后流程结束,所以我们在后面用【默认流】连接一个【结束】组件,最后绘制出来的流程图如下:
实现要点:
由于我们的场景是数据填写上报后才发起流程实例,所以这里的【活动对象】必须选择“运行时自定义”。
如果需要流程发起后的第一个活动就是填报,则活动对象可设置为自定义或者使用全局对象。这种情况下,在【我的流程】下【发起流程】中发起流程,或者使用计划任务定时发起流程。
在【表单主键】中设置回填任务中的主键。
这一步操作的目的是,让工作流知道填报任务的主键字段是哪个,让每一条填报数据和流程实例能够一一对应。具体的操作如下:
A、定义全局变量:在流程变量定义中,添加变量-请假单号,设置入口如下,在这里我们定义的全局变量可用于当前工作流中各个活动的赋值或传参。
注:这个变量名要和填报表中的请假单号参数名一致。
B、设置参数赋值:在【表单活动】的“参数赋值”属性中添加请假单号变量的赋值。
表达式解析:当前任务中请假单号对应的组件是放在HHH2容器中,请假单号组件ID是HHH8,所以赋值公式这里我们写HHH2.HHH8
C、设置表单主键:在“表单主键”属性中添加前面一步我们设置好赋值的参数-请假单号
设置表单活动办理人为流程启动者。
这一活动的办理人是部门经理,请假单(请假人)不同部门经理会不同,我们需要从填报数据中取出部门经理,这时我们可以使用表达式来指定办理人,具体操作如下:
A、定义变量:在流程变量定义中,添加变量-部门经理
B、给部门经理变量赋值
C、设置部门经理审批活动的办理人表达式
表达式解析:
user.userid指用户代码,@bmjl是前面定义的部门经理对应的变量名,用来获取到的部门经理用户代码值。
定义部门经理办理人允许的操作,默认可操作通过和退回重审,符合当前需求,无需修改,实际其他场景可按需开放操作按钮。
这里给出三种退回操作的区别说明:
退回重审:指退回再次上报后由流程中的第一个审批者审批,从头开始重新审批;
数据退回:指退回再次上报后由退回者审批,继续原来的流程;
层层退回:当前审批者退回给上一个审批者,而不是直接退回给填报用户。
设置人力资源人员审批环节设置办理人为人力资源,并设置可进行的操作,设置过程参考“部门经理审批”活动设置,此处不再赘述
流程制作完成后先保存,在发布。
发布成功后会在工作流列表中看到我们刚才做好的工作流
注意:如果是已经发布的流程后期需要调整修改,那么修改后一定需要保存并发布,在发布成功后新的修改才会生效。
工作流制作好后,接着我们来设置填报表绑定工作流。
在《员工请假单》填报表中,将上报按钮事件改成“无”,工作流设置中选择提交表单并发起,选择刚才我们做好的工作流,如下图:
填报表绑定工作流完成。
使用系统自带按钮发起工作流,该如何绑定工作流? 系统自带的发起工作流按钮: 在报表属性中配置工作流。 |
填报表和流程都设置完毕后,接下来需要给填报用户和审批用户授予对应的权限,来分别实现表单上报和审批、退回等操作。
填报用户需要的权限有:
审批用户需要的权限有:
1)用户填写并上报《员工请假单》
2)部门经理审批
部门经理进入待办页面,办理请假审批。
3)人力资源审批
4)人力资源审批通过流程结束
请假申请人员登录系统可在【我的流程】中查看流程审批情况。
文档内容仅供参考
如果您需要解决具体问题,还可以登录亿信社区
在提问求助板块提问,30分钟内帮您解决问题
请先登录