Skip to content

wf_process 流程定义表

流程定义主表:每个发布版本一行,DSL 全文存在 definition_json 里。同一 process_key 按 version 递增保留多个版本。

表结构

字段类型说明
idVARCHAR(36) PKUUID 主键
process_keyVARCHAR(100)流程键(业务唯一标识,如 leave_approval
nameVARCHAR(200)流程名称(如「请假审批」)
versionINTEGER版本号,从 1 递增
categoryVARCHAR(100)分类(权限/报表筛选用)
descriptionVARCHAR(500)流程描述
definition_jsonTEXT流程定义 DSL(ruleChain + metadata 全文)
statusVARCHAR(20)active 生效 / retired 已停用(保存的草稿副本为 draft
publish_timeTIMESTAMPTZ版本发布时间
iconVARCHAR(200)流程图标
process_typeVARCHAR(20)main 主流程 / sub 子流程
tenant_idVARCHAR(100)租户 ID
created_by / created_at / updated_by / updated_at审计四件套
extTEXT结构化扩展字段(JSON)

唯一索引:(process_key, version) —— 同一 key 的每个版本各占一行。

版本化语义

  • 发布新版本version + 1 插入新行,同一事务内将同 key 的旧 active 版本自动置 retired——同一 process_key 同一时刻仅一个 active 版本
  • 发起实例wf_instance.process_id 指向具体版本行的 id,所以存量实例永远跑发起时的那个版本,改流程不影响在途单据
  • 停用:置 retired,不可再发起,存量实例跑完为止

definition_json 里有什么

引擎兼容两种格式:设计器产出的 envelope 包裹结构(form / flow / ruleChain / metadata 四键)与旧式扁平 RuleChain 格式(顶层 ruleChain + metadata)。核心内容一致:

  • ruleChain.additionalInfo:表单 schema、分类、图标、processType
  • metadata.nodes:节点(userTask / switch / serviceTask / end…)及其 configuration(审批人、会签规则)与 additionalInfo(动作权限、字段权限)
  • metadata.connections:流转边

详见流程 DSL 规范。gflow 设计器的所有可视化配置,最终都落在这一个字段里。

常用查询

sql
-- 某 key 的全部版本
SELECT version, status, publish_time, created_by
FROM wf_process WHERE process_key = 'leave_approval'
ORDER BY version DESC;

-- 当前生效版本
SELECT * FROM wf_process
WHERE process_key = 'leave_approval' AND status = 'active'
ORDER BY version DESC LIMIT 1;

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