OA工作流业务功能设计
- 工作流业力功能是OA类软件的核心功能,带审批管理的业务都是工作流模型来开发的
工作流的核心是将某个处理事务分解到需要执行确认或某些操作的针对每个相关人员、且有前后顺序的个人独立任务,前一任务完成后拉动后一任务,最后一道任务完成也就是事务全部处理完成,比如一个审批类业务的完成、付款申请批准流程、采购中的审批管理流程等都是工作流业务
工作流逻辑功能
由一个任务表一个或多条记录来控制工作流过程中的流程顺序及拉动任务的处理的,而任务表记录是由预定义的流程权限表中流程或业务顺序来控制生成的,工作流的处理也就是对一条或多条某个或某些人应处理的任务表记录进行管理处理更新状态的操作,同时可以查询进度设计为可视化的流程过程以及进行跟催处理
流程权限表定义流程
首先一个流程的开始结束是由审批链表(我们可以叫流程权限表)控制的,这个表记录了一个正常的业务中,从下至上的处理人员/过程关联信息,并且有一个限定指标
- 最常见的是预算审批,比如购买某个产品,如果是2000元以内,则主管审批,如果超过2000元在8000元则需要经理签字(默认经理是主管的上级管理者),如果8000元以上20000元以下,则总监签字(默认为总监是经理的上级管理者),如果超过20000元,则需要总经理签字等
- 审批链表或流程权限表中,主要记录了业务类型、可签批级别或限额、上级管理者;比如所有人都可发起一个流程处理事务,但只有主管人员才有流程权限信息,发启流程后先至直接上级主管,如果直接上级主管不限额不够,则需进一步至上上级主管
生成工作流任务记录
- 任务表有负责人、发起人、业务类型、业务单号、任务表序号(任务表的主键字段)、业务单序号、状态、开启时间、完成时间、完成结果备注等字段
- 当一个需工作流处理的事件开始时,首先确认此事件的业务类型,以业务类型找到工作流的流程权限表信息,再依此信息一一对应生成任务表记录
- 任务表中,我们用为每件事务按流程权限表生成一个或多个不同任务记录,并从前至后标记任务序号排序,开启的第一个任务序号为1,一般我们固定一个100为结尾任务序号,一个流程一般不会超过100个不同级别的处理人,如果实际业务中超过可以将序号1000定义为结束序号
- 比如之前的例子中,我们购买一台16000元的设备,则一个采购人员发起一项审批业务、查询发起人审批类型的流程权限表发现需主管、经理审批,则生成3条工作流任务记录、第1条记录序号为1、要求主管批准;第2条记录序号为2、要求经理审批;第三条记录序号为100、要求总监审批
- 一般采购人员点击提交时,就会生成以上3条记录,同时将第一个任务表记录状态设为“开始”,添加一个开始时间,结束时间备注信息为空;其他后续任务记录状态为待定,开始时间结束时间备注信息为空
- 这是一个工作流提交时发起的界面
- 这是发起后数据库中生成的任务记录表
工作流事务处理逻辑
- 正常的带工作流任务的系统中,都有一个待处理事项页面或功能块,当用户登录系统时,会自动查询显示登录用户当前“开始”状态的任务记录(可以显示发起人、业务类型、业务单号、业务单序号、状态、开启时间),点击处理时,可以跳转至详情页面,详情页面无法修改内容,但有批准、不批准、转批处理按钮
- 批准按钮的功能有:将当前任务记录更新为“关闭”状态,更新任务记录完成时间为系统当前时间;检查此任务单序号下一序号(当前序号+1)任务记录,如果没有则直接找到序号为100的任务记录,状态值传入“开启”、系统当前时间传入开始时间后更新记录,这样下一个负责人就会在系统中看到需要处理的新任务
- 不批准时,可以添加一些备注信息关闭此任务单,将此事项的后续序号的任务记录更新为取消
- 转批处理时,只是复制一条当前任务记录,负责人变更、状态仍为“开启”,同时更新当前任务记录的状态为“转批取消”(可以自定义状态名称)
- 最后一个任务记录(序号为100)批准后,全部任务记录都是“关闭”状态,且更新原业务单,必要时开发原业务单的特定业务逻辑如自动发送一些订单等功能
工作流进度查询及跟催
- 每个事务处理过程中,发启人或主管都可以对发起的业务记录进行查询,并关联查询此事务的进度信息:此工作流业务对应的所有任务记录的列表信息,可以列出负责人、处理状态、开启处理时间、完成处理时间供参考,此功能中还可以设计跟催功能,让发启人或下级主管点击按钮自动发送一个提醒处理的邮件通知