一、表的命名规则
- Activiti 的表都以 ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的 API 对应。
- ACT_RE_*: 'RE'表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
- ACT_RU_*: 'RU'表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti 只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
- ACT_HI_*: 'HI'表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
- ACT_GE_*: GE 表示 general。通用数据, 用于不同场景下。
二、详细介绍
2.1 定义表:
- act_re_deployment #流程定义部署表
- act_re_procdef #流程定义信息
- act_ge_bytearray #流程定义的bpmn及png文件
2.2运行时表
- act_ru_execution #执行表
- act_ru_identitylink #参与者信息
- act_ru_task #任务
- act_ru_variable #当前流程变量表,记录当前运行流程实例可使用的流程变量,包括 global 和 local 变量。
- Id_:主键
- Type_:变量类型
- Name_:变量名称
- Execution_id_:所属流程实例执行 id,global 和 local 变量都存储
- Proc_inst_id_:所属流程实例 id,global 和 local 变量都存储
- Task_id_:所属任务 id,local 变量存储
- Bytearray_:serializable 类型变量存储对应 act_ge_bytearray 表的 id
- Double_:double 类型变量值
- Long_:long 类型变量值
- Text_:text 类型变量值
2.3历史表
- act_hi_actinst #已完成的活动信息
- act_hi_identitylink #参与者信息
- act_hi_procinst #流程实例
- act_hi_taskinst #任务实例
- act_hi_varinst #历史流程变量表,记录所有已创建的流程变量,包括 global 和 local 变量。
三、按事件影响介绍
3.1 部署和删除流程影响的表
- act_re_deployment #流程定义部署表,记录流程部署信息
- act_re_procdef #流程定义表,记录流程定义信息
- act_ge_bytearray #资源表, 流程定义的bpmn及png文件
说明:act_re_deployment 和 act_re_procdef 一对多关系,一次部署在流程部署表生成一条记录,但一次部署可以部署多个流程定义,每个流程定义在流程定义表生成一条记录。每一个流程定义在act_ge_bytearray 会存在两个资源记录,bpmn 和 png。
建议:一次部署一个流程,这样部署表和流程定义表是一对一有关系,方便读取流程部署及流程定义信息。
3.2启动流程影响的表
- act_hi_actinst #已完成的活动信息
- act_hi_identitylink #参与者信息
- act_hi_procinst #流程实例
- act_hi_taskinst #任务实例
- act_ru_execution #执行表
- act_ru_identitylink #参与者信息
- act_ru_task #任务
3.3 查询用户任务(表不变化)
- 流程实例ID:act_hi_procinst._id
- 任务ID:act_hi_taskinst.id_
- 任务负责人:act_hi_taskinst.assignee_
- 任务名称:act_hi_taskinst.name_
3.4 处理用户当前任务
- act_hi_actinst
- act_hi_identitylink
- act_hi_taskinst
- act_ru_identitylink
- act_ru_task
3.5启动流程实例时设置流程变量
3.5.1 global流程变量影响的表
设置流程变量会在当前执行流程变量表插入记录,同时也会在历史流程变量表也插入记录。
- act_ge_bytearray
- act_ru_variable
- act_hi_variable
3.5.2 local流程变量影响的表
3.6候选组任务
- act_ru_task #任务执行表,记录当前执行的任务,由于该任务当前是组任务,所有assignee 为空,当拾取任务后该字段就是拾取用户的 id
- act_ru_identitylink #任务参与者,记录当前参考任务用户或组,当前任务如果设置了候选人,会向该表插入候选人记录,有几个候选就插入几个
- act_hi_identitylink ,向 act_ru_identitylink 插入记录的同时也会向历史表插入记录。任务完成