admin 管理员组

文章数量: 1184232


2024年3月20日发(作者:开放api接口)

Activiti数据表结构

Activiti数据表结构

目录

1

ACTIVITI数据库表结构 ----------------------------------------------------------------------------------------------- 2

1.1

数据库表名说明 ------------------------------------------------------------------------------------------------ 2

1.2

数据库表结构---------------------------------------------------------------------------------------------------- 3

1.2.1

Activiti

数据表清单

: ---------------------------------------------------------------------------------------- 3

1.2.2

表名

:ACT_GE_BYTEARRAY

(通用的流程定义和流程资源)

-------------------------------- 3

1.2.3

表名

:ACT_GE_PROPERTY

(系统相关属性)

----------------------------------------------------- 4

1.2.4

表名

:ACT_HI_ACTINST

(历史节点表)

------------------------------------------------------------ 5

1.2.5

表名

:ACT_HI_ATTACHMENT

(附件信息)

-------------------------------------------------------- 6

1.2.6

表名

:ACT_HI_COMMENT

(历史审批意见表)

-------------------------------------------------- 6

1.2.7

表名

:ACT_HI_DETAIL

(历史详细信息)

----------------------------------------------------------- 7

1.2.8

表名

:ACT_HI_IDENTITYLINK

(历史流程人员表)

---------------------------------------------- 8

1.2.9

表名

:ACT_HI_PROCINST

(历史流程实例信息)核心表

---------------------------------------- 8

1.2.10

表名

:ACT_HI_TASKINST

(历史任务流程实例信息)核心表

------------------------------ 9

1.2.11

表名

:ACT_HI_VARINST

(历史变量信息)

------------------------------------------------------ 9

1.2.12

表名

:ACT_ID_GROUP

(用户组表)

------------------------------------------------------------ 10

1.2.13

表名

:ACT_ID_INFO

(用户扩展信息表)

---------------------------------------------------- 10

1.2.14

表名

:ACT_ID_MEMBERSHIP

(用户用户组关联表)

-------------------------------------- 11

1.2.15

表名

:ACT_ID_USER

(用户信息表)

------------------------------------------------------------ 11

1.2.16

表名

:ACT_RE_DEPLOYMENT

(部署信息表)

------------------------------------------------ 12

1.2.17

表名

:ACT_RE_MODEL (

流程设计模型部署表

) ----------------------------------------------- 12

1.2.18

表名

:ACT_RE_PROCDEF

(流程定义表)

---------------------------------------------------- 13

1.2.19

表名

:ACT_RU_EVENT_SUBSCR (

运行时事件

) ------------------------------------------------- 14

1.2.20

表名

:ACT_RU_EXECUTION

(运行时流程执行实例)

----------------------------------- 15

1.2.21

表名

:ACT_RU_IDENTITYLINK

(身份联系)

--------------------------------------------------- 15

1.2.22

表名

:ACT_RU_JOB

(运行中的任务)

---------------------------------------------------------- 16

1.2.23

表名

:ACT_RU_TASK(

运行时任务数据表

) ------------------------------------------------------ 16

1.2.24

表名

:ACT_RU_VARIABLE(

运行时流程变量数据表

) ----------------------------------------- 17

2

ACTIVITI中主要对象的关系 -------------------------------------------------------------------------------------- 18

Activiti数据表结构

1 Activiti数据库表结构

1.1 数据库表名说明

Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头。

并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service

API匹配。

 ACT_GE_* : “GE”代表“General”(通用),用在各种情况下;

 ACT_HI_* : “HI”代表“History”(历史),这些表中保存的都是历史数

据,比如执行过的流程实例、变量、任务,等等。Activit默认提供了4种

历史级别:

none: 不保存任何历史记录,可以提高系统性能;

activity:保存所有的流程实例、任务、活动信息;

audit:也是Activiti的默认级别,保存所有的流程实例、任务、活动、

表单属性;

full: 最完整的历史记录,除了包含audit级别的信息之外还能保存详

细,例如:流程变量。

对于几种级别根据对功能的要求选择,如果需要日后跟踪详细可以开启full。

 ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都是身份

信息,如用户和组以及两者之间的关系。如果Activiti被集成在某一系统

当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;

 ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些 ‘静

态’信息,如流程定义和流程资源(如图片、规则等);

 ACT_RU_* : “RU”代表“Runtime”(运行时),这些表中保存一些流程实

例、用户任务、变量等的运行时数据。Activiti只保存流程实例在执行过程

中的运行时数据,并且当流程结束后会立即移除这些数据,这是为了保证运

行时表尽量的小并运行的足够快;

Activiti数据表结构

1.2 数据库表结构

1.2.1 Activiti数据表清单:

表分类 表名

ACT_GE_BYTEARRAY

