Activiti工作流(三)23张表的含义

了解23张表

Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。

  1.  ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
  2.  ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
  3. ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。
  4. ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
  5. 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());
	}
  1. 先获取流程引擎对象:在创建时会自动加载classpath下的activiti.cfg.xml
  2. 首先获得默认的流程引擎,通过流程引擎获取了一个RepositoryService对象(仓库对象)
  3. 由仓库的服务对象产生一个部署对象配置对象,用来封装部署操作的相关配置。
  4. 在部署配置对象中设置显示名,上传流程定义规则文件
  5. 向数据库表中存放流程定义的规则信息。
  6. 这一步在数据库中将操作三张表:
  • 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

猜你喜欢

转载自blog.csdn.net/baiyan3212/article/details/86019078
今日推荐