Activiti数据库表结构

Activiti工作流引擎核心表结构与注释解析 阅读详情

备注:

本文转自:http://blog.youkuaiyun.com/hj7jay/article/details/51302829

转载目的在于个人学习使用,如有涉及著作权相关问题,请联系本人,本人将第一时间删除内容。

 

Activiti数据表结构

1  Activiti数据库表结构

1.1      数据库表名说明

 

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

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

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

u  ACT_HI_* : “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例、变量、任务,等等。Activit默认提供了4种历史级别:

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

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

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

Ø  full:最完整的历史记录,除了包含audit级别的信息之外还能保存详细,例如:流程变量。

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

 

u  ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都是身份信息,如用户和组以及两者之间的关系。如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;

u  ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些‘静态’信息,如流程定义和流程资源(如图片、规则等);

u  ACT_RU_* : “RU”代表“Runtime”(运行时),这些表中保存一些流程实例、用户任务、变量等的运行时数据。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(通用的流程定义和流程资源)

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

保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。

ACT_GE_BYTEARRAY(act_ge_bytearray)

是否主键

字段名

字段描述

数据类型

可空

约束

缺省值

取值说明

是

ID_

主键ID,资源文件编号,自增长

VARCHAR(64)

 

REV_

版本号

INT(11)

是

Version

NAME_

部署的文件名称,

VARCHAR(255)

是

mail.bpmn、mail.png 、mail.bpmn20.xml

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)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

NAME_

属性名称

VARCHAR(64)

64

schema.version

schema.history

next.dbid

VALUE_

属性值

VARCHAR(300)

300

是

5.*

create(5.*)

REV_INT

版本号

INT(11)

11

是

 

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

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

ACT_HI_ACTINST(act_hi_actinst)

是否主键

字段名

字段描述

数据类型

可空

约束

取值说明

是

ID_

ID_

VARCHAR(64)

 

PROC_DEF_ID_

流程定义ID

VARCHAR(64)

 

PROC_INST_ID_

流程实例ID

VARCHAR(64)

 

EXECUTION_ID_

流程执行ID

VARCHAR(64)

 

ACT_ID_

活动ID

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)

是

毫秒值

 

 

1.2.5   表名:ACT_HI_ATTACHMENT(附件信息)

ACT_HI_ATTACHMENT(act_hi_attachment)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

主键ID

REV_

REV_

INT(11)

11

是

Version

USER_ID_

用户id

VARCHAR(255)

255

是

用户ID

NAME_

名称

VARCHAR(255)

255

是

附件名称

DESCRIPTION_

描述

VARCHAR(4000)

4000

是

描述

TYPE_

类型

VARCHAR(255)

255

是

附件类型

TASK_ID_

任务Id

VARCHAR(64)

64

是

节点实例ID

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

流程实例ID

URL_

连接

VARCHAR(4000)

4000

是

附件地址

CONTENT_ID_

内容Id

字节表的ID

VARCHAR(64)

64

是

ACT_GE_BYTEARRAY的ID

 

 

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

ACT_HI_COMMENT(act_hi_comment)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

主键ID

TYPE_

意见记录类型,为comment时,为处理意见

VARCHAR(255)

255

是

类型:event(事件)

comment(意见)

TIME_

记录时间

DATETIME

填写时间

USER_ID_

用户Id

VARCHAR(255)

255

是

填写人

TASK_ID_

任务Id

VARCHAR(64)

64

是

节点实例ID

PROC_INST_ID_

流程实例Id

VARCHAR(64)

64

是

流程实例ID

ACTION_

行为类型。

为addcomment时,为处理意见

VARCHAR(255)

255

是

值为下列内容中的一种:    AddUserLink、DeleteUserLink、AddGroupLink、DeleteGroupLink、AddComment、AddAttachment、DeleteAttachment

MESSAGE_

处理意见

VARCHAR(4000)

4000

是

用于存放流程产生的信息,比如审批意见

FULL_MSG_

全部消息

LONGBLOB

是

 

 

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

历史详情表:流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。

ACT_HI_DETAIL(act_hi_detail)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

主键

TYPE_

数据类型

VARCHAR(255)

255

类型:

FormProperty, //表单

VariableUpdate //参数

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

流程实例ID

EXECUTION_ID_

执行实例Id

VARCHAR(64)

64

是

执行实例ID

TASK_ID_

任务Id

VARCHAR(64)

64

是

任务实例ID

ACT_INST_ID_

活动实例Id

VARCHAR(64)

64

是

ACT_HI_ACTINST表的ID

NAME_

名称

VARCHAR(255)

255

名称

VAR_TYPE_

变量类型

VARCHAR(255)

255

是

参见VAR_TYPE_类型说明

REV_

REV_

INT(11)

11

是

Version

TIME_

创建时间

DATETIME

创建时间

BYTEARRAY_ID_

字节数组Id

VARCHAR(64)

64

是

ACT_GE_BYTEARRAY表的ID

DOUBLE_

DOUBLE_

DOUBLE

是

存储变量类型为Double

LONG_

LONG_

BIGINT(20)

20

是

存储变量类型为long

TEXT_

值

VARCHAR(4000)

4000

是

存储变量值类型为String

TEXT2_

值2

VARCHAR(4000)

4000

是

此处存储的是JPA持久化对象时,才会有值。此值为对象ID

 

备注:VAR_TYPE_类型说明: jpa-entity、boolean、bytes、serializable(可序列化)、自定义type(根据你自身配置)、 CustomVariableType、date、double、integer、long、null、short、string

 

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

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

ACT_HI_IDENTITYLINK(act_hi_identitylink)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

ID_

GROUP_ID_

用户组ID

VARCHAR(255)

255

是

组ID

TYPE_

用户组类型

VARCHAR(255)

255

是

类型,主要分为以下几种:

assignee、

candidate、

owner、starter 、participant

USER_ID_

用户ID

VARCHAR(255)

255

是

用户ID

TASK_ID_

任务Id

VARCHAR(64)

64

是

节点实例ID

PROC_INST_ID_

流程实例Id

VARCHAR(64)

64

是

流程实例ID

 

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

ACT_HI_PROCINST(act_hi_procinst)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

BUSINESS_KEY_

业务Key

VARCHAR(255)

255

是

PROC_DEF_ID_

流程定义Id

VARCHAR(64)

64

START_TIME_

开始时间

DATETIME

END_TIME_

结束时间

DATETIME

是

DURATION_

时长

BIGINT(20)

20

是

START_USER_ID_

发起人员Id

VARCHAR(255)

255

是

START_ACT_ID_

开始节点

VARCHAR(255)

255

是

END_ACT_ID_

结束节点

VARCHAR(255)

255

是

SUPER_PROCESS_INSTANCE_ID_

超级流程实例Id

VARCHAR(64)

64

是

DELETE_REASON_

删除理由

VARCHAR(4000)

4000

是

 

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

ACT_HI_TASKINST(act_hi_taskinst)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

主键ID

PROC_DEF_ID_

流程定义Id

VARCHAR(64)

64

是

流程定义ID

TASK_DEF_KEY_

任务定义Key

VARCHAR(255)

255

是

节点定义ID

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

流程实例ID

EXECUTION_ID_

执行ID

VARCHAR(64)

64

是

执行实例ID

NAME_

名称

VARCHAR(255)

255

是

名称

PARENT_TASK_ID_

父任务iD

VARCHAR(64)

64

是

父节点实例ID

DESCRIPTION_

描述

VARCHAR(4000)

4000

是

描述

OWNER_

实际签收人 任务的拥有者

VARCHAR(255)

255

是

签收人(默认为空,只有在委托时才有值)

ASSIGNEE_

代理人

VARCHAR(255)

255

是

签收人或被委托

START_TIME_

开始时间

DATETIME

开始时间

CLAIM_TIME_

提醒时间

DATETIME

是

提醒时间

END_TIME_

结束时间

DATETIME

是

结束时间

DURATION_

时长

BIGINT(20)

20

是

耗时

DELETE_REASON_

删除理由

VARCHAR(4000)

4000

是

删除原因(completed,deleted)

PRIORITY_

优先级

INT(11)

11

是

优先级别

DUE_DATE_

应完成时间

DATETIME

是

过期时间,表明任务应在多长时间内完成

FORM_KEY_

表单key

VARCHAR(255)

255

是

desinger节点定义的

form_key属性

 

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

ACT_HI_VARINST(act_hi_varinst)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

ID_

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

流程实例ID

EXECUTION_ID_

执行ID

VARCHAR(64)

64

是

执行实例ID

TASK_ID_

任务Id

VARCHAR(64)

64

是

任务实例ID

NAME_

名称

VARCHAR(255)

255

参数名称(英文)

VAR_TYPE_

变量类型

VARCHAR(100)

100

是

参见VAR_TYPE_类型说明

REV_

REV_

INT(11)

11

是

Version

BYTEARRAY_ID_

字节数组ID

VARCHAR(64)

64

是

ACT_GE_BYTEARRAY表的主键

DOUBLE_

DOUBLE_

DOUBLE

是

存储DoubleType类型的数据

LONG_

LONG_

BIGINT(20)

20

是

存储LongType类型的数据

TEXT_

TEXT_

VARCHAR(4000)

4000

是

存储变量值类型为String,如此处存储持久化对象时,值jpa对象的class

TEXT2_

TEXT2_

VARCHAR(4000)

4000

是

此处存储的是JPA持久化对象时,才会有值。此值为对象ID

 

1.2.12       表名:ACT_ID_GROUP(用户组表)

用来存储用户组信息。

ACT_ID_GROUP(act_id_group)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

用户组ID

VARCHAR(64)

64

REV_

版本号

INT(11)

11

是

NAME_

用户组描述信息

VARCHAR(255)

255

是

TYPE_

用户组类型

VARCHAR(255)

255

是

 

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

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

ACT_ID_INFO(act_id_info)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

VARCHAR(64)

64

REV_

版本号

INT(11)

11

是

USER_ID_

用户ID

VARCHAR(64)

64

是

TYPE_

类型

VARCHAR(64)

64

是

KEY_

formINPut名称

VARCHAR(255)

