本人在工作中用的Camunda7.11版本共47张表。
camunda工作流的表大体上分为 5 类:
ACT_RE_*: 'RE’表示流程资源存储,这个前缀的表包含了流程定义和流程静态资源(图片,规则等),共5张表。
ACT_RU_*: 'RU’表示流程运行时。 这些运行时的表,包含流程实例,任务,变量,Job等运行中的数据。 Camunda只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录, 这样运行时表的数据量最小,可以最快运行。共15张表。
ACT_ID_*: 'ID’表示组织用户信息,比如用户,组等,共6张表。
ACT_HI_*: 'HI’表示流程历史记录。 这些表包含历史数据,比如历史流程实例,变量,任务等,共18张表。
ACT_GE_*: ‘GE’表示流程通用数据, 用于不同场景下,共3张表。
由于我们在不同的项目中使用工作流的功能数量上肯定不一样,所以在不同项目中使用到上面的表多少的情况肯定是不一致的!
一、数据表清单
分类 表名称 描述
流程资源存储 act_re_case_def CMMN案例管理模型定义表
流程资源存储 act_re_decision_def DMN决策模型定义表
流程资源存储 act_re_decision_req_def 待确定
流程资源存储 act_re_deployment 流程部署表
流程资源存储 act_re_procdef BPMN流程模型定义表
流程运行时 act_ru_authorization 流程运行时收取表
流程运行时 act_ru_batch 流程执行批处理表
流程运行时 act_ru_case_execution CMMN案例运行执行表
流程运行时 act_ru_case_sentry_part 待确定
流程运行时 act_ru_event_subscr 流程事件订阅表
流程运行时 act_ru_execution BPMN流程运行时记录表
流程运行时 act_ru_ext_task 流程任务消息执行表
流程运行时 act_ru_filter 流程定义查询配置表
流程运行时 act_ru_identitylink 运行时流程人员表
流程运行时 act_ru_incident 运行时异常事件表
流程运行时 act_ru_job 流程运行时作业表
流程运行时 act_ru_jobdef 流程作业定义表
流程运行时 act_ru_meter_log 流程运行时度量日志表
流程运行时 act_ru_task 流程运行时任务表
流程运行时 act_ru_variable 流程运行时变量表
组织用户信息 act_id_group 群组信息表
组织用户信息 act_id_info 用户扩展信息表
组织用户信息 act_id_membership 用户群组关系表
组织用户信息 act_id_tenant 租户信息表
组织用户信息 act_id_tenant_member 用户租户关系表
组织用户信息 act_id_user 用户信息表
流程历史记录 act_hi_actinst 历史的活动实例表
流程历史记录 act_hi_attachment 历史的流程附件表
流程历史记录 act_hi_batch 历史的批处理记录表
流程历史记录 act_hi_caseactinst 历史的CMMN活动实例表
流程历史记录 act_hi_caseinst 历史的CMMN实例表
流程历史记录 act_hi_comment 历史的流程审批意见表
流程历史记录 act_hi_dec_in 历史的DMN变量输入表
流程历史记录 act_hi_dec_out 历史的DMN变量输出表
流程历史记录 act_hi_decinst 历史的DMN实例表
流程历史记录 act_hi_detail 历史的流程运行时变量详情记录表
流程历史记录 act_hi_ext_task_log 历史的流程任务消息执行表
流程历史记录 act_hi_identitylink 历史的流程运行过程中用户关系
流程历史记录 act_hi_incident 历史的流程异常事件记录表
流程历史记录 act_hi_job_log 历史的流程作业记录表
流程历史记录 act_hi_op_log 待确定
流程历史记录 act_hi_procinst 历史的流程实例
流程历史记录 act_hi_taskinst 历史的任务实例
流程历史记录 act_hi_varinst 历史的流程变量记录表
流程通用数据 act_ge_bytearray 流程引擎二进制数据表
流程通用数据 act_ge_property 流程引擎属性配置表
流程通用数据 act_ge_schema_log 数据库脚本执行日志表
目前我们使用camunda工作流是为了使用BPMN模型,上面红色的表是DMN模型专用,绿色的表是CMMN模型专用,暂时不在我们考虑的范围内,DMN和CMMN是什么大家可以自己去了解,这里不多讲。
大家不要觉得表太多太复杂,其实我们需要关注的是,工作流本身的功能满足不了需求,我们需要在某些表的基础上进行二次开发。接下来我会结合实际开发场景讲解一下大多数表的作用:
camunda数据库表结构介绍_大龄码农有梦想的博客-优快云博客_camunda表结构说明
Camunda工作流引擎二_相信天道酬勤的M1ng的博客-优快云博客_camunda 流程变量
上面三张表是关于流程定义和基本配置的表,了解一下就行,在我们的实际业务中无需关注这些表。
4.act_hi_actinst(历史的活动实例表)
历史的活动实例表,记录流程流转过的所有节点。这个表要重点理解,节点既包含了任务(task),也包括了经过的网关等其他类型的节点(注意我加粗的字段,重点理解),理解节点ID和任务ID的区别。
字段名称 | 字段类型 | 可否为空 | 描述 |
---|---|---|---|
ID_ | varchar(64) | 主键 | |
PARENT_ACT_INST_ID_ | varchar(64) | NULL | 父节点实例ID |
PROC_DEF_KEY_ | varchar(255) | NULL | 流程定义KEY |
PROC_DEF_ID_ | varchar(64) | 流程定义ID | |
ROOT_PROC_INST_ID_ | varchar(64) | NULL | 流程实例根ID |
PROC_INST_ID_ | varchar(64) | 流程实例ID | |
EXECUTION_ID_ | varchar(64) | 执行实例ID | |
ACT_ID_ | varchar(255) | 节点ID | |
TASK_ID_ | varchar(64) | NULL | 任务ID |
CALL_PROC_INST_ID_ | varchar(64) | NULL | 调用外部的流程实例ID |
CALL_CASE_INST_ID_ | varchar(64) | NULL | 调用外部的案例实例ID |
ACT_NAME_ | varchar(255) | NULL | 节点名称 |
ACT_TYPE_ | varchar(255) | 节点类型 | |
ASSIGNEE_ | varchar(64) | NULL | 办理人 |
START_TIME_ | datetime | 开始时间 | |
END_TIME_ | datetime | NULL | 结束时间 |
DURATION_ | bigint(20) | NULL | 耗时 |
ACT_INST_STATE_ | int(11) | NULL | 活动实例状态 |
SEQUENCE_COUNTER_ | bigint(20) | NULL | 序列计数器 |
TENANT_ID_ | varchar(64) | NULL | 租户ID |
REMOVAL_TIME_ | datetime | NULL | 删除时间 |
act_hi_comment这张表从表结构来看,存放了整个流程已经执行过的节点的审批意见,本人不建议在实际业务中使用这样表,第一是每个业务节点存的审批内容的字段类型都不一样,第二是这是工作流自带的表,我们处于减少工作流底层的改动,后期没法拓展,第三是我们实际业务的审批内容会应用于业务的其他模块,数据存储分散后不利于维护。
8.act_hi_procinst(历史的流程实例表)
历史的流程实例表。
9.act_hi_taskinst(历史的任务实例表)===这张表很重要,记录了所有的走完的任务和当前的任务,两种任务会有状态的区别
已经完成的任务,DELETE_REASON_=completed,并且END_TIME_是有时间值的。
10.act_hi_varinst(历史的流程变量表)
这个表也很重要,他记录了整个流程节点的变量
11,12,13这三张表很明显是工作流自带的用户相关表,如果想把我们业务系统的人员-角色同步到工作流,需要的就是这三张表
14,15这两张表,是用来支撑流程定义和部署的,是工作流系统内部使用的,我们业务拓展其实是用不到这两张表
如果没有自己部署和使用过工作流,我上面讲的这些表和用途,你们会觉得有点模糊,所以别怕麻烦,自己动动手,在实践中慢慢总结。
camunda工作流的使用我会后续慢慢整理起来!!