Flowable 从流程定义到审批结束全链路说明
🧭 一、总体流程
Flowable 一条流程大致经历:
流程定义 → 部署 → 启动流程实例 → 生成任务 → 审批流转 → 结束 → 转历史表
🧱 二、核心表分阶段说明
🟦 1. 流程定义阶段(静态数据)
📌 流程定义表
ACT_RE_PROCDEF
👉 存:流程模板(比如请假流程)
📌 部署表
ACT_RE_DEPLOYMENT
👉 存:每次部署记录
📌 资源表
ACT_GE_BYTEARRAY
👉 存:- BPMN XML
- 流程图 PNG
🟩 2. 启动流程(运行时开始)
📌 流程实例表(运行中)
ACT_RU_EXECUTION
👉 核心字段:
PROC_INST_ID_(流程实例ID)PROC_DEF_ID_(流程定义ID)
📌 业务绑定(自定义业务表)
sql
process_instance_id
👉 绑定关系:
业务表.process_instance_id = ACT_RU_EXECUTION.PROC_INST_ID_
🟨 3. 任务产生(审批开始)
📌 任务表(当前待办)
ACT_RU_TASK
👉 当前待办任务(审批人)
📌 身份表(候选人/组)
ACT_RU_IDENTITYLINK
👉 候选人、审批人关系
📌 变量表(运行时)
ACT_RU_VARIABLE
👉 流程变量(如金额、天数)
🟧 4. 审批流转(过程中)
每次审批发生:
- 删除旧任务(ACT_RU_TASK)
- 生成新任务
- 更新流程实例(ACT_RU_EXECUTION)
🟥 5. 审批完成(流程结束)
❗ 运行时表数据清理
以下表数据会被删除:
ACT_RU_EXECUTIONACT_RU_TASKACT_RU_VARIABLEACT_RU_IDENTITYLINK
✅ 写入历史表
🟪 6. 历史数据(重点)
📌 流程实例历史
ACT_HI_PROCINST
👉 存:开始时间、结束时间、状态
📌 任务历史
ACT_HI_TASKINST
👉 存:审批记录(谁审批、耗时)
📌 变量历史
ACT_HI_VARINST
👉 存:流程变量
📌 审批意见
ACT_HI_COMMENT
👉 存:审批意见(同意/驳回)
🧠 三、完整链路总结(核心)
【定义阶段】
ACT_RE_DEPLOYMENT
↓
ACT_RE_PROCDEF
↓
ACT_GE_BYTEARRAY
【运行阶段】
ACT_RU_EXECUTION ← 核心(流程实例)
↓
ACT_RU_TASK ← 当前待办
↓
ACT_RU_VARIABLE
↓
ACT_RU_IDENTITYLINK
【结束后】
ACT_HI_PROCINST ← 流程历史
↓
ACT_HI_TASKINST ← 审批记录
↓
ACT_HI_VARINST
↓
ACT_HI_COMMENT
🔗 四、业务关联(重点)
查流程是否在运行
sql
SELECT *
FROM ACT_RU_EXECUTION
WHERE PROC_INST_ID_ = #{processInstanceId};
👉 查不到 = 已结束
查流程历史
sql
SELECT *
FROM ACT_HI_PROCINST
WHERE PROC_INST_ID_ = #{processInstanceId};
查审批记录
sql
SELECT *
FROM ACT_HI_TASKINST
WHERE PROC_INST_ID_ = #{processInstanceId}
ORDER BY START_TIME_;
⚠️ 五、常见坑
❌ 坑1:只查运行表
👉 流程结束后数据会被删除
❌ 坑2:不区分 RU / HI
- RU = 运行中
- HI = 历史
❌ 坑3:流程结束判断错误
sql
-- 正确判断
ACT_RU_EXECUTION 不存在
AND
ACT_HI_PROCINST.END_TIME_ 不为空
🚀 总结
👉 Flowable 核心机制:
运行数据在 RU 表,流程结束后全部进入 HI 表