255

是

VALUE_

值

VARCHAR(255)

255

是

PASSWORD_

密码

LONGBLOB

是

PARENT_ID_

父节点

VARCHAR(255)

255

是

 

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

用来保存用户的分组信息

ACT_ID_MEMBERSHIP(act_id_membership)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

USER_ID_

用户Id

VARCHAR(64)

64

是

GROUP_ID_

用户组Id

VARCHAR(64)

64

 

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

ACT_ID_USER(act_id_user)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

REV_

版本号

INT(11)

11

是

FIRST_

用户名称

VARCHAR(255)

255

是

LAST_

用户姓氏

VARCHAR(255)

255

是

EMAIL_

邮箱

VARCHAR(255)

255

是

PWD_

密码

VARCHAR(255)

255

是

PICTURE_ID_

头像Id

VARCHAR(64)

64

是

 

 

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

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

ACT_RE_DEPLOYMENT(act_re_deployment)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

部署编号,自增长

VARCHAR(64)

64

NAME_

部署包的名称

VARCHAR(255)

255

是

CATEGORY_

类型

VARCHAR(255)

255

是

 

TENANT_ID_

租户

VARCHAR(255)

255

是

 

多租户通常是在软件需要为多个不同组织服务时产生的概念

 

DEPLOY_TIME_

部署时间

TIMESTAMP

CURRENT_TIMESTAMP

 

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

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

ACT_RE_MODEL(act_re_model)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

ID_

REV_

INT(11)

11

是

乐观锁

NAME_

模型的名称:

比如:收文管理

VARCHAR(255)

255

是

名称

KEY_

模型的关键字,流程引擎用到。

比如:FTOA_SWGL

VARCHAR(255)

255

是

分类,例如:

http://www.mossle.com/docs/activiti/

CATEGORY_

类型,用户自己对流程模型的分类。

VARCHAR(255)

255

是

分类

CREATE_TIME_

创建时间

TIMESTAMP

是

创建时间

LAST_UPDATE_TIME_

最后修改时间

TIMESTAMP

是

最新修改时间

VERSION_

版本,从1开始。

INT(11)

11

是

版本

META_INFO_

数据源信息,比如:

{"name":"FTOA_SWGL","revision":1,"description":"丰台财政局OA,收文管理流程"}

VARCHAR(4000)

4000

是

以json格式保存流程定义的信息

DEPLOYMENT_ID_

部署ID

VARCHAR(64)

64

是

部署ID

EDITOR_SOURCE_VALUE_ID_

编辑源值ID

VARCHAR(64)

64

是

是 ACT_GE_BYTEARRAY 表中的ID_值。

EDITOR_SOURCE_EXTRA_VALUE_ID_

编辑源额外值ID(外键ACT_GE_BYTEARRAY )

VARCHAR(64)

64

是

是 ACT_GE_BYTEARRAY 表中的ID_值。

 

TENANT_ID_

租户

VARCHAR(255)

255

是

 

 

 

 

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

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

ACT_RE_PROCDEF(act_re_procdef)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省

备注

是

ID_

流程ID,由“流程编号:流程版本号:自增长ID”组成

VARCHAR(64)

64

ID_

REV_

版本号

INT(11)

11

是

乐观锁

CATEGORY_

流程命名空间(该编号就是流程文件targetNamespace的属性值)

VARCHAR(255)

255

是

流程定义的Namespace就是类别

NAME_

流程名称(该编号就是流程文件process元素的name属性值)

VARCHAR(255)

255

是

名称

KEY_

流程编号(该编号就是流程文件process元素的id属性值)

VARCHAR(255)

255

流程定义ID

VERSION_

流程版本号(由程序控制,新增即为1,修改后依次加1来完成的)

INT(11)

11

版本

DEPLOYMENT_ID_

部署编号

VARCHAR(64)

64

是

部署表ID

RESOURCE_NAME_

资源文件名称

VARCHAR(4000)

4000

是

流程bpmn文件名称

DGRM_RESOURCE_NAME_

图片资源文件名称

VARCHAR(4000)

4000

是

png流程图片名称

DESCRIPTION_

描述信息

VARCHAR(4000)

4000

是

描述

HAS_START_FORM_KEY_

是否从key启动

TINYINT(4)

4

是

start节点是否存在formKey

 0否  1是

SUSPENSION_STATE_

是否挂起

INT(11)

11

是

1激活 2挂起

注:此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_RE_PROCDEF表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和PNG图片文件。和ACT_GE_BYTEARRAY的关联是通过程序用ACT_GE_BYTEARRAY.NAME与ACT_RE_PROCDEF.NAME_完成的,在数据库表结构中没有体现。

 

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

ACT_RU_EVENT_SUBSCR(act_ru_event_subscr)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID

VARCHAR(64)

64

REV_

版本号

INT(11)

11

是

EVENT_TYPE_

事件类型

VARCHAR(255)

255

EVENT_NAME_

事件名称

VARCHAR(255)

255

是

EXECUTION_ID_

流程执行ID

VARCHAR(64)

64

是

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

ACTIVITY_ID_

活动ID

VARCHAR(64)

64

是

CONFIGURATION_

配置信息

VARCHAR(255)

255

是

CREATED_

创建时间

TIMESTAMP

CURRENT_TIMESTAMP

 

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

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

ACT_RU_EXECUTION(act_ru_execution)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

ID_

REV_

版本号

INT(11)

11

是

乐观锁

PROC_INST_ID_

流程实例编号

VARCHAR(64)

64

是

流程实例ID

BUSINESS_KEY_

业务编号

VARCHAR(255)

255

是

业务主键ID

PARENT_ID_

父执行流程

VARCHAR(64)

64

是

父节点实例ID

PROC_DEF_ID_

流程定义Id

VARCHAR(64)

64

是

流程定义ID

SUPER_EXEC_

VARCHAR(64)

64

是

ACT_ID_

实例id

VARCHAR(255)

255

是

节点实例ID即

ACT_HI_ACTINST中ID

IS_ACTIVE_

激活状态

TINYINT(4)

4

是

是否存活

IS_CONCURRENT_

并发状态

TINYINT(4)

4

是

是否为并行(true/false)

IS_SCOPE_

 

TINYINT(4)

4

是

 

IS_EVENT_SCOPE_

 

TINYINT(4)

4

是

 

SUSPENSION_STATE_

暂停状态_

INT(11)

11

是

挂起状态   1激活 2挂起

CACHED_ENT_STATE_

缓存结束状态_

INT(11)

11

是

 

 

1.2.21 表名:ACT_RU_IDENTITYLINK(身份联系)

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

ACT_RU_IDENTITYLINK(act_ru_identitylink)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

 

REV_

版本号

INT(11)

11

是

 

GROUP_ID_

用户组ID

VARCHAR(255)

255

是

 

TYPE_

用户组类型

VARCHAR(255)

255

是

主要分为以下几种:assignee、candidate、

owner、starter、participant。即:受让人,候选人,所有者、起动器、参与者

USER_ID_

用户ID

VARCHAR(255)

255

是

 

TASK_ID_

任务Id

VARCHAR(64)

64

是

 

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

 

PROC_DEF_ID_

流程定义Id

VARCHAR(64)

64

是

 

 

 

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

运行时定时任务数据表

ACT_RU_JOB(act_ru_job)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

标识

REV_

版本号

INT(11)

11

是

版本

TYPE_

TYPE_

VARCHAR(255)

255

类型

LOCK_EXP_TIME_

LOCK_EXP_TIME_

TIMESTAMP

是

锁定释放时间

LOCK_OWNER_

LOCK_OWNER_

VARCHAR(255)

255

是

挂起者

EXCLUSIVE_

EXCLUSIVE_

TINYINT(1)

1

是

 

EXECUTION_ID_

EXECUTION_ID_

VARCHAR(64)

64

是

执行实例ID

PROCESS_INSTANCE_ID_

PROCESS_INSTANCE_ID_

VARCHAR(64)

64

是

流程实例ID

PROC_DEF_ID_

PROC_DEF_ID_

VARCHAR(64)

64

是

流程定义ID

RETRIES_

RETRIES_

INT(11)

11

是

 

EXCEPTION_STACK_ID_

EXCEPTION_STACK_ID_

VARCHAR(64)

64

是

异常信息ID

EXCEPTION_MSG_

EXCEPTION_MSG_

VARCHAR(4000)

4000

是

异常信息

DUEDATE_

DUEDATE_

TIMESTAMP

是

到期时间

REPEAT_

REPEAT_

VARCHAR(255)

255

是

重复

HANDLER_TYPE_

HANDLER_TYPE_

VARCHAR(255)

255

是

处理类型

HANDLER_CFG_

HANDLER_CFG_

VARCHAR(4000)

4000

是

标识

 

 

 

 

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

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

ACT_RU_TASK(act_ru_task)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

ID_

REV_

版本号

INT(11)

11

是

乐观锁

EXECUTION_ID_

实例id(外键EXECUTION_ID_)

VARCHAR(64)

64

是

执行实例ID

PROC_INST_ID_

流程实例ID(外键PROC_INST_ID_)

VARCHAR(64)

64

是

流程实例ID

PROC_DEF_ID_

流程定义ID

VARCHAR(64)

64

是

流程定义ID

NAME_

任务名称

VARCHAR(255)

255

是

节点定义名称

PARENT_TASK_ID_

父节任务ID

VARCHAR(64)

64

是

父节点实例ID

DESCRIPTION_

任务描述

VARCHAR(4000)

4000

是

节点定义描述

TASK_DEF_KEY_

任务定义key

VARCHAR(255)

255

是

任务定义的ID

OWNER_

所属人(老板)

VARCHAR(255)

255

是

拥有者(一般情况下为空,只有在委托时才有值)

ASSIGNEE_

代理人员

(受让人)

VARCHAR(255)

255

是

签收人或委托人

DELEGATION_

代理团

VARCHAR(64)

64

是

委托类型,DelegationState分为两种:PENDING,RESOLVED。如无委托则为空

PRIORITY_

优先权

INT(11)

11

是

优先级别,默认为:50

CREATE_TIME_

创建时间

