流程模型
一句话:流程模型是一条审批流的「母版」——把基本信息、表单、流程图、更多设置四部分装配好,保存并发布出可被员工实际发起的版本;流程的新建、修改、发布、停用、版本回退全部在这一页完成。
功能在哪
- 菜单路径:工作流程 → 流程管理 → 流程模型
- 地址栏路由:
/bpm/manager/model - 主要权限:
bpm:model:query/create/update/delete/export/import;发布与启停复用update;历史版本页另需bpm:process-definition:query
界面认识
列表不是一张大平表:先按流程分类分成一个个面板(面板标题是分类名),面板内才是模型表格;面板标题右侧还有该分类自己的下拉菜单(重命名 / 删除该类)。
| 区域 | 作用 | 常用操作 |
|---|---|---|
| 工具条 | 整页级动作 | 「新建模型」「导入模型」;设置菜单里「新建分类」「分类排序」(跳流程分类页) |
| 搜索框 | 按流程名过滤 | 「搜索流程」输入后回车 |
| 分类面板 | 一个分类一个面板 | 分类下拉:「重命名」「删除该类」 |
| 模型表格 | 流程名 / 可见范围 / 流程类型 / 表单信息 / 最后发布 / 操作 | 行内「修改」「复制」「发布」;「更多」里「历史」「导出」「报表」「停用|启用」「清理」「删除」 |

两个一眼要会看的信号:
- 被停用的模型,流程名旁挂**「已停用」**角标;
- 「最后发布」列是最新版本的部署时间——空着代表从未发布,员工在审批中心看不到、也发起不了这条流程。
「更多」菜单六项最容易按错,先讲清楚再上手:

| 菜单项 | 干什么 | 可反悔吗 |
|---|---|---|
| 历史 | 跳流程定义页,看这条流程发布过的全部版本 | 只读,无反悔问题 |
| 导出 | 把模型下载成 JSON 文件(可用「导入模型」再装回去) | 可反悔 |
| 报表 | 跳按本流程过滤的流程实例报表 | 只读,无反悔问题 |
| 停用|启用 | 挂起/激活当前版本定义:停用后不能再发起新流程,在办实例不受影响 | 随时可反悔 |
| 清理 | 清空该模型下全部流程数据:在办实例逐条取消,历史实例与抄送记录删除 | 不可逆,台账清零 |
| 删除 | 删除模型本身并挂起其定义,列表里从此没有这条流程 | 不可逆 |
「清理」和「删除」都不可逆,按之前想清楚
- 清理清的是「台账」:在办实例被强制取消、历史实例和抄送记录全删,但模型和版本还在,之后发起的流程从空台账开始;
- 删除删的是「母版」:模型从列表消失、定义被挂起,但历史实例数据不会跟着删——要连台账一起清,先「清理」再「删除」;
- 这两个操作后端会校验身份:只有模型上设置的流程管理员(MANAGE 权限)能执行,仅有设计权限的人点了会报无权限。
常用操作
新建模型:四步填完
工具条「新建模型」进入向导页。顶部四个步骤块:基本信息 / 表单设计 / 流程设计 / 更多设置。步骤块可以直接点着跳,但跳转前会校验其余各步的必填项——哪里没填完会提示「请先完善当前步骤必填信息」且不跳,所以按顺序走最省心。
第一步 基本信息

| 字段 | 必填 | 说明 |
|---|---|---|
| 流程标识 | 是 | 流程的唯一英文标识;创建后不可改(修改时置灰,悬停提示「流程标识不可修改!」) |
| 流程名称 | 是 | 展示给所有人看的名字 |
| 流程分类 | 是 | 决定列表里归到哪个面板;只能选流程分类页里启用中的分类 |
| 流程图标 | 否 | 列表与发起入口显示的小图标 |
| 流程描述 | 否 | 给管理员看的一句话说明 |
| 流程类型 | 是 | SIMPLE 设计器(卡片式可视化流程图,推荐)或 BPMN 设计器(专业 BPMN 画布);决定第三步画什么 |
| 是否可见 | 是 | 选「否」则员工在审批中心看不到这条流程(管理员仍可管理) |
| 谁可以发起 | 是 | 全员 / 指定人员 / 指定部门,控制发起入口的可见范围 |
| 流程管理员 | 是 | 默认包含你自己;改、发、停、清理、删除的权限都认它,人员变动时记得补接班人 |
第二步 表单设计

