审批处理扩展
要求
适用环境
- 私有部署
- Web
ONES 系统版本
v7.22.0+
依赖包版本
package.json
{
"devDependencies": {
"@ones/cli-plugin": "1.70.55"
},
"dependencies": {
"@ones-op/bridge": "^1.0.0",
"@ones-op/fetch": "1.70.55",
"@ones-op/node-types": "^1.0.0",
"@ones-op/sdk": "1.70.55",
"react": "~17.0.2",
"react-dom": "~17.0.2"
}
}
能力概述
审批处理扩展允许插件参与审批规则配置 、同意或拒绝操作,以及审批流程结果展示。插件可以在这些接入点实现自己的业务处理,例如补充业务确认、调用外部系统、生成业务凭证或展示扩展处理结果。
具体业务形态由插件自行定义。ONES 只提供标准接入位置和调用合同,不限定插件必须实现某一种业务。
一个审批规则最多绑定一个审批处理 Provider。审批状态、审批意见和流程推进仍由 ONES 管理;插件产生的业务状态和结果由插件自行保存和解释。
能力边界
- 只支持接管
approve(同意)和reject(拒绝)。 - 加签、转交和撤销继续执行 ONES 标准流程。
- 单条审批和批量审批使用同一个操作接管插槽。
- 当前版本只提供 Web 插槽,不支持移动端或 H5。
- 插件必须在当前审批页面内完成业务处理并调用宿主提供的
onSubmit。 - 不支持页面跳转恢复、新窗口恢复或插件服务端异步回调自动推进审批。
- 插件不能直接修改 ONES 审批数据,也不能绕过
onSubmit自行调用内部审批接口。
工作原理
审批处理扩展包含三个前端插槽和一个后端校验函数:
| 接入点 | 名称 | 作用 |
|---|---|---|
| 规则配置插槽 | ones:approval:rule-plugin-settings | 在审批规则“更多设置”中配置插件接管范围和业务设置 |
| 操作接管插槽 | ones:approval:operation-takeover | 用户点击同意或拒绝时展示插件界面 |
| 流程展示插槽 | ones:approval:flow-row-extra | 在审批流程最后一列展示插件业务结果 |
| 后端校验函数 | validate | 在 ONES 写入审批意见前校验插件业务是否已经完成 |
完整处理过程如下:
- 管理员在审批规则中选择插件,并通过规则配置插槽保存
enabledActions和settings。 - ONES 将配置随审批规则版本保存。审批单创建后继续使用创建时冻结的规则版本和配置。
- 审批人点击已接管的同意或拒绝时,ONES 不再打开标准意见弹层,而是加载操作接管插槽。
- 插件完成并保存自己的业务结果,然后调用宿主
onSubmit({ comment })。 onSubmit继续执行 ONES 标准审批请求。ONES 后端在写入审批意见前调用插件validate。validate通过后,ONES 保存审批意见并推进流程;失败时阻断当前审批项。- 打开审批详情时,ONES 按流程行加载展示插槽,插件从自己的后端查询并渲染结果。
信息
插件必须先保存业务结果,再调用 onSubmit。因为 onSubmit 执行期间,ONES 后端会立即调用插件的 validate。