ACT_GE_PROPERTY

ACT_HI_ACTINST

解释

通用的流程定义和流程资源

系统相关属性

历史的流程实例

一般数据

ACT_HI_ATTACHMENT

ACT_HI_COMMENT

历史的流程附件

历史的说明性信息

历史的流程运行中的细节信息

流程历史记录

ACT_HI_DETAIL

ACT_HI_IDENTITYLINK

ACT_HI_PROCINST

ACT_HI_TASKINST

ACT_HI_VARINST

ACT_ID_GROUP

历史的流程运行过程中用户关系

历史的流程实例

历史的任务实例

历史的流程运行中的变量信息

身份信息-组信息

身份信息-组信息

用户用户组表

ACT_ID_INFO

ACT_ID_MEMBERSHIP

ACT_ID_USER

身份信息-用户和组关系的中间表

身份信息-用户信息

ACT_RE_DEPLOYMENT部署单元信息

模型信息

流程定义表

ACT_RE_MODEL

ACT_RE_PROCDEF已部署的流程定义

ACT_RU_EVENT_SUBSCR

ACT_RU_EXECUTION

运行时事件

运行时流程执行实例

运行实例表

ACT_RU_IDENTITYLINK

ACT_RU_JOB

运行时用户关系信息

运行时作业

ACT_RU_TASK运行时任务

ACT_RU_VARIABLE运行时变量表