TIMESTAMP

创建时间,CURRENT_TIMESTAMP

DUE_DATE_

执行时间

DATETIME

是

耗时

SUSPENSION_STATE_

暂停状态

INT(11)

11

是

1代表激活 2代表挂起

 

 

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

ACT_RU_VARIABLE(act_ru_variable)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

主键标识

REV_

版本号

INT(11)

11

是

乐观锁

TYPE

编码类型

VARCHAR(255)

255

参见VAR_TYPE_类型说明

NAME_

变量名称

VARCHAR(255)

255

变量名称

EXECUTION_ID_

执行实例ID

VARCHAR(64)

64

是

执行的ID

PROC_INST_ID_

流程实例Id

VARCHAR(64)

64

是

流程实例ID

TASK_ID_

任务id

VARCHAR(64)

64

是

节点实例ID(Local)

BYTEARRAY_ID_

字节组ID

VARCHAR(64)

64

是

字节表的ID

(ACT_GE_BYTEARRAY)

DOUBLE_

DOUBLE_

DOUBLE

是

存储变量类型为Double

LONG_

LONG_

BIGINT(20)

20

是

存储变量类型为long

TEXT_

TEXT_

VARCHAR(4000)

4000

是

存储变量值类型为String

如此处存储持久化对象时,值jpa对象的class

TEXT2_

TEXT2_

VARCHAR(4000)

4000

是

此处存储的是JPA持久化对象时,才会有值。此值为对象ID

 

 

2  Activiti中主要对象的关系

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

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

图1.Activiti中几个对象之间的关系

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

u  员工申请请假

u  部门领导审批

u  人事审批

u  员工销假

 

ProcessInstance对象

员工开始申请请假流程,通过runtimeService.startProcessInstance()方法启动,引擎会创建一个流程实例(ProcessInstance)。

简单来说流程实例就是根据一次(一条)业务数据用流程驱动的入口,两者之间是一对一的关系。流程引擎会创建一条数据到ACT_RU_EXECUTION表,同时也会根据history的级别决定是否查询相同的历史数据到ACT_HI_PROCINST表。

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

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

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

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

u 对于外部表单来说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)  值不相等的情况:

不相等的情况目前只会出现在子流程中(包含:嵌套、引入),例如一个购物流程中除了下单、出库节点之外可能还有一个付款子流程,在实际企业应用中付款流程通常是作为公用的,所以使用子流程作为主流程(购物流程)的一部分。

当任务到达子流程时引擎会自动创建一个付款流程,但是这个流程有一个特殊的地方,在数据库可以直观体现,如下图。

图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服务(JavaServiceTask)等,在实际流程运行中只不过面向对象不同,用户任务(UserTask)需要有人为参与完成(complete),Java服务需要由系统自动执行(execution)。

图4. 表ACT_RU_TASK

Task是在流程定义中看到的最大单位,每当一个Task完成的时候引擎会把当前的任务移动到历史中,然后插入下一个任务插入到表ACT_RU_TASK中。结合请假流程来说就是让用户点击“完成”按钮提交当前任务是的动作,引擎自动根据任务的顺序流或者排他分支判断走向。

 

HistoryActivity(历史活动)

图5. 表ACT_HI_ACTINST

 

Activity包含了流程中所有的活动数据,例如开始事件(图5表中的第1条数据)、各种分支(排他分支、并行分支等,图5表中的第2条数据)、以及刚刚提到的Task执行记录(如图5表中的第3、4条数据)。

有些人认为Activity和Task是多对一关系,其实不是,从上图中可以看出来根本没有Task相关的字段。

结合请假流程来说,如Task中提到的当完成流程的时候所有下一步要执行的任务(包括各种分支)都会创建一个Activity记录到数据库中。例如领导审核节点点击“同意”按钮就会流转到人事审批节点,如果“驳回”那就流转到调整请假内容节点,每一次操作的Task背后实际记录更详细的活动(Activity)。


主要用于个人知识归档整理,著作权归原作者所有。

Activiti数据表结构

1  Activiti数据库表结构

1.1      数据库表名说明

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

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

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

u  ACT_HI_* : “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例、变量、任务,等等。Activit默认提供了4种历史级别:

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

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

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

Ø  full:最完整的历史记录,除了包含audit级别的信息之外还能保存详细,例如:流程变量。

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

 

u  ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都是身份信息,如用户和组以及两者之间的关系。如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;

u  ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些‘静态’信息,如流程定义和流程资源(如图片、规则等);

u  ACT_RU_* : “RU”代表“Runtime”(运行时),这些表中保存一些流程实例、用户任务、变量等的运行时数据。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(通用的流程定义和流程资源)

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

保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。

ACT_GE_BYTEARRAY(act_ge_bytearray)

是否主键

字段名

字段描述

数据类型

可空

约束

缺省值

取值说明

是

ID_

主键ID,资源文件编号,自增长

VARCHAR(64)

 

REV_

版本号

INT(11)

是

Version

NAME_

部署的文件名称,

VARCHAR(255)

是

mail.bpmn、mail.png 、mail.bpmn20.xml

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)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

NAME_

属性名称

VARCHAR(64)

64

schema.version

schema.history

next.dbid

VALUE_

属性值

VARCHAR(300)

300

是

5.*

create(5.*)

REV_INT

版本号

INT(11)

11

是

 

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

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

ACT_HI_ACTINST(act_hi_actinst)

是否主键

字段名

字段描述

数据类型

可空

约束

取值说明

是

ID_

ID_

VARCHAR(64)

 

PROC_DEF_ID_

流程定义ID

VARCHAR(64)

 

PROC_INST_ID_

流程实例ID

VARCHAR(64)

 

EXECUTION_ID_

流程执行ID

VARCHAR(64)

 

ACT_ID_

活动ID

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)

是

毫秒值

 

 

1.2.5   表名:ACT_HI_ATTACHMENT(附件信息)

ACT_HI_ATTACHMENT(act_hi_attachment)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

主键ID

REV_

REV_

INT(11)

11

是

Version

USER_ID_

用户id

VARCHAR(255)

255

是

用户ID

NAME_

名称

VARCHAR(255)

255

是

附件名称

DESCRIPTION_

描述

VARCHAR(4000)

4000

是

描述

TYPE_

类型

VARCHAR(255)

255

是

附件类型

TASK_ID_

任务Id

VARCHAR(64)

64

是

节点实例ID

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

流程实例ID

URL_

连接

VARCHAR(4000)

4000

是

附件地址

CONTENT_ID_

内容Id

字节表的ID

VARCHAR(64)

64

是

ACT_GE_BYTEARRAY的ID

 

 

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

ACT_HI_COMMENT(act_hi_comment)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

主键ID

TYPE_

意见记录类型,为comment时,为处理意见

VARCHAR(255)

255

是

类型:event(事件)

comment(意见)

TIME_

记录时间

DATETIME

填写时间

USER_ID_

用户Id

VARCHAR(255)

255

是

填写人

TASK_ID_

任务Id

VARCHAR(64)

64

是

节点实例ID

PROC_INST_ID_

流程实例Id

VARCHAR(64)

64

是

流程实例ID

ACTION_

行为类型。

为addcomment时,为处理意见

VARCHAR(255)

255

是

值为下列内容中的一种:    AddUserLink、DeleteUserLink、AddGroupLink、DeleteGroupLink、AddComment、AddAttachment、DeleteAttachment

MESSAGE_

处理意见

VARCHAR(4000)

4000

是

用于存放流程产生的信息,比如审批意见

FULL_MSG_

全部消息

LONGBLOB

是

 

 

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

历史详情表:流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。

ACT_HI_DETAIL(act_hi_detail)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

主键

TYPE_

数据类型

VARCHAR(255)

255

类型:

FormProperty, //表单

VariableUpdate //参数

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

流程实例ID

EXECUTION_ID_

执行实例Id

VARCHAR(64)

64

是

执行实例ID

TASK_ID_

任务Id

VARCHAR(64)

64

是

任务实例ID

ACT_INST_ID_

活动实例Id

VARCHAR(64)

64

是

ACT_HI_ACTINST表的ID

NAME_

名称

VARCHAR(255)

255

名称

VAR_TYPE_

变量类型

VARCHAR(255)

255

是

参见VAR_TYPE_类型说明

REV_

REV_

INT(11)

11

是

Version

TIME_

创建时间

DATETIME

创建时间

BYTEARRAY_ID_

字节数组Id

VARCHAR(64)

64

是

ACT_GE_BYTEARRAY表的ID

DOUBLE_

DOUBLE_

DOUBLE

是

存储变量类型为Double

LONG_

LONG_

BIGINT(20)

20

是

存储变量类型为long

TEXT_

值

VARCHAR(4000)

4000

是

存储变量值类型为String

TEXT2_

值2

VARCHAR(4000)

4000

是

此处存储的是JPA持久化对象时,才会有值。此值为对象ID

 

备注:VAR_TYPE_类型说明: jpa-entity、boolean、bytes、serializable(可序列化)、自定义type(根据你自身配置)、 CustomVariableType、date、double、integer、long、null、short、string

 

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

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

ACT_HI_IDENTITYLINK(act_hi_identitylink)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

ID_

GROUP_ID_

用户组ID

VARCHAR(255)

255

是

组ID

TYPE_

用户组类型

VARCHAR(255)

255

是

类型,主要分为以下几种:

assignee、

candidate、

owner、starter 、participant

USER_ID_

用户ID

VARCHAR(255)

255

是

用户ID

TASK_ID_

任务Id

VARCHAR(64)

64

是

节点实例ID

PROC_INST_ID_

流程实例Id

VARCHAR(64)

64

是

流程实例ID

 

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

ACT_HI_PROCINST(act_hi_procinst)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

BUSINESS_KEY_

业务Key

VARCHAR(255)

255

是

PROC_DEF_ID_

流程定义Id

VARCHAR(64)

64

START_TIME_

开始时间

DATETIME

END_TIME_

结束时间

DATETIME

是

DURATION_

时长

BIGINT(20)

20

是

START_USER_ID_

发起人员Id

VARCHAR(255)

255

是

START_ACT_ID_

