工作流引擎总览
Zenith Admin 的工作流引擎用于把表单、审批、自动节点、外部系统联动和运行态运维组织成一套可配置的流程平台。用户侧围绕「发起、处理、查看」工作,流程管理员侧围绕「定义、发布、集成」工作,运维人员侧围绕「监控、诊断、恢复」工作。
菜单与角色入口
工作流引擎在后台按实际菜单分为三组:
| 菜单组 | 主要入口 | 适用角色 |
|---|---|---|
| 审批中心 | 发起工作台、待我审批、我的申请、抄送我的、我已办、审批代理 | 全体业务用户与审批协作者 |
| 流程管理 | 流程定义、流程模板、表单库、流程自动化、定时发起 | 流程管理员 |
| 运维与集成 | 流程监控、健康巡检、事件订阅、触发器执行、远程数据源、连接器 | 运维人员与集成管理员 |
管理入口会继续受菜单权限和工作流功能权限控制;普通用户通过发起工作台、个人申请和待办入口使用流程,不需要访问定义管理页面。
首次使用可从快速开始与角色入口选择操作路径,开发人员可从引擎架构与执行模型了解运行对象和实现边界。
功能地图
| 模块 | 页面 / 能力 | 说明 |
|---|---|---|
| 发起工作台 | 审批中心 → 发起工作台、整页深链 /workflow/launch/:id | 顶部「我的审批概览」包含待我审批、待我协办、抄送未读、退回待修改、我的草稿、审批中六张卡片,待办卡片内显示超时数量;下方按分类浏览可发起的已发布流程,提交申请或保存草稿 |
| 定义与设计 | 流程定义、流程设计器、流程模板、流程分类 | 管理流程定义、版本、导入导出、模板复用、发布前体检、流程仿真、未保存更改守卫,以及路由分支绑定规则中心决策资产 |
| 表单能力 | 表单库、自定义业务表单、业务系统主导表单、远程数据源 | 支持可视化表单、React 自定义页面、bizType + bizId 业务关联和远程选项;业务表单内展示提交前预览、实际流程和往次审批;审批表单附件按工作流身份上传 |
| 运行协作 | 我的申请、待我审批、抄送我的、我已办、审批代理 | 覆盖草稿、撤回、重新提交、审批、驳回、转办、委派、协办、加签、减签、退回、催办、动态抄送;待办按任务组织,协作动作带重复处理人预检 |
| 移动审批轻页 | /approval.html(独立 SPA,头像菜单 → 移动审批) | 移动优先的待办/已办/我的申请/抄送我 TabBar、极速同意、批量同意、连续审批、发起申请与移动端人员选择器,详见移动审批轻页 |
| 自动节点 | 延迟器、触发器、子流程、抄送、异常捕获 | 自动暂停、外呼、等待回调、数据回写、发起子流程、分支汇聚、异常路由,以及节点级失败策略(重试 / 补偿 / 兜底 / 恢复,见补偿 / Saga) |
| 集成能力 | 事件订阅、节点监听器、外部审批、连接器、规则中心 | 通过 HMAC 签名、连接器鉴权、重试、熔断和决策表 / 评分卡 / 决策流对接外部系统与规则资产 |
| 自动化与定时 | 流程自动化、定时发起 | 在实例创建/结束时执行联动动作,或按 Cron 由指定发起人自动发起流程;两者使用不同的模板变量和执行记录 |
| 监控运维 | 流程监控、任务监控、数据分析、健康巡检、引擎诊断、作业账本、补偿工单 | 观测实例、人工任务、执行 Token、异步作业、事件投递、子流程、效率瓶颈和健康趋势;提供双向 Token 一致性诊断、留痕式强制干预与恢复动作 |
设计到运行
- 管理员创建流程定义,选择表单来源,并在设计器里配置节点、分支、审批人和高级设置。
- 发布流程定义后保存版本快照;新发起、草稿提交和退回重提从当前已发布定义与当前绑定表单建立实例快照,运行实例使用自己的快照。
- 用户在发起工作台或业务模块中提交申请,实例进入
running,引擎从开始节点推进。 - 人工节点生成
workflow_tasks待办;自动节点生成或消费统一作业账本中的workflow_jobs。 - 路由分支可先通过规则中心的决策表、评分卡或决策流求值,输出结果会合并进实例
formData后再参与路径选择。 - 节点完成后产生事件,事件由统一作业分发到进程内订阅者、Webhook 订阅、通知和自动化规则。
- 实例完成、驳回、退回、撤回或取消后离开当前执行位置,并对活动任务、执行 Token 和在途推进作业做全量清场;监控页保留详情、轨迹、诊断和恢复入口。
核心数据对象
| 对象 | 说明 |
|---|---|
流程定义 workflow_definitions | 流程模板本体,包含基础信息、表单配置、流程图 flowData、状态和发起范围 |
定义版本 workflow_definition_versions | 每次发布保存的定义快照,用于版本对比、恢复和历史实例解释 |
流程实例 workflow_instances | 一次申请的运行记录,保存标题、发起人、状态、表单数据、快照、业务关联和当前节点 |
流程任务 workflow_tasks | 人工审批、办理、抄送、等待回调、延迟、子流程等运行节点的任务记录;带激活轮次 activationId,同节点同轮同处理人的活动任务唯一 |
| 节点轮次、席位与加签组 | workflow_node_activations 冻结当次审批条件,workflow_approval_slots 保存正式意见,workflow_sign_groups 保存前签、后签和并签关卡 |
执行 Token workflow_tokens | 显式 DAG 执行路径,表示活动分支、汇聚状态和可恢复的推进位置;同节点同分支路径的 active Token 唯一 |
作业账本 workflow_jobs | 延时唤醒、审批超时、触发器、外部审批、子流程、事件派发、Webhook、补偿动作、自动化动作和定时发起的统一异步账本 |
作业执行 workflow_job_executions | 每次作业尝试的审计记录,保存请求、响应、错误、耗时和执行状态 |
作业步骤回执 workflow_job_effects | 保存已经提交的事务步骤结果,重试时复用;外部请求副作用标记记录在执行尝试中 |
补偿工单 workflow_compensations | 失败策略产生的人工处置工单,记录失败节点、错误、自动动作状态和处理历史 |
事件订阅 workflow_event_subscriptions | HTTP Webhook 订阅配置,可按流程定义和事件类型过滤 |
连接器 workflow_connectors | 外呼基础配置、凭据、限流、重试、熔断和调用审计 |
运行状态
流程定义
| 状态 | 说明 |
|---|---|
draft | 草稿,可编辑,不可发起 |
published | 已发布,可按发起范围被用户使用 |
disabled | 已禁用,不再允许新发起,历史实例不受影响 |
发布与启用共用同一套体检硬门禁;已发布/已禁用的定义被修改后自动回到草稿,需重新发布。
流程实例
| 状态 | 说明 |
|---|---|
draft | 用户保存但尚未提交的申请 |
running | 正在流转 |
suspended | 管理员挂起,待办与自动推进作业暂停,恢复后续跑 |
returned | 驳回退回发起人,待发起人修改后在原实例重新提交 |
approved | 所有路径完成并通过 |
rejected | 节点驳回并按策略终止 |
withdrawn | 发起人撤回 |
cancelled | 管理员强制取消 |
流程任务
| 状态 | 说明 |
|---|---|
pending | 等待处理人操作 |
waiting | 等待顺序会签、延迟、触发器回调、外部审批或子流程汇聚 |
approved | 已通过或自动通过 |
rejected | 已驳回 |
skipped | 被联动跳过或清场作废,任务备注记录来源(或签/比例会签联动、同节点拒绝、退回发起人、撤回、取消、自动拒绝、流程结束、管理员跳转);抄送任务落库即为 skipped,语义为「已送达」,界面显示「已抄送」 |