流程定义与设计器
流程定义是工作流的可发布模板。设计器负责维护基础信息、表单来源、流程节点、分支条件和流程级高级设置;流程定义列表负责分类筛选、发布、禁用、复制、导入导出、版本管理和另存为模板。
入口
| 入口 | 用途 |
|---|---|
工作流引擎 → 流程定义 | 查看定义列表,创建、编辑、复制、发布、禁用、删除、导入导出、查看版本 |
/workflow/designer/:id | 编辑已有流程定义 |
/workflow/designer/new | 新建流程定义 |
工作流引擎 → 流程模板 | 从模板创建流程,或维护可复用模板 |
设计步骤
设计器按四步组织:
- 基础信息:流程名称、描述、分类、发起人范围。
- 表单设计:选择表单库表单、自定义业务表单或业务系统主导表单。
- 流程设计:配置审批节点、办理节点、抄送、分支、延迟、触发器、子流程等。
- 更多设置:撤回、重新提交、评论、通知、审批人自动去重和业务编号。
基础信息
| 配置 | 说明 |
|---|---|
| 流程名称 | 用户发起和审批时看到的名称 |
| 流程分类 | 用于定义列表、发起工作台和模板筛选 |
| 流程描述 | 展示用途和使用说明 |
| 发起人范围 | 支持全部人员、指定用户、指定部门、指定角色 |
发起人范围在用户发起时校验。用户不在范围内时,该流程不会成为可发起项或会被后端拒绝。
表单来源
| 类型 | 说明 |
|---|---|
designer 表单库设计器 | 绑定「表单库」中的可视化表单,通过内置渲染器发起、查看和审批 |
custom 自定义业务表单 | 绑定 packages/web/src/pages 下的 React 组件,数据存入流程实例 formData |
external 业务系统主导 | 业务模块自己保存业务数据,流程实例通过 bizType + bizId 关联业务记录 |
表单字段、变量、远程数据源和自定义业务表单契约见 表单、远程数据源与连接器。
流程节点
设计器以类钉钉/飞书的纵向流程树呈现。点击节点下方的加号添加节点,点击节点卡片打开右侧配置抽屉。
| 分组 | 节点 |
|---|---|
| 审批节点 | 审批人、办理人、抄送 |
| 分支节点 | 条件分支、并行分支、包容分支、路由分支 |
| 其它节点 | 延迟器、触发器、子流程 |
节点配置详情见 节点配置。
分支设计
| 分支 | 执行方式 |
|---|---|
| 条件分支 | 按分支顺序命中第一条满足条件的路径;默认分支作为兜底 |
| 并行分支 | 所有分支同时执行,全部完成后汇聚 |
| 包容分支 | 执行所有满足条件的分支;没有显式命中时进入默认分支 |
| 路由分支 | 通过决策表输出或运行时数据决定路径 |
条件规则可读取表单字段或发起人维度。发起人维度包含本人、部门、角色、岗位;部门匹配按包含子部门语义处理。
发布前工具
| 工具 | 说明 |
|---|---|
| 发布前体检 | 校验流程结构、审批人可解析性、分支覆盖、超时策略和表达式引用;画布仅对「严重」问题显示节点角标并阻断发布,警告/提示集中在此查看 |
| 流程仿真 | 使用表单数据、发起人和预设审批决策模拟路径,生成时间线、阻塞点和分支命中 |
| 仿真用例 | 按定义保存常用测试用例,后续可复用和覆盖 |
| 审批链路预览 | 发起前根据当前表单数据计算预期审批链路 |
| 版本对比 | 对比任意两个发布版本的定义、表单和流程图差异 |
发布与版本
发布流程会校验 flowData,保存版本快照,并把定义状态置为 published。每次实例发起都会冻结定义快照和表单快照,因此后续修改定义不会改变历史实例。
| 操作 | 说明 |
|---|---|
| 保存 | 保存为草稿 |
| 发布 | 保存当前快照并允许用户发起;存在「严重」问题时阻断发布并引导修复 |
| 禁用 / 启用 | 控制是否允许新发起 |
| 复制 | 复制定义为新的草稿 |
| 导入 / 导出 | 以自包含 JSON 迁移定义 |
| 恢复版本 | 从历史版本恢复为草稿,再编辑发布 |
更多设置
| 设置 | 说明 |
|---|---|
| 允许撤回 | 发起人可撤回运行中的实例 |
| 允许驳回后重新提交 | 被驳回或撤回后可克隆为新草稿重新提交 |
| 流程结束后通知发起人 | 结束时发送站内消息 |
| 自动去重 | 同一审批人在流程中重复出现时可不处理、全部后续自动通过或仅连续节点自动通过 |
| 允许流程中评论 | 实例详情显示沟通区,参与人可留言和提及 |
| 列表摘要字段 | 选择 ≤3 个表单字段,「待我审批」「我的申请」列表在标题下直接展示字段值(钉钉式卡片摘要) |
| 业务编号 | 支持结构化与自定义模板两种模式生成实例编号。结构化模式可配置前缀、日期格式、分隔符、后缀、序号位数、起始值、步长与重置周期;模板模式用占位符自由组合(如 BX-{YYYYMMDD}-{SEQ:4}),并支持发起人部门 {DEPT}/{DEPT_CODE}、账号 {USER}、昵称 {NICKNAME}、租户 {TENANT} 及表单字段 {FORM.字段} 等动态变量 |
| 通知渠道 | 站内信始终可用,可额外开启邮件和短信 |
设计建议
- 为关键节点设置稳定
key,便于事件订阅、诊断、退回和业务集成引用。 - 条件分支保留默认兜底,包容分支避免所有分支都无命中。
- 并行分支不要保留空路径,避免运行时等待永远无法汇聚。
- 对外呼、回调和子流程节点先用仿真和健康体检验证,再发布给业务用户。