开始节点

VARCHAR(255)

255

是

END_ACT_ID_

结束节点

VARCHAR(255)

255

是

SUPER_PROCESS_INSTANCE_ID_

超级流程实例Id

VARCHAR(64)

64

是

DELETE_REASON_

删除理由

VARCHAR(4000)

4000

是

 

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

ACT_HI_TASKINST(act_hi_taskinst)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

主键ID

PROC_DEF_ID_

流程定义Id

VARCHAR(64)

64

是

流程定义ID

TASK_DEF_KEY_

任务定义Key

VARCHAR(255)

255

是

节点定义ID

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

流程实例ID

EXECUTION_ID_

执行ID

VARCHAR(64)

64

是

执行实例ID

NAME_

名称

VARCHAR(255)

255

是

名称

PARENT_TASK_ID_

父任务iD

VARCHAR(64)

64

是

父节点实例ID

DESCRIPTION_

描述

VARCHAR(4000)

4000

是

描述

OWNER_

实际签收人 任务的拥有者

VARCHAR(255)

255

是

签收人(默认为空,只有在委托时才有值)

ASSIGNEE_

代理人

VARCHAR(255)

255

是

签收人或被委托

START_TIME_

开始时间

DATETIME

开始时间

CLAIM_TIME_

提醒时间

DATETIME

是

提醒时间

END_TIME_

结束时间

DATETIME

是

结束时间

DURATION_

时长

BIGINT(20)

20

是

耗时

DELETE_REASON_

删除理由

VARCHAR(4000)

4000

是

删除原因(completed,deleted)

PRIORITY_

优先级

INT(11)

11

是

优先级别

DUE_DATE_

应完成时间

DATETIME

是

过期时间,表明任务应在多长时间内完成

FORM_KEY_

表单key

VARCHAR(255)

255

是

desinger节点定义的

form_key属性

 

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

ACT_HI_VARINST(act_hi_varinst)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

ID_

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

流程实例ID

EXECUTION_ID_

执行ID

VARCHAR(64)

64

是

执行实例ID

TASK_ID_

任务Id

VARCHAR(64)

64

是

任务实例ID

NAME_

名称

VARCHAR(255)

255

参数名称(英文)

VAR_TYPE_

变量类型

VARCHAR(100)

100

是

参见VAR_TYPE_类型说明

REV_

REV_

INT(11)

11

是

Version

BYTEARRAY_ID_

字节数组ID

VARCHAR(64)

64

是

ACT_GE_BYTEARRAY表的主键

DOUBLE_

DOUBLE_

DOUBLE

是

存储DoubleType类型的数据

LONG_

LONG_

BIGINT(20)

20

是

存储LongType类型的数据

TEXT_

TEXT_

VARCHAR(4000)

4000

是

存储变量值类型为String,如此处存储持久化对象时,值jpa对象的class

TEXT2_

TEXT2_

VARCHAR(4000)

4000

是

此处存储的是JPA持久化对象时,才会有值。此值为对象ID

 

1.2.12       表名:ACT_ID_GROUP(用户组表)

用来存储用户组信息。

ACT_ID_GROUP(act_id_group)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

用户组ID

VARCHAR(64)

64

REV_

版本号

INT(11)

11

是

NAME_

用户组描述信息

VARCHAR(255)

255

是

TYPE_

用户组类型

VARCHAR(255)

255

是

 

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

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

ACT_ID_INFO(act_id_info)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

VARCHAR(64)

64

REV_

版本号

INT(11)

11

是

USER_ID_

用户ID

VARCHAR(64)

64

是

TYPE_

类型

VARCHAR(64)

64

是

KEY_

formINPut名称

VARCHAR(255)

255

是

VALUE_

值

VARCHAR(255)

255

是

PASSWORD_

密码

LONGBLOB

是

PARENT_ID_

父节点

VARCHAR(255)

255

是

 

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

用来保存用户的分组信息

ACT_ID_MEMBERSHIP(act_id_membership)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

USER_ID_

用户Id

VARCHAR(64)

64

是

GROUP_ID_

用户组Id

VARCHAR(64)

64

 

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

ACT_ID_USER(act_id_user)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

REV_

版本号

INT(11)

11

是

FIRST_

用户名称

VARCHAR(255)

255

是

LAST_

用户姓氏

VARCHAR(255)

255

是

EMAIL_

邮箱

VARCHAR(255)

255

是

PWD_

密码

VARCHAR(255)

255

是

PICTURE_ID_

头像Id

VARCHAR(64)

64

是

 

 

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

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

ACT_RE_DEPLOYMENT(act_re_deployment)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

部署编号,自增长

VARCHAR(64)

64

NAME_

部署包的名称

VARCHAR(255)

255

是

CATEGORY_

类型

VARCHAR(255)

255

是

 

TENANT_ID_

租户

VARCHAR(255)

255

是

 

多租户通常是在软件需要为多个不同组织服务时产生的概念

 

DEPLOY_TIME_

部署时间

TIMESTAMP

CURRENT_TIMESTAMP

 

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

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

ACT_RE_MODEL(act_re_model)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

ID_

REV_

INT(11)

11

是

乐观锁

NAME_

模型的名称:

比如:收文管理

VARCHAR(255)

255

是

名称

KEY_

模型的关键字,流程引擎用到。

比如:FTOA_SWGL

VARCHAR(255)

255

是

分类,例如:

http://www.mossle.com/docs/activiti/

CATEGORY_

类型,用户自己对流程模型的分类。

VARCHAR(255)

255

是

分类

CREATE_TIME_

创建时间

TIMESTAMP

是

创建时间

LAST_UPDATE_TIME_

最后修改时间

TIMESTAMP

是

最新修改时间

VERSION_

版本,从1开始。

INT(11)

11

是

版本

META_INFO_

数据源信息,比如:

{"name":"FTOA_SWGL","revision":1,"description":"丰台财政局OA,收文管理流程"}

VARCHAR(4000)

4000

是

以json格式保存流程定义的信息

DEPLOYMENT_ID_

部署ID

VARCHAR(64)

64

是

部署ID

EDITOR_SOURCE_VALUE_ID_

编辑源值ID

VARCHAR(64)

64

是

是 ACT_GE_BYTEARRAY 表中的ID_值。

EDITOR_SOURCE_EXTRA_VALUE_ID_

编辑源额外值ID(外键ACT_GE_BYTEARRAY )

VARCHAR(64)

64

是

是 ACT_GE_BYTEARRAY 表中的ID_值。

 

TENANT_ID_

租户

VARCHAR(255)

255

是

 

 

 

 

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

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

ACT_RE_PROCDEF(act_re_procdef)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省

备注

是

ID_

流程ID,由“流程编号:流程版本号:自增长ID”组成

VARCHAR(64)

64

ID_

REV_

版本号

INT(11)

11

是

乐观锁

CATEGORY_

流程命名空间(该编号就是流程文件targetNamespace的属性值)

VARCHAR(255)

255

是

流程定义的Namespace就是类别

NAME_

流程名称(该编号就是流程文件process元素的name属性值)

VARCHAR(255)

255

是

名称

KEY_

流程编号(该编号就是流程文件process元素的id属性值)

VARCHAR(255)

255

流程定义ID

VERSION_

流程版本号(由程序控制,新增即为1,修改后依次加1来完成的)

INT(11)

11

版本

DEPLOYMENT_ID_

部署编号

VARCHAR(64)

64

是

部署表ID

RESOURCE_NAME_

资源文件名称

VARCHAR(4000)

4000

是

流程bpmn文件名称

DGRM_RESOURCE_NAME_

图片资源文件名称

VARCHAR(4000)

4000

是

png流程图片名称

DESCRIPTION_

描述信息

VARCHAR(4000)

4000

是

描述

HAS_START_FORM_KEY_

是否从key启动

TINYINT(4)

4

是

start节点是否存在formKey

 0否  1是

SUSPENSION_STATE_

是否挂起

INT(11)

11

是

1激活 2挂起

注:此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_RE_PROCDEF表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和PNG图片文件。和ACT_GE_BYTEARRAY的关联是通过程序用ACT_GE_BYTEARRAY.NAME与ACT_RE_PROCDEF.NAME_完成的,在数据库表结构中没有体现。

 

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

ACT_RU_EVENT_SUBSCR(act_ru_event_subscr)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID

VARCHAR(64)

64

REV_

版本号

INT(11)

11

是

EVENT_TYPE_

事件类型

VARCHAR(255)

255

EVENT_NAME_

事件名称

VARCHAR(255)

255

是

EXECUTION_ID_

流程执行ID

VARCHAR(64)

64

是

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

ACTIVITY_ID_

活动ID

VARCHAR(64)

64

是

CONFIGURATION_

配置信息

VARCHAR(255)

255

是

CREATED_

创建时间

TIMESTAMP

CURRENT_TIMESTAMP

 

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

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

ACT_RU_EXECUTION(act_ru_execution)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

ID_

REV_

版本号

INT(11)

11

是

乐观锁

PROC_INST_ID_

流程实例编号

VARCHAR(64)

64

是

流程实例ID

BUSINESS_KEY_

业务编号

VARCHAR(255)

255

是

业务主键ID

PARENT_ID_

父执行流程

VARCHAR(64)

64

是

父节点实例ID

PROC_DEF_ID_

流程定义Id

VARCHAR(64)

64

是

流程定义ID

SUPER_EXEC_

VARCHAR(64)

64

是

ACT_ID_

实例id

VARCHAR(255)

255

是

节点实例ID即

ACT_HI_ACTINST中ID

IS_ACTIVE_

激活状态

TINYINT(4)

4

是

是否存活

IS_CONCURRENT_

并发状态

TINYINT(4)

4

是

是否为并行(true/false)

IS_SCOPE_

 

TINYINT(4)

4

是

 

IS_EVENT_SCOPE_

 

TINYINT(4)

4

是

 

SUSPENSION_STATE_

暂停状态_

INT(11)

11

是

挂起状态   1激活 2挂起

CACHED_ENT_STATE_

缓存结束状态_

INT(11)

11

是

 

 

