文章来源:https://blog.csdn.net/baiyan3212/article/details/86019078
了解23张表
Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。
ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
ACT_GE_*: 通用数据, 用于不同场景下。
流程和表的关系
一、部署流程定义相关表
/*
* 部署发布流程
*/
@Test
public void deploy(){
//获取流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//获取流程仓库服务,定义和部署流程有关
RepositoryService repositoryService = processEngine.getRepositoryService();
//创建流程部署发布对象
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
deploymentBuilder.name("hello流程");
//添加流程
deploymentBuilder.addClasspathResource("diagrams/MyProcess.bpmn");
deploymentBuilder.addClasspathResource("diagrams/MyProcess.png");
//发布
Deployment deployment =deploymentBuilder.deploy();
System.out.println(deployment.getName());
}
先获取流程引擎对象:在创建时会自动加载classpath下的activiti.cfg.xml
首先获得默认的流程引擎,通过流程引擎获取了一个RepositoryService对象(仓库对象)
由仓库的服务对象产生一个部署对象配置对象,用来封装部署操作的相关配置。
在部署配置对象中设置显示名,上传流程定义规则文件
向数据库表中存放流程定义的规则信息。
这一步在数据库中将操作三张表:
act_re_deployment(部署对象表)
存放流程定义的显示名和部署时间,每部署一次增加一条记录
字段名称
字段描述
数据类型
主键
为空
取值说明
ID_
ID_
nvarchar(64)
√
主键ID
NAME_
部署名称
nvarchar(255)
√
部署文件名
CATEGORY_
分类
nvarchar(255)
√
类别
DEPLOY_TIME_
部署时间
datetime
√
部署时间
act_re_procdef(流程定义表)
存放流程定义的属性信息,部署每个新的流程定义都会在这张表中增加一条记录。
注意:当流程定义的key相同的情况下,使用的是版本升级
字段名称
字段描述
数据类型
主键
为空
取值说明
ID_
ID_
nvarchar(64)
√
key+版本+随机数
REV_
乐观锁
int
√
乐观锁
CATEGORY_
分类
nvarchar(255)
√
流程定义的Namespace就是类别
NAME_
名称
nvarchar(255)
√
名称
KEY_
定义的KEY
nvarchar(255)
流程定义ID
VERSION_
版本
int
默认version为1。之后每次部署都会在当前最高版本号上加1
DEPLOYMENT_ID_
部署表ID
nvarchar(64)
√
部署表ID
RESOURCE_NAME_
bpmn文件名称
nvarchar(4000)
√
流程bpmn文件名称
DGRM_RESOURCE_NAME_
png图片名称
nvarchar(4000)
√
流程图片名称
DESCRIPTION_
描述
nvarchar(4000)
√
描述
HAS_START_FORM_KEY_
是否存在开始节点formKey
tinyint
√
start节点是否存在formKey
0否 1是
SUSPENSION_STATE_
是否挂起
tinyint
√
1 激活 2挂起
act_ge_bytearray(资源文件表)
存储流程定义相关的部署信息。即流程定义文档的存放地。每部署一次就会增加两条记录,一条是关于bpmn规则文件的,一条是图片的(如果部署时只指定了bpmn一个文件,activiti会在部署时解析bpmn文件内容自动生成流程图)。两个文件不是很大,都是以二进制形式存储在数据库中。
字段名称
字段描述
数据类型
主键
为空
取值说明
ID_
ID_
nvarchar(64)
√
主键ID
REV_
乐观锁
int
√
Version(版本)
NAME_
名称
nvarchar(255)
√
部署的文件名称,如:mail.bpmn、mail.png 、mail.bpmn20.xml
DEPLOYMENT_ID_
部署ID
nvarchar(64)
√
部署表ID
BYTES_
字节
varbinary(max)
√
部署文件
GENERATED_
是否是引擎生成
tinyint
√
0为用户生成 1为Activiti生成
act_ge_property:主键生成策略表
二、流程实例、任务的执行有关的表
ct_ru_execution :正在执行的执行对象表
这里需要注意 执行对象ID和流程实例ID是不一样的概念
1.如果是单例流程(没有分支和聚合),执行对象ID等于流程实例ID的值
2.一个流程只能有一个流程实例。可以有多个执行对象
字段名称
字段描述
数据类型
主键
为空
取值说明
ID_
ID_
nvarchar(64)
√
ID_
REV_
乐观锁
int
√
乐观锁
PROC_INST_ID_
流程实例ID
nvarchar(64)
流程实例ID
BUSINESS_KEY_
业务主键ID
nvarchar(255)
√
业务主键ID
PARENT_ID_
父节点实例ID
nvarchar(64)
√
父节点实例ID
PROC_DEF_ID_
流程定义ID
nvarchar(64)
√
流程定义ID
SUPER_EXEC_
SUPER_EXEC_
nvarchar(64)
√
SUPER_EXEC_
ACT_ID_
节点实例ID
nvarchar(255)
√
节点实例ID即
ACT_HI_ACTINST中ID
IS_ACTIVE_
是否存活
tinyint
√
是否存活
IS_CONCURRENT_
是否并行
tinyint
√
是否为并行(true/false)
IS_SCOPE_
IS_SCOPE_
tinyint
√
IS_SCOPE_
IS_EVENT_SCOPE_
IS_EVENT_SCOPE_
tinyint
√
IS_EVENT_SCOPE_
SUSPENSION_STATE_
是否挂起
tinyint
√
挂起状态 1激活 2挂起
CACHED_ENT_STATE_
int
√
act_hi_procinst:流程实例历史记录表
字段名称
字段描述
数据类型
主键
为空
取值说明
ID_
ID_
nvarchar(64)
√
主键ID
PROC_INST_ID_
流程实例ID
nvarchar(64)
流程实例ID
BUSINESS_KEY_
业务主键
nvarchar(255)
√
业务主键,业务表单的ID
PROC_DEF_ID_
流程定义ID
nvarchar(64)
流程定义ID
START_TIME_
开始时间
datetime
开始时间
END_TIME_
结束时间
datetime
√
结束时间
DURATION_
耗时
Numeric(19)
√
耗时
START_USER_ID_
起草人
nvarchar(255)
√
起草人
START_ACT_ID_
开始节点ID
nvarchar(255)
√
起草环节ID
END_ACT_ID_
结束节点ID
nvarchar(255)
√
结束环节ID
SUPER_PROCESS
_INSTANCE_ID_
父流程实例ID
nvarchar(64)
√
父流程实例ID
DELETE_REASON_
删除原因
nvarchar(4000)
√
删除原因
act_ru_task:正在执行的任务信息
只有节点是usertask时该表中才有值
字段名称
字段描述
数据类型
主键
为空
取值说明
ID_
ID_
nvarchar(64)
√
ID_
REV_
乐观锁
int
√
乐观锁
EXECUTION_ID_
执行实例ID
nvarchar(64)
√
执行实例ID
PROC_INST_ID_
流程实例ID
nvarchar(64)
√
流程实例ID
PROC_DEF_ID_
流程定义ID
nvarchar(64)
√
流程定义ID
NAME_
节点定义名称
nvarchar(255)
√
节点定义名称
PARENT_TASK_ID_
父节点实例ID
nvarchar(64)
√
父节点实例ID
DESCRIPTION_
节点定义描述
nvarchar(4000)
√
节点定义描述
TASK_DEF_KEY_
节点定义的KEY
nvarchar(255)
√
任务定义的ID
OWNER_
实际签收人
nvarchar(255)
√
拥有者(一般情况下为空,只有在委托时才有值)
ASSIGNEE_
签收人或委托人
nvarchar(255)
√
签收人或委托人
DELEGATION_
委托类型
nvarchar(64)
√
备注8
PRIORITY_
优先级别
int
√
优先级别,默认为:50
CREATE_TIME_
创建时间
datetime
√
创建时间
DUE_DATE_
过期时间
datetime
√
耗时
SUSPENSION_STATE_
是否挂起
int
√
1代表激活 2代表挂起
act_hi_taskinst:任务实例历史记录表
只有节点是usertask时该表中才有值
字段名称
字段描述
数据类型
主键
为空
取值说明
ID_
ID_
nvarchar(64)
√
主键ID
PROC_DEF_ID_
流程定义ID
nvarchar(64)
√
流程定义ID
TASK_DEF_KEY_
节点定义ID
nvarchar(255)
√
节点定义ID
PROC_INST_ID_
流程实例ID
nvarchar(64)
√
流程实例ID
EXECUTION_ID_
执行实例ID
nvarchar(64)
√
执行实例ID
NAME_
名称
varchar(255)
√
名称
PARENT_TASK_ID_
父节点实例ID
nvarchar(64)
√
父节点实例ID
DESCRIPTION_
描述
nvarchar(400)
√
描述
OWNER_
实际签收人 任务的拥有者
nvarchar(255)
√
签收人(默认为空,只有在委托时才有值)
ASSIGNEE_
签收人或被委托
nvarchar(255)
√
签收人或被委托
START_TIME_
开始时间
datetime
开始时间
CLAIM_TIME_
提醒时间
datetime
√
提醒时间
END_TIME_
结束时间
datetime
√
结束时间
DURATION_
耗时
numeric(19)
√
耗时
DELETE_REASON_
删除原因
nvarchar(4000)
√
删除原因(completed,deleted)
PRIORITY_
优先级别
int
√
优先级别
DUE_DATE_
过期时间
datetime
√
过期时间,表明任务应在多长时间内完成
FORM_KEY_
节点定义的
formkey
nvarchar(255)
√
desinger节点定义的
form_key属性
act_hi_actinst:所有活动节点的历史记录表
字段名称
字段描述
数据类型
主键
为空
取值说明
ID_
ID_
nvarchar(64)
√
PROC_DEF_ID_
流程定义ID
nvarchar(64)
PROC_INST_ID_
流程实例ID
nvarchar(64)
EXECUTION_ID_
执行实例ID
nvarchar(64)
ACT_ID_
节点ID
nvarchar(225)
节点定义ID
TASK_ID_
任务实例ID
nvarchar(64)
√
任务实例ID 其他节点类型实例ID在这里为空
CALL_PROC_INST_ID_
调用外部的流程实例ID
nvarchar(64)
√
调用外部流程的流程实例ID'
ACT_NAME_
节点名称
nvarchar(225)
√
节点定义名称
ACT_TYPE_
节点类型
nvarchar(225)
如startEvent、userTask
ASSIGNEE_
签收人
nvarchar(64)
√
节点签收人
START_TIME_
开始时间
datetime
2013-09-15 11:30:00
END_TIME_
结束时间
datetime
√
2013-09-15 11:30:00
DURATION_
耗时
numeric(19,0)
√
毫秒值
三 流程变量相关的表
act_ru_variable 流程变量
字段名称
字段描述
数据类型
主键
为空
取值说明
ID_
ID_
nvarchar(64)
√
主键标识
REV_
乐观锁
int
√
乐观锁
TYPE_
类型
nvarchar(255)
备注9
NAME_
名称
nvarchar(255)
变量名称
EXECUTION_ID_
执行实例ID
nvarchar(64)
√
执行的ID
PROC_INST_ID_
流程实例ID
nvarchar(64)
√
流程实例ID
TASK_ID_
节点实例ID
nvarchar(64)
√
节点实例ID(Local)
BYTEARRAY_ID_
字节表ID
nvarchar(64)
√
字节表的ID
(ACT_GE_BYTEARRAY)
DOUBLE_
DOUBLE_
float
√
存储变量类型为Double
LONG_
LONG_
numeric(19)
√
存储变量类型为long
TEXT_
TEXT_
nvarchar(4000)
√
'存储变量值类型为String
如此处存储持久化对象时,值jpa对象的class
TEXT2_
TEXT2_
nvarchar(4000)
√
此处存储的是JPA持久化对象时,才会有值。此值为对象ID
act_hi_varinst 流程变量历史表
字段名称
字段描述
数据类型
主键
为空
取值说明
ID_
ID_
nvarchar(64)
√
ID_
PROC_INST_ID_
流程实例ID
nvarchar(64)
√
流程实例ID
EXECUTION_ID_
执行实例ID
nvarchar(255)
√
执行实例ID
TASK_ID_
任务实例ID
nvarchar(64)
√
任务实例ID
NAME_
名称
nvarchar(64)
参数名称(英文)
VAR_TYPE_
参数类型
varchar(255)
√
备注5
REV_
乐观锁
nvarchar(64)
√
乐观锁 Version
BYTEARRAY_ID_
字节表ID
nvarchar(400)
√
ACT_GE_BYTEARRAY表的主键
DOUBLE_
DOUBLE_
nvarchar(255)
√
存储DoubleType类型的数据
LONG_
LONG_
nvarchar(255)
√
存储LongType类型的数据
TEXT_
TEXT_
datetime
√
备注6
TEXT2_
TEXT2_
datetime
√
此处存储的是JPA持久化对象时,才会有值。此值为对象ID
————————————————
版权声明:本文为CSDN博主「踟蹰千年」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baiyan3212/article/details/86019078