工作流:取消审批
当业务单据已经撤回、作废或失效,相关审批却仍停留在待处理状态时,容易造成“单据已经不能办理,审批人仍可继续审批”的流程脱节。
工作流:取消审批会在业务单据状态变化时,自动终止该单据关联的进行中审批,让审批状态与实际业务状态始终一致。审批人无需再手工处理已经失效的待办,业务人员也不用逐条查找和关闭审批。
能为企业解决什么问题
Section titled “能为企业解决什么问题”| 常见问题 | 使用插件后的效果 |
|---|---|
| 订单、合同、费用申请等单据已经撤回或作废,审批任务仍在待办列表中 | 单据状态变更后,关联的进行中审批会自动作废,待办不再可处理 |
| 业务人员需要手工联系审批人停止审批,容易遗漏或重复沟通 | 通过工作流统一处理,无需逐位通知审批人 |
| 已失效单据被继续审批,导致后续业务操作出现误判 | 审批状态与业务单据状态保持同步,减少无效审批和错误操作 |
| 同一单据可能发起多个审批流程 | 可一次取消全部进行中审批,也可只取消指定审批流程 |
插件只处理仍在进行中的审批。已经通过、拒绝、完成或此前已作废的审批记录会被保留,不会篡改既有业务历史。
使用后的流程效果
Section titled “使用后的流程效果”整体流程如下:
- 业务人员或系统将单据更新为“已撤回”“已作废”“已取消”等状态。
- 工作流识别该状态变化,找到这条单据关联的进行中审批。
- 插件终止对应审批执行,并同步更新审批及待办状态。
- 审批人看到的相关待办不再可处理,业务单据与审批记录保持一致。
- 已安装并启用 NocoBase 工作流插件。
- 已安装并启用 NocoBase 审批插件。
- 已在对应业务数据表中建立审批流程。
- 建议由熟悉业务规则的工作流管理员进行配置。
推荐配置方式
Section titled “推荐配置方式”以“单据作废时自动取消审批”为例:
- 在需要管理的业务数据表上,新建一个数据表事件工作流。
- 设置触发条件:仅当单据状态变为“已作废”“已撤回”或企业定义的失效状态时执行。

- 在工作流中添加 取消审批 节点。

- 配置节点字段:
| 配置项 | 填写方式 | 作用 |
|---|---|---|
| 数据表 | 选择当前业务单据所在的数据表 | 告知插件在哪个业务对象中查找关联审批 |
| 单据主键 | 选择触发器中的当前单据主键 | 精确定位需要取消审批的那一条业务单据 |
| 审批工作流标识(key) | 可留空;需精确控制时填写目标审批工作流标识 | 留空时取消该单据的全部进行中审批;填写后仅取消指定流程 |

- 保存并启用工作流。
- 用一条处于审批中的测试单据执行作废或撤回操作,确认审批和待办均变为已终止。


- 明确触发条件:只在单据真正失效时执行,避免普通编辑误触发取消审批。
- 多审批流程场景:若单据上存在多个相互独立的审批流程,建议填写“审批工作流标识”,只关闭应停止的流程。
节点执行后的返回值
Section titled “节点执行后的返回值”取消审批节点成功执行后,会将处理结果作为节点结果输出。后续节点可通过工作流变量选择器读取这些字段,例如用于记录日志、发送通知或判断是否还有需要人工跟进的审批。
| 返回字段 | 说明 |
|---|---|
matchedApprovals | 找到的审批记录总数,包含本次已取消、此前已作废和已经结束的审批。 |
canceledExecutions | 本次实际成功取消的进行中审批执行数量。 |
skippedExecutions | 本次未处理的审批执行数量,始终等于 skipped 列表的条目数。 |
skipped | 未处理项的明细列表,每一项包含审批工作流标识和未处理原因。 |
节点结果示例:
{ "matchedApprovals": 2, "canceledExecutions": 1, "skippedExecutions": 1, "skipped": [ { "workflowKey": "order-approval", "reason": "already_terminal" } ]}skipped 中每一项的字段说明如下:
| 字段 | 说明 |
|---|---|
workflowKey | 对应审批工作流的标识,可用于判断是哪一个审批流程未被处理。 |
reason | 未处理原因。already_aborted 表示审批已作废;already_terminal 表示审批已通过、拒绝、完成或失败;state_changed 表示取消过程中审批状态已变化。 |
当 matchedApprovals 和 canceledExecutions 都为 0 时,表示该单据没有正在进行的审批。节点仍会正常执行完成,适合在业务流程中重复调用。

处理规则与边界
Section titled “处理规则与边界”| 情况 | 插件行为 |
|---|---|
| 单据存在进行中的审批 | 终止审批执行,并将相应审批及待办更新为已终止 |
| 单据没有进行中的审批 | 正常结束,不会报错 |
| 审批已经通过、拒绝、完成或失败 | 保留历史记录,不做修改 |
| 审批已经作废 | 不重复处理 |
| 在审批工作流内部配置该节点 | 不支持,系统会阻止此配置,避免审批取消自身 |