1.2.21 表名:ACT_RU_IDENTITYLINK(身份联系)

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

ACT_RU_IDENTITYLINK(act_ru_identitylink)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

 

REV_

版本号

INT(11)

11

是

 

GROUP_ID_

用户组ID

VARCHAR(255)

255

是

 

TYPE_

用户组类型

VARCHAR(255)

255

是

主要分为以下几种:assignee、candidate、

owner、starter、participant。即:受让人,候选人,所有者、起动器、参与者

USER_ID_

用户ID

VARCHAR(255)

255

是

 

TASK_ID_

任务Id

VARCHAR(64)

64

是

 

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

 

PROC_DEF_ID_

流程定义Id

VARCHAR(64)

64

是

 

 

 

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

运行时定时任务数据表

ACT_RU_JOB(act_ru_job)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

标识

REV_

版本号

INT(11)

11

是

版本

TYPE_

TYPE_

VARCHAR(255)

255

类型

LOCK_EXP_TIME_

LOCK_EXP_TIME_

TIMESTAMP

是

锁定释放时间

LOCK_OWNER_

LOCK_OWNER_

VARCHAR(255)

255

是

挂起者

EXCLUSIVE_

EXCLUSIVE_

TINYINT(1)

1

是

 

EXECUTION_ID_

EXECUTION_ID_

VARCHAR(64)

64

是

执行实例ID

PROCESS_INSTANCE_ID_

PROCESS_INSTANCE_ID_

VARCHAR(64)

64

是

流程实例ID

PROC_DEF_ID_

PROC_DEF_ID_

VARCHAR(64)

64

是

流程定义ID

RETRIES_

RETRIES_

INT(11)

11

是

 

EXCEPTION_STACK_ID_

EXCEPTION_STACK_ID_

VARCHAR(64)

64

是

异常信息ID

EXCEPTION_MSG_

EXCEPTION_MSG_

VARCHAR(4000)

4000

是

异常信息

DUEDATE_

DUEDATE_

TIMESTAMP

是

到期时间

REPEAT_

REPEAT_

VARCHAR(255)

255

是

重复

HANDLER_TYPE_

HANDLER_TYPE_

VARCHAR(255)

255

是

处理类型

HANDLER_CFG_

HANDLER_CFG_

VARCHAR(4000)

4000

是

标识

 

 

 

 

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

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

ACT_RU_TASK(act_ru_task)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

ID_

REV_

版本号

INT(11)

11

是

乐观锁

EXECUTION_ID_

实例id(外键EXECUTION_ID_)

VARCHAR(64)

64

是

执行实例ID

PROC_INST_ID_

流程实例ID(外键PROC_INST_ID_)

VARCHAR(64)

64

是

流程实例ID

PROC_DEF_ID_

流程定义ID

VARCHAR(64)

64

是

流程定义ID

NAME_

任务名称

VARCHAR(255)

255

是

节点定义名称

PARENT_TASK_ID_

父节任务ID

VARCHAR(64)

64

是

父节点实例ID

DESCRIPTION_

任务描述

VARCHAR(4000)

4000

是

节点定义描述

TASK_DEF_KEY_

任务定义key

VARCHAR(255)

255

是

任务定义的ID

OWNER_

所属人(老板)

VARCHAR(255)

255

是

拥有者(一般情况下为空,只有在委托时才有值)

ASSIGNEE_

代理人员

(受让人)

VARCHAR(255)

255

是

签收人或委托人

DELEGATION_

代理团

VARCHAR(64)

64

是

委托类型,DelegationState分为两种:PENDING,RESOLVED。如无委托则为空

PRIORITY_

优先权

INT(11)

11

是

优先级别,默认为:50

CREATE_TIME_

创建时间

TIMESTAMP

创建时间,CURRENT_TIMESTAMP

DUE_DATE_

执行时间

DATETIME

是

耗时

SUSPENSION_STATE_

暂停状态

INT(11)

11

是

1代表激活 2代表挂起

 

 

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

ACT_RU_VARIABLE(act_ru_variable)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

主键标识

REV_

版本号

INT(11)

11

是

乐观锁

TYPE

编码类型

VARCHAR(255)

255

参见VAR_TYPE_类型说明

NAME_

变量名称

VARCHAR(255)

255

变量名称

EXECUTION_ID_

执行实例ID

VARCHAR(64)

64

是

执行的ID

PROC_INST_ID_

流程实例Id

VARCHAR(64)

64

是

流程实例ID

TASK_ID_

任务id

VARCHAR(64)

64

是

节点实例ID(Local)

BYTEARRAY_ID_

字节组ID

VARCHAR(64)

64

是

字节表的ID

(ACT_GE_BYTEARRAY)

DOUBLE_

DOUBLE_

DOUBLE

是

存储变量类型为Double

LONG_

LONG_

BIGINT(20)

20

是

存储变量类型为long

TEXT_

TEXT_

VARCHAR(4000)

4000

是

存储变量值类型为String

如此处存储持久化对象时,值jpa对象的class

TEXT2_

TEXT2_

VARCHAR(4000)

4000

是

此处存储的是JPA持久化对象时,才会有值。此值为对象ID

 

 

2  Activiti中主要对象的关系

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

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

图1.Activiti中几个对象之间的关系

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

u  员工申请请假

u  部门领导审批

u  人事审批

u  员工销假

 

ProcessInstance对象

员工开始申请请假流程,通过runtimeService.startProcessInstance()方法启动,引擎会创建一个流程实例(ProcessInstance)。

简单来说流程实例就是根据一次(一条)业务数据用流程驱动的入口,两者之间是一对一的关系。流程引擎会创建一条数据到ACT_RU_EXECUTION表,同时也会根据history的级别决定是否查询相同的历史数据到ACT_HI_PROCINST表。

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

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

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

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

u 对于外部表单来说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)  值不相等的情况:

不相等的情况目前只会出现在子流程中(包含:嵌套、引入),例如一个购物流程中除了下单、出库节点之外可能还有一个付款子流程,在实际企业应用中付款流程通常是作为公用的,所以使用子流程作为主流程(购物流程)的一部分。

当任务到达子流程时引擎会自动创建一个付款流程,但是这个流程有一个特殊的地方,在数据库可以直观体现,如下图。

图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服务(JavaServiceTask)等,在实际流程运行中只不过面向对象不同,用户任务(UserTask)需要有人为参与完成(complete),Java服务需要由系统自动执行(execution)。

图4. 表ACT_RU_TASK

Task是在流程定义中看到的最大单位,每当一个Task完成的时候引擎会把当前的任务移动到历史中,然后插入下一个任务插入到表ACT_RU_TASK中。结合请假流程来说就是让用户点击“完成”按钮提交当前任务是的动作,引擎自动根据任务的顺序流或者排他分支判断走向。

 

HistoryActivity(历史活动)

图5. 表ACT_HI_ACTINST

 

Activity包含了流程中所有的活动数据,例如开始事件(图5表中的第1条数据)、各种分支(排他分支、并行分支等,图5表中的第2条数据)、以及刚刚提到的Task执行记录(如图5表中的第3、4条数据)。

有些人认为Activity和Task是多对一关系,其实不是,从上图中可以看出来根本没有Task相关的字段。

结合请假流程来说,如Task中提到的当完成流程的时候所有下一步要执行的任务(包括各种分支)都会创建一个Activity记录到数据库中。例如领导审核节点点击“同意”按钮就会流转到人事审批节点,如果“驳回”那就流转到调整请假内容节点,每一次操作的Task背后实际记录更详细的活动(Activity)。

Activiti数据表结构

1  Activiti数据库表结构

1.1      数据库表名说明

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

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

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

u  ACT_HI_* : “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例、变量、任务,等等。Activit默认提供了4种历史级别:

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

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

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

Ø  full:最完整的历史记录,除了包含audit级别的信息之外还能保存详细,例如:流程变量。

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

 

u  ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都是身份信息,如用户和组以及两者之间的关系。如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;

u  ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些‘静态’信息,如流程定义和流程资源(如图片、规则等);

u  ACT_RU_* : “RU”代表“Runtime”(运行时),这些表中保存一些流程实例、用户任务、变量等的运行时数据。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(通用的流程定义和流程资源)

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

保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。

ACT_GE_BYTEARRAY(act_ge_bytearray)

是否主键

字段名

字段描述

数据类型

可空

约束

缺省值

取值说明

是

ID_

主键ID,资源文件编号,自增长

VARCHAR(64)

 

REV_

版本号

INT(11)

是

Version

NAME_

部署的文件名称,

VARCHAR(255)

是

mail.bpmn、mail.png 、mail.bpmn20.xml

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)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

NAME_

属性名称

VARCHAR(64)

64

schema.version

schema.history

next.dbid

VALUE_

属性值

VARCHAR(300)

300

是

5.*

create(5.*)

REV_INT

版本号

INT(11)

11

是

 

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

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

ACT_HI_ACTINST(act_hi_actinst)

是否主键

字段名

字段描述

数据类型

可空

约束

取值说明

是

ID_

ID_

VARCHAR(64)

 

PROC_DEF_ID_

流程定义ID

VARCHAR(64)

 

PROC_INST_ID_

流程实例ID

VARCHAR(64)

 

EXECUTION_ID_

流程执行ID

VARCHAR(64)

 

ACT_ID_

活动ID

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)

是

毫秒值

 

 

1.2.5   表名:ACT_HI_ATTACHMENT(附件信息)

ACT_HI_ATTACHMENT(act_hi_attachment)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

主键ID

REV_

REV_

INT(11)

11

是

Version

USER_ID_

用户id

VARCHAR(255)

255

是

用户ID

NAME_

名称

VARCHAR(255)

255

是

附件名称

DESCRIPTION_

描述

VARCHAR(4000)

4000

是

描述

TYPE_

类型

VARCHAR(255)

255

是

附件类型

TASK_ID_

任务Id

VARCHAR(64)

64

是

节点实例ID

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

流程实例ID

URL_

连接

VARCHAR(4000)

4000

是

附件地址

CONTENT_ID_

内容Id

字节表的ID

VARCHAR(64)

64

是

ACT_GE_BYTEARRAY的ID

 

 

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

