工作流引擎总览
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,同节点同轮同处理人的活动任务唯一 |
执行 Token workflow_tokens | 显式 DAG 执行路径,表示活动分支、汇聚状态和可恢复的推进位置;同节点同分支路径的 active Token 唯一 |
作业账本 workflow_jobs | 延时唤醒、审批超时、触发器派发、外部审批、子流程、事件派发、Webhook 投递、补偿动作的统一异步队列 |
作业执行 workflow_job_executions | 每次作业尝试的审计记录,保存请求、响应、错误、耗时和执行状态 |
补偿工单 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,语义为「已送达」,界面显示「已抄送」 |