流程审批设计
10年有幸接触了HP的一套PAAS平台,里面有一套关于工作流、审批流的设置模块。公司如今做的这个项目也实用到审批流。这中间磕磕碰碰的遇到不少问题,但最后也小有收获,趁着周末闲暇时间,把一些细节方面上的事分享出来,一来是对前期的工作有个总结;二来抛砖引玉想多听听大家的意见,开拓开拓思路,和大家共同成长进步。
先来看看关于工作流、审批流的定义:
(1)PAAS平台工作流&审批流的定义:
工作流:可自己定义的一种自己主动运行的工作流程,由表单数据发生改变时触发,同一时候触发关联多种不同的事物。
审批流:可自己定义的一种审批流程,须要用户手动批示是否同意进入下一步,触发审批流程规则须要满足审批申请人和数据筛选条件。
(2)百度百科工作流&审批流的定义:
工作流:在多个参与人员之间依照事先定义好的规则传递信息、文档或任务的过程自己主动运行,从而实现某个预期的业务目标,或者促使该目标的实现。
工作流的优点:
(1)降低了记录分配,任务指派过程中很多不必要的操作;
(2)通过标准化流程提高工作效率;
工作流应用场景:当新增客户信息时,区域A的客户自己主动分配给业务员A,区域B的客户自己主动分配给业务员B,并发送邮件或者短息通知相关业务员。
审批流:审批流定义节点用来为某个详细的业务单据或某个详细单据的一个业务类型进行审批流程的定义。被定义了审批流程的单据将依照定义的审批流程被传递和审批。这一完整的过程就称为审批流。
概述:通常的流程一般分为2个层次来讲:流程、步骤(活动或者节点):
(1)流程就是某一详细的业务流程(请假审批流程,财务报销审批流程);
(2)步骤(活动或者节点)就是一种特定业务类型的封装;
一套完整的审批流程、工作流程大体上包含:
(1)流程定义;
(2)步骤定义:触发规则;操作人;运行动作(发起申请、撤回);运行操作(任务通知、邮件提醒、字段更新、转移数据、转换表单、传送接口);
(3)步骤反复:触发规则;操作人(串行/并行);运行动作:(审批处理:通过、拒绝(退回、否决)、撤回);运行操作:允许、拒绝同一时候包含(任务通知、邮件提醒、字段更新、转移数据、转换表单、传送接口);
(4)流程结束;
名词解释:
第一:操作人处理
(1)串行:上一处理人指定某一处理人时,其它拥有此步骤权限的操作员不可进行查看和操作,必须当前处理人处理完成后,流程才干继续;
(2)并行:由上一处理人指定固定多个处理人时,由任一员工处理就可以,不分前后顺序,所有处理完毕,进入下一步骤;
这里有2点须要说清楚:
(a)多人处理分为:一人通过(当中一人进程审批处理就可以)、多人通过(全部审批人都须要进行审批处理)2种情况,请依据自己的业务详细选择;
(b)设定审批人分为:由提交人指定、自己主动依照角色层级关系分配、选择审批人3种情况,请依据自己的业务详细选择;
两者的相应图例如以下:
第二:运行动作
(1)申请:针对当前业务表单信息发起申请,开始审批流程的传递。分为2部分:由申请提交人手动发起申请、由程序自己主动推断满足触发规则的数据自己主动发起申请;另外还要注意的2点:是否同意提交人撤消(是、否)、记录编辑(不可编辑、管理员可编辑、管理员和审批人都可编辑 );
(2)通过:当前步骤处理通过,进入下一步骤,若为末步骤,则流程处理完毕;
(3)退回:将步骤退回至上一步骤,即返回至上一处理人处,若为首步骤,则不进行退回;
(4)否决:将步骤直接结束,运行结束动作拒绝活动,不再进行操作,或者回退至第一步骤;
(5)撤回:若当前步骤已处理,下一处理人未处理的情况下可进行撤回操作。
上面须要注意的是:拒绝的时候是采用“退回”还是“否决”动作。以下几种情况的相应图:
第三:运行操作
(1)任务通知:定义的系统内任务自己主动生成,能够由定义好的流程调用,在流程运行到适当时机发送系统内任务通知相关人员;
(2)邮件提醒:定义给系统内部和外部人员发送邮件提醒的事务。能够在工作流和审批流中调用,在流程运行到适当时机发送邮件通知流程相关人员;
(3)数据更新:用于流程运行的事务,能够在流程运行到指定位置,依照设置好的数据更新规则,指定更新本表单或关联表单的数据;
(4)表单转换:设置一个表单的数据,按转换模板映射生成还有一个或几个表单数据。假设表单带有子表单数据,也能够设置子表映射转换到相应表单的子表单;
(5)数据转移:能够将表单数据转移给设置好的目标用户。能够在工作流和审批流中,须要转移数据的环节调用此数据转移;
(6)传输接口:工作流和审批流假设须要将流程结果触发到第三方系统。
完整的审批流程必须考虑到企业的业务需求、设计审批的人员角色和属性、流程的逻辑关系等。
审批流程设计通常包含:
1.审批过程的识别,相关人员的职责和权限;
2.审批的目的和需要达成的目标,需要管控的内容,相关审批内容的来源;
3.制定审批管理程序;
4.设计审批流程和制作审批的表单;
5.试运行;
6.根据试运行的效果,变更审批流程和表单’
1、打开钉钉。
2、在弹出的浏览器里用管理员密码登陆。
3、登陆好管理后台再点击工作台。
4、在工作台里点击。
5、在审批里找到补卡申请那一栏,点击小红框里的审批流程。
6、在审批流程里的默认审批流程里可以设置审批人,审批方法,和抄送人。
7、点击默认审批人后面的小+号就能在弹出的页面里设置审批人和审批方式,设置好要记得打上当本级审批人空缺时自动由上级审批的那个小勾,最后点击确定。
8、点击默认抄送人后面的小+号在弹出的页面里可以设置抄送人。
9、点击左边红框里的组织架构找到需要抄送的人在名字前的小框里打上勾,就能在右边的看到,若想取消则点击右边抄送人名字后的小叉。设置好后点击确定。
10、当特殊人员需要申请补卡时,可以在分条件审批里设置,点击添加就能在弹出的页面里设置条件审批方案。
11、条件可以设置特定申请人,点击修改就可以选择对应的申请人。对应审批人那里只要点击审批和抄送人后面的加号就可以设置审批人和抄送人。
12、检查一遍所有流程都设置好后,就可以点击下方的保存来让流程生效。也可以点击保存旁边的流程检查然后用手机扫码来试用检查一遍。
1、打开钉钉。
2、在弹出的浏览器里用管理员密码登陆。
3、登陆好管理后台再点击工作台。
4、在工作台里点击。
5、在审批里找到补卡申请那一栏,点击小红框里的审批流程。
6、在审批流程里的默认审批流程里可以设置审批人,审批方法,和抄送人。
7、点击默认审批人后面的小+号就能在弹出的页面里设置审批人和审批方式,设置好要记得打上当本级审批人空缺时自动由上级审批的那个小勾,最后点击确定。
8、点击默认抄送人后面的小+号在弹出的页面里可以设置抄送人。
9、点击左边红框里的组织架构找到需要抄送的人在名字前的小框里打上勾,就能在右边的看到,若想取消则点击右边抄送人名字后的小叉。设置好后点击确定。
10、当特殊人员需要申请补卡时,可以在分条件审批里设置,点击添加就能在弹出的页面里设置条件审批方案。
11、条件可以设置特定申请人,点击修改就可以选择对应的申请人。对应审批人那里只要点击审批和抄送人后面的加号就可以设置审批人和抄送人。
12、检查一遍所有流程都设置好后,就可以点击下方的保存来让流程生效。也可以点击保存旁边的流程检查然后用手机扫码来试用检查一遍。
用户想要要导出数据的时候,选择审批人,提交申请,
向导出申请表插入需要提交审批的数据,向导出条件表插入申请导出数据的查询条件,向审批记录表插入审批数据对应的审批人
等待审批通过时才可以导出
用户想要导入数据时,先把数据存到表里面,选择审批人,提交申请,等待审批通过时,将数据的状态改为有效数据
涉及到了表结构的设计
审批主体流程大概设计到了四张表,分别是
1.审批流程表:
id VARCHAr2(32) not null
process_code VARCHAr2(32)
process_name VARCHAr2(32)
page_code VARCHAr2(32)
page_name VARCHAr2(32)
type_code VARCHAr2(32)
type_name VARCHAr2(32)
process_status VARCHAr2(32)
process_time DATE
process_user VARCHAr2(32)
process_level VARCHAr2(32)
area_id VARCHAr2(32)
area_name VARCHAr2(32)
2.审批节点表:
id VARCHAr2(32) not null,
node_codeVARCHAr2(32),
node_nameVARCHAr2(32),
process_code VARCHAr2(32),
node_level VARCHAr2(32),
node_status VARCHAr2(32),
node_timeDATE,
node_userVARCHAr2(32)
3.审批记录表:
id VARCHAr2(32) not null,
record_code VARCHAr2(100),
process_code VARCHAr2(100),
data_codeVARCHAr2(100),
node_codeVARCHAr2(32),
node_result VARCHAr2(32),
node_remark VARCHAr2(32),
node_userVARCHAr2(32),
node_timeDATE,
record_date DATE,
record_user VARCHAr2(32)
4.审批人员表:
id VARCHAr2(32) not null,
user_code VARCHAr2(32),
user_name VARCHAr2(32),
role_code VARCHAr2(32),
node_code VARCHAr2(32),
user_status VARCHAr2(32),
user_date DATE not null,
user_user VARCHAr2(32),
user_phone VARCHAr2(32)
导出涉及的表
1.导出申请表
2.导出申请条件表
导入涉及的表
1.导入数据表