ACT_HI_COMMENT(act_hi_comment)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

主键ID

TYPE_

意见记录类型,为comment时,为处理意见

VARCHAR(255)

255

是

类型:event(事件)

comment(意见)

TIME_

记录时间

DATETIME

填写时间

USER_ID_

用户Id

VARCHAR(255)

255

是

填写人

TASK_ID_

任务Id

VARCHAR(64)

64

是

节点实例ID

PROC_INST_ID_

流程实例Id

VARCHAR(64)

64

是

流程实例ID

ACTION_

行为类型。

为addcomment时,为处理意见

VARCHAR(255)

255

是

值为下列内容中的一种:    AddUserLink、DeleteUserLink、AddGroupLink、DeleteGroupLink、AddComment、AddAttachment、DeleteAttachment

MESSAGE_

处理意见

VARCHAR(4000)

4000

是

用于存放流程产生的信息,比如审批意见

FULL_MSG_

全部消息

LONGBLOB

是

 

 

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

历史详情表:流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。

ACT_HI_DETAIL(act_hi_detail)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

主键

TYPE_

数据类型

VARCHAR(255)

255

类型:

FormProperty, //表单

VariableUpdate //参数

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

流程实例ID

EXECUTION_ID_

执行实例Id

VARCHAR(64)

64

是

执行实例ID

TASK_ID_

任务Id

VARCHAR(64)

64

是

任务实例ID

ACT_INST_ID_

活动实例Id

VARCHAR(64)

64

是

ACT_HI_ACTINST表的ID

NAME_

名称

VARCHAR(255)

255

名称

VAR_TYPE_

变量类型

VARCHAR(255)

255

是

参见VAR_TYPE_类型说明

REV_

REV_

INT(11)

11

是

Version

TIME_

创建时间

DATETIME

创建时间

BYTEARRAY_ID_

字节数组Id

VARCHAR(64)

64

是

ACT_GE_BYTEARRAY表的ID

DOUBLE_

DOUBLE_

DOUBLE

是

存储变量类型为Double

LONG_

LONG_

BIGINT(20)

20

是

存储变量类型为long

TEXT_

值

VARCHAR(4000)

4000

是

存储变量值类型为String

TEXT2_

值2

VARCHAR(4000)

4000

是

此处存储的是JPA持久化对象时,才会有值。此值为对象ID

 

备注:VAR_TYPE_类型说明: jpa-entity、boolean、bytes、serializable(可序列化)、自定义type(根据你自身配置)、 CustomVariableType、date、double、integer、long、null、short、string

 

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

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

ACT_HI_IDENTITYLINK(act_hi_identitylink)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

ID_

GROUP_ID_

用户组ID

VARCHAR(255)

255

是

组ID

TYPE_

用户组类型

VARCHAR(255)

255

是

类型,主要分为以下几种:

assignee、

candidate、

owner、starter 、participant

USER_ID_

用户ID

VARCHAR(255)

255

是

用户ID

TASK_ID_

任务Id

VARCHAR(64)

64

是

节点实例ID

PROC_INST_ID_

流程实例Id

VARCHAR(64)

64

是

流程实例ID

 

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

ACT_HI_PROCINST(act_hi_procinst)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

BUSINESS_KEY_

业务Key

VARCHAR(255)

255

是

PROC_DEF_ID_

流程定义Id

VARCHAR(64)

64

START_TIME_

开始时间

DATETIME

END_TIME_

结束时间

DATETIME

是

DURATION_

时长

BIGINT(20)

20

是

START_USER_ID_

发起人员Id

VARCHAR(255)

255

是

START_ACT_ID_

开始节点

VARCHAR(255)

255

是

END_ACT_ID_

结束节点

VARCHAR(255)

255

是

SUPER_PROCESS_INSTANCE_ID_

超级流程实例Id

VARCHAR(64)

64

是

DELETE_REASON_

删除理由

VARCHAR(4000)

4000

是

 

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

ACT_HI_TASKINST(act_hi_taskinst)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

主键ID

PROC_DEF_ID_

流程定义Id

VARCHAR(64)

64

是

流程定义ID

TASK_DEF_KEY_

任务定义Key

VARCHAR(255)

255

是

节点定义ID

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

流程实例ID

EXECUTION_ID_

执行ID

VARCHAR(64)

64

是

执行实例ID

NAME_

名称

VARCHAR(255)

255

是

名称

PARENT_TASK_ID_

父任务iD

VARCHAR(64)

64

是

父节点实例ID

DESCRIPTION_

描述

VARCHAR(4000)

4000

是

描述

OWNER_

实际签收人 任务的拥有者

VARCHAR(255)

255

是

签收人(默认为空,只有在委托时才有值)

ASSIGNEE_

代理人

VARCHAR(255)

255

是

签收人或被委托

START_TIME_

开始时间

DATETIME

开始时间

CLAIM_TIME_

提醒时间

DATETIME

是

提醒时间

END_TIME_

结束时间

DATETIME

是

结束时间

DURATION_

时长

BIGINT(20)

20

是

耗时

DELETE_REASON_

删除理由

VARCHAR(4000)

4000

是

删除原因(completed,deleted)

PRIORITY_

优先级

INT(11)

11

是

优先级别

DUE_DATE_

应完成时间

DATETIME

是

过期时间,表明任务应在多长时间内完成

FORM_KEY_

表单key

VARCHAR(255)

255

是

desinger节点定义的

form_key属性

 

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

ACT_HI_VARINST(act_hi_varinst)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

ID_

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

流程实例ID

EXECUTION_ID_

执行ID

VARCHAR(64)

64

是

执行实例ID

TASK_ID_

任务Id

VARCHAR(64)

64

是

任务实例ID

NAME_

名称

VARCHAR(255)

255

参数名称(英文)

VAR_TYPE_

变量类型

VARCHAR(100)

100

是

参见VAR_TYPE_类型说明

REV_

REV_

INT(11)

11

是

Version

BYTEARRAY_ID_

字节数组ID

VARCHAR(64)

64

是

ACT_GE_BYTEARRAY表的主键

DOUBLE_

DOUBLE_

DOUBLE

是

存储DoubleType类型的数据

LONG_

LONG_

BIGINT(20)

20

是

存储LongType类型的数据

TEXT_

TEXT_

VARCHAR(4000)

4000

是

存储变量值类型为String,如此处存储持久化对象时,值jpa对象的class

TEXT2_

TEXT2_

VARCHAR(4000)

4000

是

此处存储的是JPA持久化对象时,才会有值。此值为对象ID

 

1.2.12       表名:ACT_ID_GROUP(用户组表)

用来存储用户组信息。

ACT_ID_GROUP(act_id_group)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

用户组ID

VARCHAR(64)

64

REV_

版本号

INT(11)

11

是

NAME_

用户组描述信息

VARCHAR(255)

255

是

TYPE_

用户组类型

VARCHAR(255)

255

是

 

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

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

ACT_ID_INFO(act_id_info)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

VARCHAR(64)

64

REV_

版本号

INT(11)

11

是

USER_ID_

用户ID

VARCHAR(64)

64

是

TYPE_

类型

VARCHAR(64)

64

是

KEY_

formINPut名称

VARCHAR(255)

255

是

VALUE_

值

VARCHAR(255)

255

是

PASSWORD_

密码

LONGBLOB

是

PARENT_ID_

父节点

VARCHAR(255)

255

是

 

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

用来保存用户的分组信息

ACT_ID_MEMBERSHIP(act_id_membership)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

USER_ID_

用户Id

VARCHAR(64)

64

是

GROUP_ID_

用户组Id

VARCHAR(64)

64

 

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

ACT_ID_USER(act_id_user)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

REV_

版本号

INT(11)

11

是

FIRST_

用户名称

VARCHAR(255)

255

是

LAST_

用户姓氏

VARCHAR(255)

255

是

EMAIL_

邮箱

VARCHAR(255)

255

是

PWD_

密码

VARCHAR(255)

255

是

PICTURE_ID_

头像Id

VARCHAR(64)

64

是

 

 

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

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

ACT_RE_DEPLOYMENT(act_re_deployment)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

部署编号,自增长

VARCHAR(64)

64

NAME_

部署包的名称

VARCHAR(255)

255

是

CATEGORY_

类型

VARCHAR(255)

255

是

 

TENANT_ID_

租户

VARCHAR(255)

255

是

 

多租户通常是在软件需要为多个不同组织服务时产生的概念

 

DEPLOY_TIME_

部署时间

TIMESTAMP

CURRENT_TIMESTAMP

 

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

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

ACT_RE_MODEL(act_re_model)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

ID_

REV_

INT(11)

11

是

乐观锁

NAME_

模型的名称:

比如:收文管理

VARCHAR(255)

255

是

名称

KEY_

模型的关键字,流程引擎用到。

比如:FTOA_SWGL

VARCHAR(255)

255

是

分类,例如:

http://www.mossle.com/docs/activiti/

CATEGORY_

类型,用户自己对流程模型的分类。

VARCHAR(255)

255

是

分类

CREATE_TIME_

创建时间

TIMESTAMP

是

创建时间

LAST_UPDATE_TIME_

最后修改时间

TIMESTAMP

是

最新修改时间

VERSION_

版本,从1开始。

INT(11)

11

是

版本

META_INFO_

数据源信息,比如:

{"name":"FTOA_SWGL","revision":1,"description":"丰台财政局OA,收文管理流程"}

VARCHAR(4000)

4000

是

以json格式保存流程定义的信息

DEPLOYMENT_ID_

部署ID

VARCHAR(64)

64

是

部署ID

EDITOR_SOURCE_VALUE_ID_

编辑源值ID

VARCHAR(64)

64

是

是 ACT_GE_BYTEARRAY 表中的ID_值。

EDITOR_SOURCE_EXTRA_VALUE_ID_

编辑源额外值ID(外键ACT_GE_BYTEARRAY )

VARCHAR(64)

64

是

是 ACT_GE_BYTEARRAY 表中的ID_值。

 

TENANT_ID_

租户

VARCHAR(255)

255

是

 

 

 

 

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

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