1.2.2 表名:ACT_GE_BYTEARRAY (

通用的流程定义和流程资源

用来保存部署文件的大文本数据。

Activiti数据表结构

保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进

制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关

的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。

ACT_GE_BYTEARRAY(act_ge_bytearray)

是否

主键

字段名 字段描述 数据类型 可空

缺省值

取值说明

是 ID_ 主键ID,资源文件编号,VARCHAR(64)

自增长

REV_

NAME_

版本号

部署的文件名称,

INT(11)

VARCHAR(255)

Version

DEPLOYMENT_ID_ 来自于父表

ACT_RE_DEPLOYMENT的主

VARCHAR(64) 是 部署的ID

BYTES_ 大文本类型,存储文本字LONGBLOB

节流

GENERATED_ 是否是引擎生成。

TINYINT(4) 是 0为用户生成

1为Activiti生成

1.2.3 表名:ACT_GE_PROPERTY (

系统相关属性

属性数据表。存储这个流程引擎级别的数据。

ACT_GE_PROPERTY(act_ge_property)

是否

主键

字段名 字段描述

属性名称

数据类型 长度 可空 约束 缺省值

取值说明

n

y

VALUE_ 属性值

REV_INT 版本号 INT(11) 11 是

VARCHAR(300) 300 是 5.*

create(5.*)

是 NAME_ VARCHAR(64) 64

Activiti数据表结构

1.2.4 表名:ACT_HI_ACTINST (历史节点表)

历史活动信息。这里记录流程流转过的所有节点,与HI_TASKINST不同的是,

taskinst只记录usertask内容。

ACT_HI_ACTINST(act_hi_actinst)

是否

字段名

主键

是 ID_

PROC_DEF_ID_

PROC_INST_ID_

EXECUTION_ID_

ACT_ID_

字段描述

ID_

流程定义ID

流程实例ID

流程执行ID

活动ID

数据类型

VARCHAR(64)

VARCHAR(64)

VARCHAR(64)

VARCHAR(64)

VARCHAR(255)

可空 约束

节点定义ID

TASK_ID_ 任务ID VARCHAR(64) 是

任务实例ID 其他节点

类型实例ID在这里为

CALL_PROC_INST_ID_ 请求流程实例ID VARCHAR(64) 是

调用外部流程的流程

实例ID'

ACT_NAME_ 活动名称 VARCHAR(255) 是

节点定义名称

ACT_TYPE_ 活动类型 VARCHAR(255)

如startEvent、

userTask

ASSIGNEE_ 代理人员 VARCHAR(64) 是

节点签收人

START_TIME_ 开始时间 DATETIME

2013-09-15

11:30:00

END_TIME_ 结束时间 DATETIME 是

2013-09-15

11:30:00

DURATION_ 时长,耗时 BIGINT(20) 是

毫秒值

取值说明

Activiti数据表结构

1.2.5 表名:ACT_HI_ATTACHMENT (附件信息)

ACT_HI_ATTACHMENT(act_hi_attachment)

是否

字段名

主键

是 ID_

REV_

USER_ID_

NAME_

DESCRIPTION_

TYPE_

TASK_ID_

PROC_INST_ID_

URL_

CONTENT_ID_

字段描述

ID_

REV_

用户id

名称

描述

类型

任务Id

流程实例ID

连接

内容Id

字节表的ID

数据类型 长度 可空 约束 缺省值

取值说明

主键ID

Version

用户ID

附件名称

描述

附件类型

节点实例ID

流程实例ID

附件地址

ACT_GE_BYTEARRAY

的ID

VARCHAR(64) 64

INT(11) 11 是

VARCHAR(255) 255

VARCHAR(255) 255

VARCHAR(4000) 4000

VARCHAR(255) 255

VARCHAR(64) 64

VARCHAR(64) 64

VARCHAR(4000) 4000

VARCHAR(64) 64

1.2.6 表名:ACT_HI_COMMENT (历史审批意见表)

ACT_HI_COMMENT(act_hi_comment)

是否

字段名

主键

是 ID_

TYPE_

字段描述

ID_

数据类型 长度 可空 约束 缺省值

取值说明

主键ID

类型:event(事件)

comment(意见)

填写时间

填写人

节点实例ID

流程实例ID

值为下列内容中的

一种:

AddUserLink、

DeleteUserLink、

AddGroupLink、

DeleteGroupLink、

AddComment、

AddAttachment、

DeleteAttachment

VARCHAR(64) 64

TIME_

USER_ID_

TASK_ID_

意见记录类型,为VARCHAR(255) 255

comment时,为处

理意见

记录时间 DATETIME

用户Id

任务Id

VARCHAR(255) 255

VARCHAR(64) 64

VARCHAR(64) 64

PROC_INST_ID_ 流程实例Id

ACTION_ 行为类型。 VARCHAR(255) 255

为addcomment

时,为处理意见

Activiti数据表结构

MESSAGE_ 处理意见 VARCHAR(4000) 4000 是 用于存放流程产生

的信息,比如审批意

FULL_MSG_ 全部消息 LONGBLOB 是

1.2.7 表名:ACT_HI_DETAIL (历史详细信息)

历史详情表:流程中产生的变量详细,包括控制流程流转的变量,业务表单

中填写的流程需要用到的变量等。

ACT_HI_DETAIL(act_hi_detail)

字段名

是 ID_

TYPE_

字段描述

ID_

数据类型

数据类型 长度 可空 约束 缺省值

取值说明

主键

类型:

FormProperty, //

表单

VariableUpdate //

参数

流程实例ID

执行实例ID

任务实例ID

ACT_HI_ACTINST表

的ID

名称

参见VAR_TYPE_类型

说明

Version

创建时间

ACT_GE_BYTEARRAY

表的ID

存储变量类型为

Double

存储变量类型为

long

存储变量值类型为

String

此处存储的是JPA持

久化对象时,才会有

值。此值为对象ID

VARCHAR(64) 64

VARCHAR(255) 255

PROC_INST_ID_ 流程实例ID

EXECUTION_ID_ 执行实例Id

TASK_ID_

ACT_INST_ID_

NAME_

VAR_TYPE_

REV_

TIME_

任务Id

活动实例Id

名称

变量类型

REV_

创建时间

VARCHAR(64) 64

VARCHAR(64) 64

VARCHAR(64) 64

VARCHAR(64) 64

VARCHAR(255) 255

VARCHAR(255) 255

INT(11)

DATETIME

11

BYTEARRAY_ID_ 字节数组Id

DOUBLE_

LONG_

TEXT_

TEXT2_

DOUBLE_

LONG_

值2

VARCHAR(64) 64

DOUBLE

BIGINT(20)

20

VARCHAR(4000) 4000

VARCHAR(4000) 4000

备注:VAR_TYPE_类型说明

: jpa-entity、boolean、bytes、serializable(可序列化)、自定义

type(根据你自身配置)、 CustomVariableType、date、double、integer、long、null、

short、string

Activiti数据表结构

1.2.8 表名:ACT_HI_IDENTITYLINK (历史流程人员表)

任务参与者数据表。主要存储历史节点参与者的信息。

ACT_HI_IDENTITYLINK(act_hi_identitylink)

是否

字段名

主键

是 ID_

GROUP_ID_

TYPE_

字段描述

ID_

用户组ID

用户组类型

缺省

长度 可空 约束

VARCHAR(64) 64

数据类型

VARCHAR(255) 255

VARCHAR(255) 255

取值说明

ID_

组ID

类型,主要分为以下

几种:

assignee、

candidate、

owner、starter 、

participant

用户ID

节点实例ID

流程实例ID

USER_ID_

TASK_ID_

PROC_INST_ID_

用户ID

任务Id

流程实例Id

VARCHAR(255) 255

VARCHAR(64) 64

VARCHAR(64) 64

1.2.9 表名:ACT_HI_PROCINST(历史流程实例信息)核心表

ACT_HI_PROCINST(act_hi_procinst)

是否

字段名

主键

是 ID_

PROC_INST_ID_

BUSINESS_KEY_

PROC_DEF_ID_

START_TIME_

END_TIME_

DURATION_

START_USER_ID_

START_ACT_ID_

END_ACT_ID_

字段描述

ID_

流程实例ID

业务Key

流程定义Id

开始时间

结束时间

时长

发起人员Id

开始节点

结束节点

数据类型

VARCHAR(64)

VARCHAR(64)

长度

64

64

可约缺省备

空 束 值 注

VARCHAR(255) 255 是

VARCHAR(64)

DATETIME

DATETIME

BIGINT(20)

64

20

VARCHAR(255) 255 是

VARCHAR(255) 255 是

VARCHAR(255) 255 是

VARCHAR(64) 64 是 SUPER_PROCESS_INSTANCE_ID_ 超级流程实例Id

DELETE_REASON_ 删除理由 VARCHAR(4000) 4000 是

Activiti数据表结构

1.2.10 表名:ACT_HI_TASKINST(历史任务流程实例信息)

核心表

ACT_HI_TASKINST(act_hi_taskinst)

是 ID_

PROC_DEF_ID_

ID_

流程定义Id

VARCHAR(64) 64

VARCHAR(64) 64

VARCHAR(255) 255

VARCHAR(64) 64

VARCHAR(64) 64

VARCHAR(255) 255

VARCHAR(64) 64

VARCHAR(4000) 4000

主键ID

流程定义ID

节点定义ID

流程实例ID

执行实例ID

名称

父节点实例ID

描述

签收人(默认为空,只

有在委托时才有值)

VARCHAR(255) 255

DATETIME

DATETIME

DATETIME

BIGINT(20)

20

签收人或被委托

开始时间

提醒时间

结束时间

耗时

删除原因

(completed,deleted)

PRIORITY_

DUE_DATE_

优先级

应完成时间

INT(11)

DATETIME

11

优先级别

过期时间,表明任务应

在多长时间内完成

FORM_KEY_ 表单key VARCHAR(255) 255 是 desinger节点定义的

form_key属性

字段名 字段描述 数据类型 长度 可空 约束 缺省值 备注

TASK_DEF_KEY_ 任务定义Key

PROC_INST_ID_ 流程实例ID

EXECUTION_ID_ 执行ID

NAME_ 名称

PARENT_TASK_ID_ 父任务iD

DESCRIPTION_

OWNER_

描述

实际签收人 任务VARCHAR(255) 255

的拥有者

ASSIGNEE_

START_TIME_

CLAIM_TIME_

END_TIME_

DURATION_

代理人

开始时间

提醒时间

结束时间

时长

DELETE_REASON_ 删除理由 VARCHAR(4000) 4000

1.2.11 表名:ACT_HI_VARINST(历史变量信息)

ACT_HI_VARINST(act_hi_varinst)

Activiti数据表结构

是否

字段名

主键

是 ID_

缺省

长度 可空 约束 备注

64 ID_

64

64

64

流程实例ID

执行实例ID

任务实例ID

参数名称(英文)

参见VAR_TYPE_类型说明

Version

ACT_GE_BYTEARRAY表的主键

存储DoubleType类型的数

存储LongType类型的数据

存储变量值类型为String,

如此处存储持久化对象时,

值jpa对象的class

此处存储的是JPA持久化对

象时,才会有值。此值为对

象ID

字段描述

ID_

数据类型

VARCHAR(64)

VARCHAR(64)

VARCHAR(64)

VARCHAR(64)

PROC_INST_ID_ 流程实例ID

EXECUTION_ID_ 执行ID

TASK_ID_

NAME_

VAR_TYPE_

REV_

任务Id

名称

变量类型

REV_

VARCHAR(255) 255

VARCHAR(100) 100 是

INT(11)

VARCHAR(64)

DOUBLE

BIGINT(20)

11

64

20

BYTEARRAY_ID_ 字节数组ID

DOUBLE_

LONG_

TEXT_

DOUBLE_

LONG_

TEXT_ VARCHAR(4000) 4000 是

TEXT2_ TEXT2_ VARCHAR(4000) 4000 是

1.2.12 表名:ACT_ID_GROUP(用户组表)

用来存储用户组信息。

ACT_ID_GROUP(act_id_group)

是否

字段名

主键

是 ID_

REV_

NAME_

TYPE_

字段描述

用户组ID

版本号

用户组描述信息

用户组类型

数据类型 长度 可空 约束 缺省值

备注

VARCHAR(64) 64

INT(11) 11

VARCHAR(255) 255

VARCHAR(255) 255

1.2.13 表名:ACT_ID_INFO (用户扩展信息表)

用户扩展信息表。目前该表未用到。

ACT_ID_INFO(act_id_info)

是否

字段名

主键

是 ID_

REV_

字段描述

版本号

数据类型

VARCHAR(64)

INT(11)

长度

64

11

可空 约束

缺省值

备注

Activiti数据表结构

USER_ID_

TYPE_

KEY_

VALUE_

PASSWORD_

PARENT_ID_

用户ID

类型

formINPut名称

密码

父节点

VARCHAR(64)

VARCHAR(64)

64

64

VARCHAR(255) 255

VARCHAR(255) 255

LONGBLOB

VARCHAR(255) 255

1.2.14 表名:ACT_ID_MEMBERSHIP(用户用户组关联表)

用来保存用户的分组信息

ACT_ID_MEMBERSHIP(act_id_membership)

是否

字段名

主键

是 USER_ID_

是 GROUP_ID_

字段描述

用户Id

用户组Id

数据类型

VARCHAR(64)

VARCHAR(64)

长度

64

64

可空 约束

缺省值 备注

1.2.15 表名:ACT_ID_USER(用户信息表)

ACT_ID_USER(act_id_user)

是否

字段名

主键

是 ID_

REV_

FIRST_

LAST_

EMAIL_

PWD_

PICTURE_ID_

字段描述

ID_

版本号

用户名称

用户姓氏

邮箱

密码

头像Id

数据类型 长度 可空 约束 缺省值

备注

VARCHAR(64) 64

INT(11) 11

VARCHAR(255) 255

VARCHAR(255) 255

VARCHAR(255) 255

VARCHAR(255) 255

VARCHAR(64) 64

Activiti数据表结构

1.2.16 表名:ACT_RE_DEPLOYMENT(部署信息表)

用来存储部署时需要持久化保存下来的信息

ACT_RE_DEPLOYMENT(act_re_deployment)

是否

字段名

主键

是 ID_

NAME_

CATEGORY_

TENANT_ID_

字段描述 数据类型 长度 可空 约束 缺省值

64

备注

VARCHAR(64)

部署编号,自增长

部署包的名称

类型

租户

VARCHAR(255) 255

VARCHAR(255) 255

VARCHAR(255) 255 多租户通常是在软

件需要为多个不同

组织服务时产生的

概念

DEPLOY_TIME_

部署时间

TIMESTAMP CURRENT_TIMESTAMP

1.2.17 表名:ACT_RE_MODEL (流程设计模型表)

创建流程的设计模型时,保存在该数据表中。

ACT_RE_MODEL(act_re_model)

是否

字段名

主键

是 ID_

REV_

NAME_

字段描述

ID_

模型的名称:

比如:收文管理

KEY_ 模型的关键字,流程VARCHAR(255) 255

引擎用到。

比如:FTOA_SWGL

CATEGORY_ 类型,用户自己对流VARCHAR(255) 255

程模型的分类。

CREATE_TIME_ 创建时间 TIMESTAMP

TIMESTAMP

创建时间

最新修改时间

是 分类,例如:

.

com/docs/activiti/

分类

数据类型

缺省

长度 可空 约束

备注

ID_

乐观锁

名称

VARCHAR(64) 64

INT(11) 11 是

是 VARCHAR(255) 255

LAST_UPDATE_TIM最后修改时间

E_

VERSION_ 版本,从1开始。 INT(11) 11 是 版本

Activiti数据表结构

META_INFO_ 数据源信息,比如: VARCHAR(40004000 是

{"name":"FTOA_SWGL)

","revision":1,"de

scription":"丰台财

政局OA,收文管理流

程"}

DEPLOYMENT_ID_ 部署ID

EDITOR_SOURCE_V编辑源值ID

ALUE_ID_

EDITOR_SOURCE_E编辑源额外值ID(外VARCHAR(64) 64

XTRA_VALUE_ID_ 键

ACT_GE_BYTEARRAY )

TENANT_ID_

VARCHAR(64) 64

VARCHAR(64) 64

部署ID

是 ACT_GE_BYTEARRA

Y 表中的ID_值。

是 ACT_GE_BYTEARRA

Y 表中的ID_值。

以json格式保存流

程定义的信息

租户

VARCHAR(255) 255 是

1.2.18 表名:ACT_RE_PROCDEF (流程定义:解析表)

流程解析表,解析成功了,在该表保存一条记录。业务流程定义数据表

ACT_RE_PROCDEF(act_re_procdef)

是否

字段名

主键

是 ID_

字段描述 数据类型 长度 可空 约束 缺省 备注

64 ID_ 流程ID,由“流程编号:VARCHAR(64)

流程版本号:自增长ID”

组成

REV_

CATEGORY_

版本号 INT(11) 11 是

乐观锁

流程定义的

Namespace就是类

流程命名空间(该编号就是VARCHAR(255) 255 是

流程文件targetNamespace

的属性值)

NAME_ 流程名称(该编号就是流程VARCHAR(255) 255 是

文件process元素的name

属性值)

名称

KEY_ 流程编号(该编号就是流程VARCHAR(255) 255

文件process元素的id属

性值)

流程定义ID

VERSION_ 流程版本号(由程序控制,INT(11)

新增即为1,修改后依次加

11 版本

Activiti数据表结构

1来完成的)

DEPLOYMENT_ID部署编号

_

RESOURCE_NAME资源文件名称

_

DGRM_RESOURCE图片资源文件名称

_NAME_

DESCRIPTION_ 描述信息

HAS_START_FOR是否从key启动

M_KEY_

VARCHAR(4000) 4000 是

TINYINT(4) 4 是

描述

start节点是否存

在formKey

0否 1是

SUSPENSION_ST是否挂起

ATE_

INT(11) 11 是 1 激活 2挂起

VARCHAR(4000) 4000 是 png流程图片名称

VARCHAR(4000) 4000 是 流程bpmn文件名称

VARCHAR(64) 64 是 部署表ID

注:此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里

可能包含多个流程定义文件,每个流程定义文件都会有一条记录在

ACT_RE_PROCDEF表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY

表内的一个资源文件和PNG图片文件。和ACT_GE_BYTEARRAY的关联是通过

程序用ACT_GE_与ACT_RE__完成的,在数据库

表结构中没有体现。

1.2.19 表名:ACT_RU_EVENT_SUBSCR (运行时事件)

ACT_RU_EVENT_SUBSCR(act_ru_event_subscr)

是否

字段名

主键

是 ID_

REV_

EVENT_TYPE_

EVENT_NAME_

字段描述

ID

版本号

事件类型

事件名称

数据类型 长度 可空 约束 缺省值

备注

VARCHAR(64) 64

INT(11) 11 是

VARCHAR(255) 255

VARCHAR(255) 255

VARCHAR(64) 64

VARCHAR(64) 64

VARCHAR(64) 64

VARCHAR(255) 255

TIMESTAMP

EXECUTION_ID_ 流程执行ID

PROC_INST_ID_ 流程实例ID

ACTIVITY_ID_ 活动ID

CONFIGURATION_ 配置信息

CREATED_ 创建时间 CURRENT_TIMESTAMP

Activiti数据表结构

1.2.20 表名:ACT_RU_EXECUTION (运行时流程执行实例)

核心,我的代办任务查询表

ACT_RU_EXECUTION(act_ru_execution)

是否

字段名

主键

是 ID_

REV_

PROC_INST_ID_

BUSINESS_KEY_

PARENT_ID_

PROC_DEF_ID_

SUPER_EXEC_

ACT_ID_

字段描述

ID_

版本号

流程实例编号

业务编号

父执行流程

流程定义Id

实例id

数据类型

VARCHAR(64)

INT(11)

VARCHAR(64)

长度 可空 约束 缺省值 备注

64

11

64

ID_

乐观锁

流程实例ID

业务主键ID

父节点实例ID

流程定义ID

节点实例ID即

ACT_HI_ACTINST中

ID

是否存活

是否为并行

(true/false)

挂起状态 1激

活 2挂起

VARCHAR(255) 255

VARCHAR(64)

VARCHAR(64)

VARCHAR(64)

64

64

64

VARCHAR(255) 255

IS_ACTIVE_

IS_CONCURRENT_

IS_SCOPE_

激活状态

并发状态

TINYINT(4)

TINYINT(4)

TINYINT(4)

TINYINT(4)

4

4

4

4

11

11

IS_EVENT_SCOPE_

SUSPENSION_STATE暂停状态_ INT(11)

_

CACHED_ENT_STATE缓存结束状态_ INT(11)

_

1.2.21 表名:ACT_RU_IDENTITYLINK(身份联系)

主要存储当前节点参与者的信息, 任务参与者数据表。

ACT_RU_IDENTITYLINK(act_ru_identitylink)

是否主

字段名

是 ID_

REV_

GROUP_ID_

TYPE_

字段描述

ID_

版本号

用户组ID

用户组类型

数据类型 长度 可空 约束 缺省值

取值说明

VARCHAR(64) 64

INT(11) 11

主要分为以下几

种:assignee、

candidate、

owner、starter、

participant。

即:受让人,候选

人,所有者、起动

器、参与者

VARCHAR(255) 255

VARCHAR(255) 255

Activiti数据表结构

USER_ID_

TASK_ID_

用户ID

任务Id

VARCHAR(255) 255

VARCHAR(64) 64

VARCHAR(64) 64

VARCHAR(64) 64

PROC_INST_ID_ 流程实例ID

PROC_DEF_ID_ 流程定义Id

1.2.22 表名:ACT_RU_JOB(运行中的任务)

运行时定时任务数据表

ACT_RU_JOB(act_ru_job)

是否

字段名

主键

是 ID_

REV_

TYPE_

LOCK_EXP_TIME_

LOCK_OWNER_

EXCLUSIVE_

EXECUTION_ID_

字段描述

ID_

版本号

TYPE_

LOCK_EXP_TIME_

LOCK_OWNER_

EXCLUSIVE_

EXECUTION_ID_

数据类型

VARCHAR(64)

INT(11)

长度 可空 约束 缺省值 取值说明

64

11

标识

版本

类型

锁定释放时间

挂起者

执行实例ID

流程实例ID

流程定义ID

异常信息ID

异常信息

到期时间

重复

处理类型

标识

VARCHAR(255) 255

TIMESTAMP 是

VARCHAR(255) 255

TINYINT(1)

VARCHAR(64)

1

64

64

64

11

PROCESS_INSTANCEPROCESS_INSTANCEVARCHAR(64)

_ID_ _ID_

PROC_DEF_ID_ PROC_DEF_ID_ VARCHAR(64)

RETRIES_ RETRIES_ INT(11)

EXCEPTION_STACK_EXCEPTION_STACK_VARCHAR(64) 64 是

ID_ ID_

EXCEPTION_MSG_ EXCEPTION_MSG_ VARCHAR(4000) 4000 是

DUEDATE_

REPEAT_

HANDLER_TYPE_

HANDLER_CFG_

DUEDATE_

REPEAT_

HANDLER_TYPE_

HANDLER_CFG_

TIMESTAMP 是

VARCHAR(255) 255

VARCHAR(255) 255

VARCHAR(4000) 4000 是

1.2.23 表名:ACT_RU_TASK(运行时任务数据表)

(执行中实时任务)代办任务查询表

ACT_RU_TASK(act_ru_task)

是否

字段名

主键

字段描述 数据类型

缺省

长度 可空 约束

取值说明

Activiti数据表结构

是 ID_

REV_

ID_

版本号

VARCHAR(64) 64

INT(11) 11

ID_

乐观锁

执行实例ID

流程实例ID

EXECUTION_ID_ 实例id(外键VARCHAR(64) 64

EXECUTION_ID_)

PROC_INST_ID_ 流程实例ID(外VARCHAR(64) 64

PROC_INST_ID_)

PROC_DEF_ID_ 流程定义ID VARCHAR(64) 64

NAME_ 任务名称 VARCHAR(255) 255

VARCHAR(64) 64

流程定义ID

节点定义名称

父节点实例ID

节点定义描述

任务定义的ID

拥有者(一般情况下为空,

只有在委托时才有值)

签收人或委托人

委托类型,

DelegationState分为两

种:PENDING,RESOLVED。

如无委托则为空

优先级别,默认为:50

创建时间,

CURRENT_TIMESTAMP

耗时

1代表激活 2代表挂起

PARENT_TASK_I父节任务ID

D_

DESCRIPTION_ 任务描述

TASK_DEF_KEY_ 任务定义key

OWNER_

ASSIGNEE_

DELEGATION_

所属人(老板)

代理人员

(受让人)

代理团

VARCHAR(40004000 是

)

VARCHAR(255) 255 是

VARCHAR(255) 255

VARCHAR(255) 255

VARCHAR(64) 64

PRIORITY_ 优先权 INT(11)

TIMESTAMP

DATETIME

INT(11)

11

11

CREATE_TIME_ 创建时间

DUE_DATE_ 执行时间 是

是 SUSPENSION_ST暂停状态

ATE_

1.2.24 表名:ACT_RU_VARIABLE(运行时流程变量数据表)

ACT_RU_VARIABLE(act_ru_variable)

是否

字段名

主键

是 ID_

REV_

TYPE

NAME_

字段描述

ID_

版本号

编码类型

变量名称

数据类型

VARCHAR(64)

INT(11)

缺省

长度 可空 约束

64

11 是

备注

主键标识

乐观锁

参见VAR_TYPE_类型说明

变量名称

执行的ID

流程实例ID

节点实例ID(Local)

字节表的ID

(ACT_GE_BYTEARRAY)

存储变量类型为Double

存储变量类型为long

VARCHAR(255) 255

VARCHAR(255) 255

VARCHAR(64)

VARCHAR(64)

VARCHAR(64)

VARCHAR(64)

DOUBLE

BIGINT(20)

64

64

64

64

20

EXECUTION_ID_ 执行实例ID

PROC_INST_ID_ 流程实例Id

TASK_ID_ 任务id

BYTEARRAY_ID_ 字节组ID

DOUBLE_

LONG_

DOUBLE_

LONG_

Activiti数据表结构

TEXT_ TEXT_ VARCHAR(4000) 4000 是 存储变量值类型为String

如此处存储持久化对象

时,值jpa对象的class

此处存储的是JPA持久化

对象时,才会有值。此值

为对象ID

TEXT2_ TEXT2_ VARCHAR(4000) 4000 是

2 Activiti中主要对象的关系

本节主要介绍在工作流中出现的几个对象及其之间的关系,以及在Activiti

中各个对象是如何关联的。

在开始之前先看看下图,对整个对象结构有个了解,再结合实例详细介绍理

解。

图1.

Activiti中几个对象之间的关系

我们模拟一个请假的流程进行分析介绍,该流程主要包含以下几个步骤:

 员工申请请假

 部门领导审批

 人事审批

 员工销假

ProcessInstance对象

Activiti数据表结构

员工开始申请请假流程,通过rocessInstance()方

法启动,引擎会创建一个流程实例(ProcessInstance)。

简单来说流程实例就是根据一次(一条)业务数据用流程驱动的入口,两者

之间是一对一的关系。流程引擎会创建一条数据到ACT_RU_EXECUTION表,同时

也会根据history的级别决定是否查询相同的历史数据到ACT_HI_PROCINST表。

启动完流程之后业务和流程已经建立了关联关系,第一步结束。

启动流程和业务关联区别:

对于自定义表单来说启动的时候会传入businessKey作为业务和流程的

关联属性

对于动态表单来说不需要使用businessKey关联,因为所有的数据都保存

在引擎的表中

对于外部表单来说businessKey是可选的,但是一般不会为空,和自定义

表单类似

Execution对象

对于初学者来说,最难理解的地方就是ProcessInstance与Execution之间

的关系,要分两种情况说明。Execution的含义就是一个流程实例

(ProcessInstance)具体要执行的过程对象。

不过在说明之前先声明两者的对象映射关系:

ProcessInstance(1)→ Execution(N),(其中N >= 1)。

1) 值相等的情况:

除了在流程中启动的子流程之外,流程启动之后在表ACT_RU_EXECUTION中

的字段ID_和PROC_INST_ID_字段值是相同的。

图2. ID_和PROC_INST_ID_相等

2) 值不相等的情况:

Activiti数据表结构

不相等的情况目前只会出现在子流程中(包含:嵌套、引入),例如一个购

物流程中除了下单、出库节点之外可能还有一个付款子流程,在实际企业应用中

付款流程通常是作为公用的,所以使用子流程作为主流程(购物流程)的一部分。

当任务到达子流程时引擎会自动创建一个付款流程,但是这个流程有一个特殊的

地方,在数据库可以直观体现,如下图。

图3. ID_和PROC_INST_ID_不相等

上图中有两条数据,第二条数据(嵌入的子流程)的PARENT_ID_等于第一条数

据的ID_和PROC_INST_ID_,并且两条数据的PROC_INST_ID_相同。

上图中还有一点特殊的地方,字段IS_ACTIVE_的值分别是0和1,说明正在

执行子流程主流程挂起。

Task对象

前面说了ProcessInstance和业务是一对一关联的,和业务数据最亲密;而

Task则和用户最亲密的(UserTask),用户每天的待办事项就是一个个的Task

对象。

从图1中看得出Execution和Task是一对一关系,Task可以是任何类型的

Task实现,可以是用户任务(UserTask)、Java服务(Java ServiceTask)等,

在实际流程运行中只不过面向对象不同,用户任务(UserTask)需要有人为参与完

成(complete),Java服务需要由系统自动执行(execution)。

图4. 表ACT_RU_TASK

Task是在流程定义中看到的最大单位,每当一个Task完成的时候会引擎会

把当前的任务移动到历史中,然后插入下一个任务插入到表ACT_RU_TASK中。结

Activiti数据表结构

合请假流程来说就是让用户点击“完成”按钮提交当前任务是的动作,引擎自动

根据任务的顺序流或者排他分支判断走向。

HistoryActivity(历史活动)

图5. 表ACT_HI_ACTINST

Activity包含了流程中所有的活动数据,例如开始事件(图5表中的第1

条数据)、各种分支(排他分支、并行分支等,图5表中的第2条数据)、以及

刚刚提到的Task执行记录(如图5表中的第3、4条数据)。

有些人认为Activity和Task是多对一关系,其实不是,从上图中可以看出

来根本没有Task相关的字段。

结合请假流程来说,如Task中提到的当完成流程的时候所有下一步要执行

的任务(包括各种分支)都会创建一个Activity记录到数据库中。例如领导审

核节点点击“同意”按钮就会流转到人事审批节点,如果“驳回”那就流转到调

整请假内容节点,每一次操作的Task背后实际记录更详细的活动(Activity)。


本文标签: 流程 实例 信息