Skip to content

进阶教程:「审批配置表」

⇲审批节点 可自由设置审批人,但如果设置固定的审批人,便不方便处理因离职/转岗或流程变动,或需要根据 申请人 来指定特定的 审批人 等情况。
针对以上描述,本文将提供一个相对灵活的思路(以下称之为 自建审批配置表 ),来处理以上涉及到的场景,让客户自行设置审批人,降低开发应用人员的负担。

思路阐述

通过自行建立 审批配置表 ,在审批节点之前根据 特定条件 查询配置表,获取对应审批人
特定规则 完全可以自行定义,根据 审批配置表 的设计不同而不同,灵活度极高
下文阐述则是一个相对通用的 审批配置表 的示例应用,可以适配大部分场景

示例场景描述

场景说明

OA系统中存在如下表:

  1. 审批配置
  2. 请假
  3. 报销

场景流程:

  1. 添加审批配置
  2. 模拟请求流程审批
  3. 模拟报销流程审批

注意

表单中与审批非必要关联的控件已全部略过,仅保留必要控件和部分差异描述控件

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.表单事件触发-报销 为基础,改写 一审 流程。

思路整理

  1. 审批发起时,表单中存在 申请人 ,此人作为我们的判断条件,即 发起人

  2. 比对 查询记录 中获取到的 一级审批人 ,若两者相同,或者说, 一级审批人 中包含 发起人 ,则认为两者相同

  3. 这里我们有两种处理方式,罗列如下:

    提示

    下面仅展示两种方式的思路差异,其余共同流程均省略掉

    • 方式一:直接使用 分支 节点绕过 一审 审批节点。此方式最为直接,且不会在日志中留下 一审 节点的审批日志,简单场景下可用。思路如下:
    • 方式二:使用 流程参数 节点,将审批人更新进该节点参数中, 一审 从此参数中获取审批人。此方式会让 一审 节点在审批日志中留痕,确保总是经过了此节点,利用审批节点 审批人为空时,便无需审批直接通过⇲审批节点)的特性,来处理 略过需求,相对稳妥且安全,适合复杂场景。

下面会展示基于 方式二 的实现方式,来改写 报销 工作流

添加 流程参数 :定义 审批人 暂存位置


添加 分支 :保留一个 如果分支 和一个 其他分支

提示

鼠标悬浮时,弹框显示了该 查询字段 / 比较对象 的数据来源。


添加 更新参数

同一人时,设为空

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


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


4.2.无审批配置时,拒绝发起审批

⇲1.2 小节的请假表单 为基础,添加 表单触发工作流

思路整理

前景提要:当前表单提交成功后,便会发起审批流程;如果 没有 对应的审批配置,那么由于审批节点的特性 ( 审批人为空时,自动通过审批 ),便会使该单据类型的审批全员通过。

为了避免这一情况的发生,必须在 审批发起前 ,检查是否存在对应的审批配置, 无配置则不允许启动审批流程

对应到本文的具体实现,如下流程图:

提示

下文给出了 请假 的新增前检查,关于 报销 的新增前检查可以 如法炮制

创建新的表单触发工作流,设置为 新增前


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


添加 分支 :保留一个 如果分支 和一个 其他分支,如果分支设置条件为 配置存在

提示

只要查询记录的 记录ID非空 ,则说明 配置存在


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


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

4.3.在列表上显示"当前审核人"

通常情况下,我们没法直接从 审批 节点中获取到当前审批人,但现在配合 审批配置表 ,我们可以做到这一点,下面一个流程图简要说明了 有/无审批配置表 的工作流差异

提示

由上图可知,平台无法在 未执行 审批节点时,获取到节点内部的信息;在审批节点 执行后,即便拿到了审批节点内部的信息,由于审批已经执行完毕,该信息只能是 审批人前一审批人 而非 当前审批人

存在 审批配置表的时候,我们可以提前从表中获取到当前审批人,同时将 当前审批人 更新进表单的记录和审批节点中,那么便可以做到 在表记录中显示当前审批节点中的审批人 的目的了。

本节便以 表单⇲1.2.请假)、工作流⇲2.1.表单时间触发 - 请假) 为例,来说明需要添加的内容。

修改 请假 表单:添加成员控件,命名为 当前审批人

可选设置

勾选 新增/编辑不可编辑新增时隐藏
这几项对使用体验更友好,但不勾选可以更方便测试。


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

提示

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