Skip to content

wf_instance 运行时流程实例表

一次审批申请 = 一行。只存「进行中」的实例,结束后整行迁入 wf_hi_instance。

表结构

字段类型说明
idVARCHAR(36) PK实例 UUID
process_idVARCHAR(36)流程定义版本行的 id(锁版本运行)
business_keyVARCHAR(200)业务键(业务系统唯一编号,如报销单号)
nameVARCHAR(200)实例名称(如「王强的请假申请」)
start_user_idVARCHAR(36)发起人用户 ID(系统触发时为空串)
statusVARCHAR(20)active / completed / suspended / terminateddraft / cancelled / failed 为枚举保留值,当前版本无写入路径)
variablesTEXT流程变量 JSON——发起表单数据装在 msg 里,运行中可增改
current_activityVARCHAR(100)当前运行到的节点定义 ID
priorityINTEGER优先级(越大越优先,默认 50)
parent_idVARCHAR(36)父实例 ID——子流程回链主流程
tenant_idVARCHAR(100)租户 ID(SaaS 多租户)
created_by / created_at / updated_by / updated_at审计
end_reasonVARCHAR(2000)完成/终止原因(含错误信息)
durationINTEGER运行时长(毫秒)
ended_atTIMESTAMPTZ结束时间

索引覆盖高频查询维度:statustenant_idbusiness_keyparent_idcreated_at DESCpriority DESC, created_at ASC(待办/抢单排序)。

variables:表单数据即流程变量

发起时的表单值整体装入 variables

json
{ "days": 5, "reason": "家中事务", "managerId": "mgr001" }
  • 条件网关(switch)用 msg.days 这类表达式读取
  • userTask 的候选人配置可经 ${msg.xxx} 从变量解析(如发起人自选场景)
  • AI/HTTP/自动化节点同样经 ${msg.xxx} 取值

子流程

subProcess 节点会创建新实例,parent_id 指向主实例;子流程走完自己的 end 节点后,结果变量带回主流程继续执行。

生命周期

active ──完成──▶ completed
  │ ├──终止──▶ terminated   (管理员强杀 / 发起人撤回,撤回时 end_reason 记「申请人撤回」)
  └─挂起⇄恢复─ suspended
结束瞬间:行迁入 wf_hi_instance,补记 duration / ended_at / end_reason

rulego-bpm 基于 Apache-2.0 许可开源 · gflow 商业授权