- 流程表单:从流程表单页挑一张现成表单;下方「表单预览」实时渲染所选表单,字段对不对当场能核对;
- 业务表单:表单在自己业务系统里的场景——填「表单提交路由」「表单查看地址」两个路由,流程只负责审批、不负责收数据;
- 在线表单:把表单设计里发布的表单直接当流程表单用——发起页渲染的就是它,数据照旧落在它绑定的业务表上,同时创建流程实例,「业务表 + 列表 + 权限 + 审批」不必再画一张流程表单。下拉只列已发布且主表合格的表单;不合格的灰着标「不可用」,悬停能看到具体原因(最常见的是主表缺
process_instance_id(字符串型、长度不小于 64)或process_status(整数型:TINYINT / INT / LONG),补法与「为什么建表时不报错」见表单接入审批流第 3 步)。
第三步 流程设计(SIMPLE 设计器)

画布是一张自上而下的流程卡片:顶上是发起人、底下是结束,中间是已摆好的审批/抄送节点;节点之间的蓝色「+」按钮用来插入新节点,点开弹出节点菜单:审批人、办理人、抄送、条件分支、并行分支、包容分支、延迟器、路由分支、触发器、子流程。右上角工具条提供导出、导入、缩放、重置。
点节点卡片打开右侧配置抽屉。以审批节点为例:顶部是审批类型(人工审批 / 自动通过 / 自动拒绝),下面四个页签:

- 审批人:这个节点谁来审。指定成员、指定角色、指定岗位、部门成员、部门负责人、连续多级部门负责人、发起人自选、审批人自选、发起人本人、用户组、表单内用户字段、流程表达式等 15 种方式;选定后再设「多人审批方式」(按顺序依次审批 / 会签 / 或签 / 随机挑选一人审批)与「审批人拒绝时」(终止流程 / 驳回到指定节点);
- 操作按钮设置:审批时给审批人看哪几个按钮——通过 / 拒绝 / 转办 / 委派 / 加签 / 退回,逐个可改显示名称、可停用;比如本流程不允许转办,把开关关掉即可;

- 表单字段权限:每个表单字段在本节点是只读 / 可编辑 / 隐藏哪种状态;比如让审批节点能补填「请假原因」,就把它设为可编辑;

- 监听器:配置 HTTP 回调监听器(节点开始/结束时调用一个 HTTP 接口)——注意它与「流程监听器」页面的记录无关,后者只被 BPMN 设计器消费。
两个设计器各有一套生态,配置别串门
- SIMPLE 设计器的「监听器」页签是 HTTP 回调;流程监听器页与流程表达式页登记的记录,只有 BPMN 设计器会读;
- SIMPLE 设计器审批人设置里同名的「流程表达式」选项是一个自由文本框(直接写表达式),不是从流程表达式页里挑选;
- 所以:用 SIMPLE 设计器就在设计器内配监听与表达式,两个管理页可以完全无视;用 BPMN 设计器才需要去那两个页面登记。
第三步 流程设计(BPMN 设计器)
第一步选了 BPMN 设计器时,第三步换成专业 BPMN 画布:左侧画图、右侧节点属性面板;工具条提供打开文件、下载文件、浏览、模拟。本平台的流程监听器、流程表达式记录就是在右侧属性面板里被挑选消费的。

第四步 更多设置

- 提交人权限:是否允许撤销审批中的申请;
- 审批人权限:是否允许审批人撤回正在审批节点的前一节点;
- 流程编码:给实例编号加「前缀 + 中缀 + 后缀 + 位数」,台账里更好检索;
- 自动去重:同一审批人在一条流程里重复出现时,重复节点是否自动通过(不自动通过 / 仅审批一次 / 仅针对连续审批节点);
- 标题设置 / 摘要设置:实例标题与摘要默认走系统规则(标题展示流程名称、摘要展示表单前 3 个字段),也可自定义;
- 四种通知:流程启动后、流程结束后、任务执行时、任务结束后的消息通知开关;
- 自定义打印模板:审批单打印版式。
保存与发布
- 「保 存」:存草稿,不产生新版本,对在跑的流程零影响;
- 「发 布」:把当前草稿部署成新版本,员工之后发起的就是新流程。修改已有模型时向导右上角直接有「发 布」;新建的模型右上角只有「保 存」,保存后回列表点行内「发布」(或再进「修改」)完成首发;
- 发布成功后列表「最后发布」刷新为当前时间,「历史」里多出一个版本。
改了不发布 = 没改
发布前的一切修改都只是草稿,员工发起的仍是旧版本;在办实例永远按它发起时的版本跑,新版本发布也不影响它们。
修改与复制
- 修改:进与新建同一个向导;注意流程标识置灰不可改;改完要重新发布才生效;
- 复制:以当前模型为模板生成副本(名称加「副本」、标识加
_copy),适合派生一条相似流程再微调,比从零搭快得多。
导入模型:把导出的 JSON 装回来
工具条「导入模型」打开弹窗:拖入「导出」得到的 JSON 模型文件,「流程标识」「流程名称」会从文件里带出且允许改——这意味着「标识起错了想改名」的正路是:导出 → 导入时填新标识 → 发布 → 删除旧模型。

