Appearance
进阶教程:「审批配置表」
⇲审批节点 可自由设置审批人,但如果设置固定的审批人,便不方便处理因离职/转岗或流程变动,或需要根据 申请人
来指定特定的 审批人
等情况。
针对以上描述,本文将提供一个相对灵活的思路(以下称之为 自建审批配置表
),来处理以上涉及到的场景,让客户自行设置审批人,降低开发应用人员的负担。
思路阐述
通过自行建立 审批配置表
,在审批节点之前根据 特定条件
查询配置表,获取对应审批人特定规则
完全可以自行定义,根据 审批配置表
的设计不同而不同,灵活度极高
下文阐述则是一个相对通用的 审批配置表
的示例应用,可以适配大部分场景
示例场景描述
场景说明
OA系统中存在如下表:
- 审批配置
- 请假
- 报销
场景流程:
- 添加审批配置
- 模拟请求流程审批
- 模拟报销流程审批
注意
表单中与审批非必要关联的控件已全部略过,仅保留必要控件和部分差异描述控件
1.创建记录表单
1.1.审批配置
为单据类型添加两个选项: 请假、报销
提示
此处以请假、报销两个场景做示例应用,实际场景中可以自行更改具体内容

注意
此示例为演示方便,仅设置了三级审批人,实际情况可以按照需要追加控件,此处没有任何限制。
1.2.请假
可设置申请人默认值为当前成员

1.3.报销
可设置申请人默认值为当前成员

2.创建工作流
2.1.表单事件触发-请假
提示
此处简化审批流程,仅保留一个审批节点,和 报销
的审批流程区分开
创建请假的表单触发工作流,当新增记录后,即为 发起审批

添加 查询记录
:获取审批配置信息

添加 审批节点

2.2.表单事件触发-报销
提示
几乎是与 ⇲2.1.表单事件触发-请假 相同的工作流,只是多了一个审批节点
创建报销的表单触发工作流,当新增记录后,即为 发起审批

添加 查询记录
:获取审批配置信息

添加两个审批节点,分别为 一审
、 二审
审批节点:一审

审批节点:二审

3.触发工作流事件
提示
因为审批演示涉及内容过多且臃肿,此节采用审批结果来说明触发过程
3.1.创建审批配置
注意
审批配置表需要细心维护,若是未查询到审批配置,则 无审批人
时,审批节点会自动通过,无需审批
如果需要避免此类情况,可参考后文扩展内容: ⇲扩展:无审批配置时,拒绝发起审批

3.2.请假流程
请假审批通过后,审批日志

工作流日志详情:

3.3.报销流程
报销审批通过后,审批日志

工作流日志详情:

4.扩展延伸
注意 1
此部分为扩展内容,基于前文来做部分更改,以达到目的需求
阅读此节时,请确保您已经理解前文讲述的核心内容
注意 2
拓展小节重在说明思路与核心实现,暂不提供使用用例,但均为 完整的功能实现
,并非残缺无效模块
若希望看到实现效果,可以按照下面改写方式,严格按照文档指示在 前文应用中
修改即可
确认 理解思路
后,再自行根据实际需求改写工作流
4.1.当发起人是审批人时,略过审批节点
以 ⇲2.2.表单事件触发-报销 为基础,改写 一审
流程。
思路整理
审批发起时,表单中存在
申请人
,此人作为我们的判断条件,即发起人
。比对
查询记录
中获取到的一级审批人
,若两者相同,或者说,一级审批人
中包含发起人
,则认为两者相同这里我们有两种处理方式,罗列如下:
提示
下面仅展示两种方式的思路差异,其余共同流程均省略掉
- 方式一:直接使用
分支
节点绕过一审
审批节点。此方式最为直接,且不会在日志中留下一审
节点的审批日志,简单场景下可用。思路如下:
- 方式二:使用
流程参数
节点,将审批人更新进该节点参数中,一审
从此参数中获取审批人。此方式会让一审
节点在审批日志中留痕,确保总是经过了此节点,利用审批节点审批人为空时,便无需审批直接通过
(⇲审批节点)的特性,来处理略过需求
,相对稳妥且安全,适合复杂场景。
- 方式一:直接使用
下面会展示基于 方式二 的实现方式,来改写 报销 工作流
添加 流程参数
:定义 审批人
暂存位置

添加 分支
:保留一个 如果分支
和一个 其他分支
提示
鼠标悬浮时,弹框显示了该 查询字段 / 比较对象
的数据来源。

添加 更新参数
同一人时,设为空

并非同一人时,设为 一级审批人

修改 审批 - 一审
:将 流程参数 - 成员
设为 审批人

4.2.无审批配置时,拒绝发起审批
以 ⇲1.2 小节的请假表单 为基础,添加 表单触发工作流
思路整理
前景提要:当前表单提交成功后,便会发起审批流程;如果 没有
对应的审批配置,那么由于审批节点的特性 ( 审批人为空时,自动通过审批
),便会使该单据类型的审批全员通过。
为了避免这一情况的发生,必须在 审批发起前
,检查是否存在对应的审批配置, 无配置则不允许启动审批流程
。
对应到本文的具体实现,如下流程图:
提示
下文给出了 请假
的新增前检查,关于 报销
的新增前检查可以 如法炮制
创建新的表单触发工作流,设置为 新增前

添加 查询记录
:查询配置,作为 指定单据
是否具备审批条件的依据

添加 分支
:保留一个 如果分支
和一个 其他分支
,如果分支设置条件为 配置存在
提示
只要查询记录的 记录ID非空
,则说明 配置存在

添加 系统通知
:通知操作成员,审批配置不存在

添加 流程中断
:不存在配置时则不允许新增记录

4.3.在列表上显示"当前审核人"
通常情况下,我们没法直接从 审批
节点中获取到当前审批人,但现在配合 审批配置表
,我们可以做到这一点,下面一个流程图简要说明了 有/无审批配置表
的工作流差异
提示
由上图可知,平台无法在 未执行 审批节点时,获取到节点内部的信息;在审批节点 执行后,即便拿到了审批节点内部的信息,由于审批已经执行完毕,该信息只能是 审批人 或 前一审批人 而非 当前审批人。
当 存在 审批配置表的时候,我们可以提前从表中获取到当前审批人,同时将 当前审批人 更新进表单的记录和审批节点中,那么便可以做到 在表记录中显示当前审批节点中的审批人 的目的了。
本节便以 表单 (⇲1.2.请假)、工作流 (⇲2.1.表单时间触发 - 请假) 为例,来说明需要添加的内容。
修改 请假
表单:添加成员控件,命名为 当前审批人
可选设置
勾选 新增/编辑不可编辑
、新增时隐藏
这几项对使用体验更友好,但不勾选可以更方便测试。

添加更新节点 :在原 查询节点
与 审批节点
之间,添加更新节点,用于将查询的审批人更新进记录的 当前审批人控件
中。

提示
在前文基础上,仅需修改这两个地方,便可以完成 当前审批人
的显示
审批节点之后,这个控件怎么设计/展示,可根据实际场景需求自由发挥。