ACT_RE_PROCDEF(act_re_procdef)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省

备注

是

ID_

流程ID,由“流程编号:流程版本号:自增长ID”组成

VARCHAR(64)

64

ID_

REV_

版本号

INT(11)

11

是

乐观锁

CATEGORY_

流程命名空间(该编号就是流程文件targetNamespace的属性值)

VARCHAR(255)

255

是

流程定义的Namespace就是类别

NAME_

流程名称(该编号就是流程文件process元素的name属性值)

VARCHAR(255)

255

是

名称

KEY_

流程编号(该编号就是流程文件process元素的id属性值)

VARCHAR(255)

255

流程定义ID

VERSION_

流程版本号(由程序控制,新增即为1,修改后依次加1来完成的)

INT(11)

11

版本

DEPLOYMENT_ID_

部署编号

VARCHAR(64)

64

是

部署表ID

RESOURCE_NAME_

资源文件名称

VARCHAR(4000)

4000

是

流程bpmn文件名称

DGRM_RESOURCE_NAME_

图片资源文件名称

VARCHAR(4000)

4000

是

png流程图片名称

DESCRIPTION_

描述信息

VARCHAR(4000)

4000

是

描述

HAS_START_FORM_KEY_

是否从key启动

TINYINT(4)

4

是

start节点是否存在formKey

 0否  1是

SUSPENSION_STATE_

是否挂起

INT(11)

11

是

1激活 2挂起

注:此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_RE_PROCDEF表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和PNG图片文件。和ACT_GE_BYTEARRAY的关联是通过程序用ACT_GE_BYTEARRAY.NAME与ACT_RE_PROCDEF.NAME_完成的,在数据库表结构中没有体现。

 

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

ACT_RU_EVENT_SUBSCR(act_ru_event_subscr)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID

VARCHAR(64)

64

REV_

版本号

INT(11)

11

是

EVENT_TYPE_

事件类型

VARCHAR(255)

255

EVENT_NAME_

事件名称

VARCHAR(255)

255

是

EXECUTION_ID_

流程执行ID

VARCHAR(64)

64

是

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

ACTIVITY_ID_

活动ID

VARCHAR(64)

64

是

CONFIGURATION_

配置信息

VARCHAR(255)

255

是

CREATED_

创建时间

TIMESTAMP

CURRENT_TIMESTAMP

 

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

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

ACT_RU_EXECUTION(act_ru_execution)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

ID_

REV_

版本号

INT(11)

11

是

乐观锁

PROC_INST_ID_

流程实例编号

VARCHAR(64)

64

是

流程实例ID

BUSINESS_KEY_

业务编号

VARCHAR(255)

255

是

业务主键ID

PARENT_ID_

父执行流程

VARCHAR(64)

64

是

父节点实例ID

PROC_DEF_ID_

流程定义Id

VARCHAR(64)

64

是

流程定义ID

SUPER_EXEC_

VARCHAR(64)

64

是

ACT_ID_

实例id

VARCHAR(255)

255

是

节点实例ID即

ACT_HI_ACTINST中ID

IS_ACTIVE_

激活状态

TINYINT(4)

4

是

是否存活

IS_CONCURRENT_

并发状态

TINYINT(4)

4

是

是否为并行(true/false)

IS_SCOPE_

 

TINYINT(4)

4

是

 

IS_EVENT_SCOPE_

 

TINYINT(4)

4

是

 

SUSPENSION_STATE_

暂停状态_

INT(11)

11

是

挂起状态   1激活 2挂起

CACHED_ENT_STATE_

缓存结束状态_

INT(11)

11

是

 

 

1.2.21 表名:ACT_RU_IDENTITYLINK(身份联系)

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

ACT_RU_IDENTITYLINK(act_ru_identitylink)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

 

REV_

版本号

INT(11)

11

是

 

GROUP_ID_

用户组ID

VARCHAR(255)

255

是

 

TYPE_

用户组类型

VARCHAR(255)

255

是

主要分为以下几种:assignee、candidate、

owner、starter、participant。即:受让人,候选人,所有者、起动器、参与者

USER_ID_

用户ID

VARCHAR(255)

255

是

 

TASK_ID_

任务Id

VARCHAR(64)

64

是

 

PROC_INST_ID_

流程实例ID

VARCHAR(64)

64

是

 

PROC_DEF_ID_

流程定义Id

VARCHAR(64)

64

是

 

 

 

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

运行时定时任务数据表

ACT_RU_JOB(act_ru_job)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

标识

REV_

版本号

INT(11)

11

是

版本

TYPE_

TYPE_

VARCHAR(255)

255

类型

LOCK_EXP_TIME_

LOCK_EXP_TIME_

TIMESTAMP

是

锁定释放时间

LOCK_OWNER_

LOCK_OWNER_

VARCHAR(255)

255

是

挂起者

EXCLUSIVE_

EXCLUSIVE_

TINYINT(1)

1

是

 

EXECUTION_ID_

EXECUTION_ID_

VARCHAR(64)

64

是

执行实例ID

PROCESS_INSTANCE_ID_

PROCESS_INSTANCE_ID_

VARCHAR(64)

64

是

流程实例ID

PROC_DEF_ID_

PROC_DEF_ID_

VARCHAR(64)

64

是

流程定义ID

RETRIES_

RETRIES_

INT(11)

11

是

 

EXCEPTION_STACK_ID_

EXCEPTION_STACK_ID_

VARCHAR(64)

64

是

异常信息ID

EXCEPTION_MSG_

EXCEPTION_MSG_

VARCHAR(4000)

4000

是

异常信息

DUEDATE_

DUEDATE_

TIMESTAMP

是

到期时间

REPEAT_

REPEAT_

VARCHAR(255)

255

是

重复

HANDLER_TYPE_

HANDLER_TYPE_

VARCHAR(255)

255

是

处理类型

HANDLER_CFG_

HANDLER_CFG_

VARCHAR(4000)

4000

是

标识

 

 

 

 

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

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

ACT_RU_TASK(act_ru_task)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

取值说明

是

ID_

ID_

VARCHAR(64)

64

ID_

REV_

版本号

INT(11)

11

是

乐观锁

EXECUTION_ID_

实例id(外键EXECUTION_ID_)

VARCHAR(64)

64

是

执行实例ID

PROC_INST_ID_

流程实例ID(外键PROC_INST_ID_)

VARCHAR(64)

64

是

流程实例ID

PROC_DEF_ID_

流程定义ID

VARCHAR(64)

64

是

流程定义ID

NAME_

任务名称

VARCHAR(255)

255

是

节点定义名称

PARENT_TASK_ID_

父节任务ID

VARCHAR(64)

64

是

父节点实例ID

DESCRIPTION_

任务描述

VARCHAR(4000)

4000

是

节点定义描述

TASK_DEF_KEY_

任务定义key

VARCHAR(255)

255

是

任务定义的ID

OWNER_

所属人(老板)

VARCHAR(255)

255

是

拥有者(一般情况下为空,只有在委托时才有值)

ASSIGNEE_

代理人员

(受让人)

VARCHAR(255)

255

是

签收人或委托人

DELEGATION_

代理团

VARCHAR(64)

64

是

委托类型,DelegationState分为两种:PENDING,RESOLVED。如无委托则为空

PRIORITY_

优先权

INT(11)

11

是

优先级别,默认为:50

CREATE_TIME_

创建时间

TIMESTAMP

创建时间,CURRENT_TIMESTAMP

DUE_DATE_

执行时间

DATETIME

是

耗时

SUSPENSION_STATE_

暂停状态

INT(11)

11

是

1代表激活 2代表挂起

 

 

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

ACT_RU_VARIABLE(act_ru_variable)

是否主键

字段名

字段描述

数据类型

长度

可空

约束

缺省值

备注

是

ID_

ID_

VARCHAR(64)

64

主键标识

REV_

版本号

INT(11)

11

是

乐观锁

TYPE

编码类型

VARCHAR(255)

255

参见VAR_TYPE_类型说明

NAME_

变量名称

VARCHAR(255)

255

变量名称

EXECUTION_ID_

执行实例ID

VARCHAR(64)

64

是

执行的ID

PROC_INST_ID_

流程实例Id

VARCHAR(64)

64

是

流程实例ID

TASK_ID_

任务id

VARCHAR(64)

64

是

节点实例ID(Local)

BYTEARRAY_ID_

字节组ID

VARCHAR(64)

64

是

字节表的ID

(ACT_GE_BYTEARRAY)

DOUBLE_

DOUBLE_

DOUBLE

是

存储变量类型为Double

LONG_

LONG_

BIGINT(20)

20

是

存储变量类型为long

TEXT_

TEXT_

VARCHAR(4000)

4000

是

存储变量值类型为String

如此处存储持久化对象时,值jpa对象的class

TEXT2_

TEXT2_

VARCHAR(4000)

4000

是

此处存储的是JPA持久化对象时,才会有值。此值为对象ID

 

 

2  Activiti中主要对象的关系

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

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

图1.Activiti中几个对象之间的关系

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

u  员工申请请假

u  部门领导审批

u  人事审批

u  员工销假

 

ProcessInstance对象

员工开始申请请假流程,通过runtimeService.startProcessInstance()方法启动,引擎会创建一个流程实例(ProcessInstance)。

简单来说流程实例就是根据一次(一条)业务数据用流程驱动的入口,两者之间是一对一的关系。流程引擎会创建一条数据到ACT_RU_EXECUTION表,同时也会根据history的级别决定是否查询相同的历史数据到ACT_HI_PROCINST表。

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

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

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

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

u 对于外部表单来说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)  值不相等的情况:

不相等的情况目前只会出现在子流程中(包含:嵌套、引入),例如一个购物流程中除了下单、出库节点之外可能还有一个付款子流程,在实际企业应用中付款流程通常是作为公用的,所以使用子流程作为主流程(购物流程)的一部分。

当任务到达子流程时引擎会自动创建一个付款流程,但是这个流程有一个特殊的地方,在数据库可以直观体现,如下图。

图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服务(JavaServiceTask)等,在实际流程运行中只不过面向对象不同,用户任务(UserTask)需要有人为参与完成(complete),Java服务需要由系统自动执行(execution)。