跨环境搬运后先核对关联再发布
导入会完整保留流程配置,并把新模型归属到当前租户。发布前先确认流程里引用的人员、部门、用户组、表单、子流程在当前租户都有效——否则发起或审批时会报找不到人/找不到表单。
版本管理:历史与恢复
更多 →「历史」跳到流程定义页:每一行是一个已发布版本,列有定义编号、流程版本、部署时间、当前状态。

恢复:点某行「恢复」,向导会装载该历史版本的内容(右上角按钮变为「恢 复」),确认后把旧版本写回为模型当前草稿,提示「恢复成功,可点击【发布】按钮,进行发布模型」——「新版流程图改坏了,先回退」的标准补救路径;恢复后仍需发布才真正生效;
★ 权限配置:本项目定制入口。它按
bpm:process:<流程标识>去资源表找这条流程对应的资源,找到后打开资源授权面板,可以精细配置「谁对这条流程有哪些动作权限」。若提示:流程 … 在资源表中不存在(bpm:process:…),请先发布流程或等待迁移 Runner 同步
说明该流程还没登记进资源表——先发布一次流程再回来点。
视角对照
| 视角 | 看到什么 |
|---|---|
超管 admin / 租户管理员 docadmin | 全部模型;可新建、修改、发布、启停、清理、删除、看历史 |
| 流程管理员(模型上指定的人) | 即使没有 bpm:model:* 菜单权限之外的管理权,也按「流程管理员」身份对自己负责的模型执行改/发/停/清理/删 |
普通员工 salesman01 | 无此菜单;只能在审批中心看到「是否可见 = 是」且自己在「谁可以发起」范围内的流程 |
进阶
- 流程标识一旦创建不可修改,命名时预留业务语义(如
doc_leave_demo);真要改名走「导出 → 导入改标识 → 发布 → 删旧」; - 版本与实例的关系:实例永远绑定发起时的版本运行;新版本只影响之后发起的实例。回退 = 历史页「恢复」+ 重新发布;
- 停用 vs 删除:临时不让发起用「停用」(可启用回来);彻底下线才用「删除」,且记得先「清理」台账;
- 流程管理员要留接班人:清理/删除/发布都认它,管理员离职又没交接,这条流程就没人能删得动;
- SIMPLE 设计器里节点卡片上的摘要文字(如「指定成员:文档租户管理员」)就是审批人设置的回显,巡检流程时不用逐个点开抽屉。
常见问题
Q:保存成功了,为什么员工在审批中心看不到这条流程? A:三件事逐个查:① 是否发布过(列表「最后发布」为空 = 没发布);② 「是否可见」是否为「是」;③ 该员工是否在「谁可以发起」范围内。
Q:改了流程图,在办的审批会跟着变吗? A:不会。在办实例按发起时的版本跑;改动要发布成新版本后,只影响之后发起的实例。
Q:新版本发布后发现改错了,怎么回退? A:更多 →「历史」→ 找到上一个正常版本点「恢复」→ 回列表「发布」。恢复只是把旧版写回草稿,发布后才生效。
Q:「清理」和「删除」到底选哪个? A:想保留流程、只清空跑出来的数据(比如演示环境重置)用「清理」;流程彻底下线用「删除」,且要连数据一起清就先清理再删除。两者都不可逆。
Q:流程监听器页登记了监听器,为什么流程没反应? A:SIMPLE 设计器不读流程监听器页的记录(它只被 BPMN 设计器消费)。SIMPLE 流程要回调接口,请在节点抽屉的「监听器」页签配 HTTP 回调。详见流程监听器。
Q:向导里点步骤块为什么不跳? A:跳步前会校验其余各步必填项,提示「请先完善当前步骤必填信息」就是还有没填完的地方;回对应步骤补齐再跳。