图4. 表ACT_RU_TASK

Task是在流程定义中看到的最大单位,每当一个Task完成的时候引擎会把当前的任务移动到历史中,然后插入下一个任务插入到表ACT_RU_TASK中。结合请假流程来说就是让用户点击“完成”按钮提交当前任务是的动作,引擎自动根据任务的顺序流或者排他分支判断走向。

 

HistoryActivity(历史活动)

图5. 表ACT_HI_ACTINST

 

Activity包含了流程中所有的活动数据,例如开始事件(图5表中的第1条数据)、各种分支(排他分支、并行分支等,图5表中的第2条数据)、以及刚刚提到的Task执行记录(如图5表中的第3、4条数据)。

有些人认为Activity和Task是多对一关系,其实不是,从上图中可以看出来根本没有Task相关的字段。

结合请假流程来说,如Task中提到的当完成流程的时候所有下一步要执行的任务(包括各种分支)都会创建一个Activity记录到数据库中。例如领导审核节点点击“同意”按钮就会流转到人事审批节点,如果“驳回”那就流转到调整请假内容节点,每一次操作的Task背后实际记录更详细的活动(Activity)。

Activiti7数据库表结构详解 Activiti在部署添加资源时,如果发布部署的文件是流程文件(.bpmn或者.BPMN20.xml),则除了会解析这些流程文件,将内容保存到资源表外,还会解析流程文件的内容,形成特定的流程定义数据,写入流程定义表(ACT_RE_PROCDEF)中。ACT_RE_PROCDEF表主要包含流程定义的分类,读取流程XML文件中的targetNamespace值。流程定义名称,读取流程文件中process元素的name属性。流程定义的key,读取流程文件中process元素的id属性。 阅读详情

相关推荐

Activiti数据库表结构详细介绍

数据库表的命名 Acitiviti数据库中表的命名都是以ACT_开头的。第二部分是一个两个字符用例表的标识。此用例大体与服务API是匹配的。 ACT_RE_*:’RE’表示repository。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。 ACT_RU_*:’RU’表示runtime。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。

荒的博客 2356

Activiti——数据库表结构详解

Activiti在部署添加资源时,如果发布部署的文件是流程文件(.bpmn或者.BPMN20.xml),则除了会解析这些流程文件,将内容保存到资源表外,还会解析流程文件的内容,形成特定的流程定义数据,写入流程定义表()中。ACT_RE_PROCDEF表主要包含CATEGORY_:流程定义的分类,读取流程XML文件中的targetNamespace值。NAME_:流程定义名称,读取流程文件中process元素的name属性。KEY_:流程定义的key,读取流程文件中process元素的id属性。

吴声子夜歌的博客 7451

Activiti-5.21数据库表结构详解(共25张表)

Activiti-5.21数据库表结构详解(共25张表) 工作流的应用越来越广泛,而activiti是公认的现阶段最好的工作流框架之一,详细了解activiti的库表结构有助于您更好的掌握学习工作流框架,共享本资源以供广大编程从业人员学习交流,望本资源可以帮助您更上一层楼。

Activiti数据库表结构(表详细版)

1Activiti数据库表结构 1.1 数据库表名说明 Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头。 并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配。 uACT_GE_*: “GE”代表“General”(通用),用在各种情况下; uACT_HI_*: “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例、变量、任务,等等。Activit默认提供了4种历...

tyzh_cchu的博客 8664

Activiti工作流数据库表结构

1.2.1 Activiti数据表清单: 3 1.2.2 表名:ACT_GE_BYTEARRAY (通用的流程定义和流程资源) 3 1.2.4 表名:ACT_HI_ACTINST (历史节点表) 5 1.2.3 表名:ACT_GE_PROPERTY (系统相关属性) 4 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 (运行时流程执行实例) 14 1.2.21 表名:ACT_RU_IDENTITYLINK(身份联系) 15 1.2.22 表名:ACT_RU_JOB(运行中的任务) 15 1.2.23 表名:ACT_RU_TASK(运行时任务数据表) 16 1.2.24 表名:ACT_RU_VARIABLE(运行时流程变量数据表) 17

基于TL431与MOSFET的高效过压保护电路设计详解

本文详细解析了基于TL431与MOSFET的高效过压保护电路设计。通过TL431精准监测电压,驱动MOSFET作为主开关,实现快速可靠的电源保护。文章涵盖电路原理、参数计算、性能优化及实战调试要点,为电子设备提供了一套经典且成本低廉的过压保护解决方案。

weixin_29215391的博客 782

activiti数据库表结构剖析

1、结构设计 1.1、    逻辑结构设计 Activiti使用到的表都是ACT_开头的。 ACT_RE_*: ’RE’表示repository(存储),RepositoryService接口所操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。 ACT_RU_*: ‘RU’表示runtime,运行时表-RuntimeService

苍天在上 830

多模型对抗性审查:用AI辩论提升技术文档质量

在软件工程领域,技术文档是团队协作和项目成功的关键基础。传统的文档评审依赖人工经验,存在盲区和效率瓶颈。通过引入多模型对抗性审查机制,不同大语言模型从各自视角对文档进行批判性分析,模拟现实中的专家评审过程。这种技术方法的核心价值在于利用模型间的思维差异,自动发现单个视角容易忽略的边界情况、逻辑漏洞和隐含假设。在应用场景上,特别适合产品需求文档和技术规格书这类需要多角度审视的复杂文档。adversarial-spec工具通过Claude协调多模型辩论,实现从概念到实现的完整文档质量保障,显著提升文档的完整性和

weixin_42531579的博客 379

activiti数据库表结构全貌解析

下面本人介绍一些activiti这款开源流程设计yinqin

Stay Hungry, Stay Foolish 1万+

Docker Desktop 在 Windows 上的安装和使用

WSL 指 “”,这是一个在 Windows 10\11 上能够运行原生 Linux 二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发的,旨在使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。这极大地拓展了Windows系统的功能,使用户能够在Windows环境中享受到Linux的强大功能。//Linux容器。

swadian2008的博客 6万+

【Flink cdc】Data row is smaller than a column index, internal schema representation is probably xxx

翻译一下:当scan.startup.mode=EARLIEST_OFFSET时,如果在最早的offset之后表结构有过变化就无法支持。原因应该是在binlog 的earliest_offset之后,表结构被修改过。我的解决方案:source配置中使用。mysql source配置使用。,以时间戳为消费依据。

integrity 2085

Activiti7 数据库表结构详细解析

activiti7数据库表结构参考

weixin_49891230的博客 1368

VMware 15 虚拟机安装Ubuntu 18.04

这几年在自动化、计算机之间游来游去,最近又要做机器学习相关的课题,14年做的虚拟机实在不堪重用了,OK,我们重新开始。 VMware的安装就不再赘述了,目前最新版本是15.0.2,官方下载地址: https://my.vmware.com/en/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation_pro/15_0...

略懂 2万+

Activiti 开发案例之数据库表结构说明

表说明 act_ge_ 通用数据表,ge是general的缩写 act_hi_ 历史数据表,hi是history的缩写,对应HistoryService接口 act_id_ 身份数据表,id是identity的缩写,对应IdentityService接口 act_re_ 流程存储表,re是repository的缩写,对应RepositoryService接口,存储流程部署和流程定义等静态数...

weiguoxin的专栏 418

越野换了逐飞的ips200pro的屏幕后代码烧录中报错: “Cannot initialize device connection” 和 “Flashing failed” ...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1152

基于Python的股票K线图爬取与形态识别系统

本文详细介绍了一个基于Python的股票K线图爬取与形态识别系统。该系统通过网络爬虫技术获取股票历史数据,使用Matplotlib生成K线图,并应用卷积神经网络(CNN)对经典K线形态进行识别。文章详细阐述了数据采集、K线图生成、CNN模型构建与训练的完整流程,并提供了完整的代码实现。本研究为金融科技领域的毕业设计提供了有价值的参考方案。关键词:Python爬虫、K线图、卷积神经网络、形态识别、股票交易。

2201_76125261的博客 1033

activiti表字段_Activiti工作流数据库表结构

Activiti数据表结构目录1ACTIVITI数据库表结构-----------------------------------------------------21.1数据库表名说明---------------------------------------------------------21.2数据库表结构--------------------------------------...

weixin_42613360的博客 202

linux v3h平台开发系列详解(GMSL摄像头篇):1.12 解串器MAX96712输出4 lane 变 2 lane的配置

本文详细介绍了在Linux v3h平台上,针对Max96712解串器进行MIPI 4lane到2lane配置。内容包括串行器解串器介绍、链路框架、硬件连接、以及软件寄存器如何配值和一些问题的解决方法。

xian18809311584的博客 1095

【Activiti学习笔记】一、Activiti5.22的数据库表结构介绍

       在正式开始讲解activiti之前,我们先对activiti的数据库表结构进行介绍。学习activiti的思路是先了解他的数据库设计,找出数据表之间的逻辑关系,然后以生活中一个常见的栗子——请假流程为例,来发现在请假流程中的每一个环节,数据表如何记录这种关联关系。流程引擎的作用则是为实现这种逻辑关系提供了简化API...

木子叶的奔跑 3680

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Activiti工作流引擎数据库表结构

互联网上找到的一些资料,不记得原出处了,写下来方便自己以后查阅 数据库表的命名 Acitiviti数据库中表的命名都是以ACT_开头的。第二部分是一个两个字符用例表的标识。此用例大体与服务API是匹配的。 lACT_RE_*:’RE’表示repository。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。 lACT_RU_*:’RU’表示runti...

weixin_30819085的博客 497

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

activiti 表结构 数据库 设计说明书

个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 1、结构设计 1.1、逻辑结构设计 Activiti使用到的表都是ACT_开头的。 ACT_RE_*: ’RE’表示repository(存储),RepositoryService接口所操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。 ACT_RU_*: ‘RU’表示r...

jishulaozhuanjia的博客 228

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 在图片的右上角加一个复选框
下一篇: tomcat 7w的使用
JNWsong
博客等级 码龄9年 287粉丝 204原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值