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

版权声明:本文为博主原创文章,未经博主允许不得转载。不经过允许copy,讲追究法律责任,欢迎加入我们的学习提升群466355109,可以相互交流

数据库表的命名

Acitiviti数据库中表的命名都是以ACT_开头的。第二部分是一个两个字符用例表的标识。此用例大体与服务API是匹配的。

l  ACT_RE_*:’RE’表示repository。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。

l  ACT_RU_*:’RU’表示runtime。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。

l  ACT_ID_*:’ID’表示identity。这些表包含标识的信息,如用户,用户组,等等。

l  ACT_HI_*:’HI’表示history。就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。

l  ACT_GE_*:普通数据,各种情况都使用的数据。

数据库表结构图

数据库表结构说明(京缘网络整理

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

1.    NAME_:属性名称

2.    VALUE_:属性值

3.    REV_INT:版本号

l  ACT_GE_BYTEARRAY:用来保存部署文件的大文本数据

1.    ID_:资源文件编号,自增长

2.    REV_INT:版本号

3.    NAME_:资源文件名称

4.    DEPLOYMENT_ID_:来自于父表ACT_RE_DEPLOYMENT的主键

5.    BYTES_:大文本类型,存储文本字节流

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

1.    ID_:部署编号,自增长

2.    NAME_:部署包的名称

3.    DEPLOY_TIME_:部署时间

l  ACT_RE_PROCDEF:业务流程定义数据表

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

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

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

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

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

6.    DEPLOYMENT_ID_:部署编号

7.    RESOURCE_NAME_:资源文件名称

8.    DGRM_RESOURCE_NAME_:图片资源文件名称

9.    HAS_START_FROM_KEY_:是否有Start From Key

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

l  ACT_ID_GROUP:用来存储用户组信息。

1.    ID_:用户组名*

2.    REV_INT:版本号

3.    NAME_:用户组描述信息*

4.    TYPE_:用户组类型

l  ACT_ID_MEMBERSHIP:用来保存用户的分组信息

1.    USER_ID_:用户名

2.    GROUP_ID_:用户组名

l  ACT_ID_USER:

1.    ID_:用户名

2.    REV_INT:版本号

3.    FIRST_:用户名称

4.    LAST_:用户姓氏

5.    EMAIL_:邮箱

6.    PWD_:密码

l  ACT_RU_EXECUTION:

1.     ID_:

2.     REV_:版本号

3.     PROC_INST_ID_:流程实例编号

4.     BUSINESS_KEY_:业务编号

5.     PARENT_ID_:找到该执行实例的父级,最终会找到整个流程的执行实例

6.     PROC_DEF_ID_:流程ID

7.     SUPER_EXEC_: 引用的执行模板

8.     ACT_ID_: 节点id

9.     IS_ACTIVE_: 是否访问

10.  IS_CONCURRENT_:

11.  IS_SCOPE_:

l  ACT_RU_TASK:运行时任务数据表。

1.     ID_:

2.     REV_:

3.     EXECUTION_ID_: 执行实例的id

4.     PROC_INST_ID_: 流程实例的id

5.     PROC_DEF_ID_:  流程定义的id,对应act_re_procdef 的id_

6.     NAME_:  任务名称,对应 ***task 的name

7.     PARENT_TASK_ID_ : 对应父任务

8.     DESCRIPTION_:

9.     TASK_DEF_KEY_: ***task 的id

10.  OWNER_   : 发起人

11.  ASSIGNEE_: 分配到任务的人

12.  DELEGATION_ :  委托人

13.  PRIORITY_: 紧急程度

14.  CREATE_TIME_: 发起时间

15.  DUE_TIME_:审批时长

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

1.     ID_:  标识

2.     REV_: 版本

3.     GROUP_ID_: 组织id

4.     TYPE_: 类型

5.     USER_ID_: 用户id

6.     TASK_ID_: 任务id

l  ACT_RU_VARIABLE:运行时流程变量数据表。

1.     ID_:标识

2.     REV_:版本号

3.     TYPE_:数据类型

4.     NAME_:变量名

5.     EXECUTION_ID_: 执行实例id

6.     PROC_INST_ID_: 流程实例id

7.     TASK_ID_: 任务id

8.     BYTEARRAY_ID_:

9.     DOUBLE_:若数据类型为double ,保存数据在此列

10.  LONG_: 若数据类型为Long保存数据到此列

11.  TEXT_: string 保存到此列

12.  TEXT2_:

l  ACT_HI_PROCINST:

1.     ID_ : 唯一标识

2.     PROC_INST_ID_ : 流程ID

3.     BUSINESS_KEY_ : 业务编号

4.     PROC_DEF_ID_ : 流程定义id

5.     START_TIME_ : 流程开始时间

6.     ENT__TIME :  结束时间

7.     DURATION_ : 流程经过时间

8.     START_USER_ID_ : 开启流程用户id

9.     START_ACT_ID_ : 开始节点

10.  END_ACT_ID_: 结束节点

11.  SUPER_PROCESS_INSTANCE_ID_ : 父流程流程id

12.  DELETE_REASON_ : 从运行中任务表中删除原因

l  ACT_HI_ACTINST:

1.     ID_ : 标识

2.     PROC_DEF_ID_ :流程定义id

3.     PROC_INST_ID_ : 流程实例id

4.     EXECUTION_ID_ : 执行实例

5.     ACT_ID_ : 节点id

6.     ACT_NAME_ : 节点名称

7.     ACT_TYPE_ : 节点类型

8.     ASSIGNEE_ : 节点任务分配人

9.     START_TIME_ : 开始时间

10.  END_TIME_ : 结束时间

11.  DURATION : 经过时长

l  ACT_HI_TASKINST:

1.     ID_ : 标识

2.     PROC_DEF_ID_ : 流程定义id

3.     TASK_DEF_KEY_ : 任务定义id

4.     PROC_INST_ID_ : 流程实例id

5.     EXECUTION_ID_ : 执行实例id

6.     PARENT_TASK_ID_ : 父任务id

7.     NAME_ : 任务名称

8.     DESCRIPTION_ : 说明

9.     OWNER_ : 拥有人(发起人)

10.  ASSIGNEE_ : 分配到任务的人

11.  START__TIME_ : 开始任务时间

12.  END_TIME_ : 结束任务时间

13.  DURATION_ : 时长

14.  DELETE_REASON_ :从运行时任务表中删除的原因

15.  PRIORITY_ : 紧急程度

16.  DUE_DATE_ :

l  ACT_HI_DETAIL:启动流程或者在任务complete之后,记录历史流程变量

1.     ID_ : 标识

2.     TYPE_ : variableUpdate 和 formProperty 两种值

3.     PROC_INST_ID_ : 对应流程实例id

4.     EXECUTION_ID_ : 对应执行实例id

5.     TASK_ID_ : 对应任务id

6.     ACT_INST_ID : 对应节点id

7.     NAME_ : 历史流程变量名称,或者表单属性的名称

8.     VAR_TYPE_ : 定义类型

9.     REV_ : 版本

10.  TIME_ : 导入时间

11.  BYTEARRAY_ID_

12.  DOUBLE_ : 如果定义的变量或者表单属性的类型为double,他的值存在这里

13.  LONG_ : 如果定义的变量或者表单属性的类型为LONG ,他的值存在这里

14.  TEXT_ :  如果定义的变量或者表单属性的类型为string,值存在这里

15.  TEXT2_:

l  ACT_HI_COMMENT 意见表

1.     ID_ :标识

2.     TYPE_ : 意见记录类型 为comment 时 为处理意见

3.     TIME_ : 记录时间

4.     USER_ID_ :

5.     TASK_ID_ : 对应任务的id

6.     PROC_INST_ID_ : 对应的流程实例的id

7.     ACTION_ : 为AddComment 时为处理意见

8.     MESSAGE_ : 处理意见

9.     FULL_MSG_ :

京缘网络结论及总结

l  流程文件部署主要涉及到3个表,分别是:ACT_GE_BYTEARRAY、ACT_RE_DEPLOYMENT、ACT_RE_PROCDEF。主要完成“部署包”-->“流程定义文件”-->“所有包内文件”的解析部署关系。从表结构中可以看出,流程定义的元素需要每次从数据库加载并解析,因为流程定义的元素没有转化成数据库表来完成,当然流程元素解析后是放在缓存中的,具体的还需要后面详细研究。

l  流程定义中的java类文件不保存在数据库里 。

l  组织机构的管理相对较弱,如果要纳入单点登录体系内还需要改造完成,具体改造方法有待研究。

l  运行时对象的执行与数据库记录之间的关系需要继续研究

l  历史数据的保存及作用需要继续研究。

 

Activiti使用Mybatis3做持久化工作,可以在配置中设置流程引擎启动时创建表。

Activiti使用到的表都是ACT_开头的。

ACT_RE_*:流程定义存储。

ACT_RU_*:流程执行记录,记录流程启动到结束的所有动作,流程结束后会清除相关记录。

ACT_ID_*:用户记录,流程中使用到的用户和组。

ACT_HI_*:流程执行的历史记录。

ACT_GE_*:通用数据及设置。

使用到的表:

ACT_GE_BYTEARRAY:流程部署的数据。

ACT_GE_PROPERTY:通用设置。

ACT_HI_ACTINST:流程活动的实例。

ACT_HI_ATTACHMENT:

ACT_HI_COMMENT:

ACT_HI_DETAIL:

ACT_HI_PROCINST:流程实例。

ACT_HI_TASKINST:任务实例。

ACT_ID_GROUP:用户组。

ACT_ID_INFO:

ACT_ID_MEMBERSHIP:

ACT_ID_USER:用户。

ACT_RE_DEPLOYMENT:部署记录。

ACT_RE_PROCDEF:流程定义。

ACT_RU_EXECUTION:流程执行记录。

ACT_RU_IDENTITYLINK:

ACT_RU_JOB:

ACT_RU_TASK:执行的任务记录。

ACT_RU_VARIABLE:执行中的变量记录。

activiti-administrator

自带的用户管理系统,维护用户和组,需要配置数据连接参数,在activiti-administrator\WEB-INF\applicationContext.xml中,并加入JDBC驱动包。

activiti-cycle

PVM活动检测的,由activiti-rest提供服务,不需配置。

activiti-explorer

可以查看用户任务和启动流程,由activiti-rest提供服务,不需配置。

activiti-kickstart

简单的点对点流程定义维护工具,需要配置数据连接,把activiti.cfg.xml文件放在classes下,并加入驱动包。

activiti-modeler

在线编辑和维护流程定义的工具,最后以文件夹方式部署,需要配置activiti-modeler\WEB-INF\classes\configuration.properties文件。

activiti-probe

PVM的观测服务,由activiti-rest提供服务,不需配置,可以查看deployment、processdefinition、processinstance、database。

activiti-rest

其他几个应用的服务提供者,需要配置数据连接,把activiti.cfg.xml文件放在classes下,并加入驱动包。

版权声明:本文为博主原创文章,未经博主允许不得转载。不经过允许copy,讲追究法律责任,欢迎加入我们的学习提升群466355109,可以相互交流

时间: 2024-10-17 08:56:21

Activiti工作流引擎数据库表结构的相关文章

Activiti工作流数据库表结构

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

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

http://blog.csdn.net/hj7jay/article/details/51302829 1  Activiti数据库表结构 1.1      数据库表名说明 Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头. 并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配. u  ACT_GE_* : “GE”代表“General”(通用),用在各种情况下: u  ACT_HI_* : “HI”代表“History”(历史)

activiti数据库表结构全貌解析

下面本人介绍一些activiti这款开源流程设计引擎的数据库表结构,首先阐述:我们刚开始接触或者使用一个新的东西(技术)时我们首先多问一下自己几个为什么?为什么activiti在工作流程领域这么流行呢?仅仅是因为开源么?实现如此强大的流程引擎,activiti底层设计是如何进行的?activiti中依赖哪些技术等?这些可能应该是那些刚接触这个开源流程引擎产品的人应该有的疑问.我们在用开源产品的都是其实应该多问自己为什么?这样才能有所进步,不是么?兴许你一时兴起,“起笔”就把一款属于你自己的开源作

工作流 jBMP4.4表结构

(一)资源库和运行时表结构       JBPM4_DEPLOYMENT,      JBPM4_DEPLOYPROP,      JBPM4_LOB 存储流程定义相关的部署信息       JBPM4_EXECUTION 主要是存放JBPM4的执行信息,Execution机制代替了JBPM3的Token机制       JBPM4_TASK 存放需要人来完成的Activities(活动),需要人来参与完成的Activity 被称为Task      JBPM4_PARTICIPATION 参与

Activiti工作流引擎使用

Activiti工作流引擎使用 1.简单介工作流引擎与Activiti 对于工作流引擎的解释请参考百度百科:工作流引擎 1.1 我与工作流引擎 在第一家公司工作的时候主要任务就是开发OA系统,当然基本都是有工作流的支持,不过当时使用的工作流引擎是公司一些牛人开发的(据说是用一个开源的引擎修改的),名称叫CoreFlow:功能相对Activiti来说比较弱,但是能满足日常的使用,当然也有不少的问题所以后来我们只能修改引擎的代码打补丁. 现在是我工作的第二家公司,因为要开发ERP.OA等系统需要使用

比较两个mysql数据库表结构的差异

这些天在做基于开源系统的二次开发,边改边添加字段. 线上还运行了之前改好的系统. 表结构的设计管理混乱. 又没有好的办法,网上找的一下也没有很好的办法. 很多软件可以生成变更的sql代码,但不能直观查看便于开发. 后来找了个小工具DatabaseCompare还蛮好用, 可以比较数据库表结构.视图.存储过程.触发器的不同. 比较两个数据库全部表结构的差异, 包括表名.存储引擎.字符集.注释的不同, 以及每张表中的字段名.数据类型.字符集.默认值.注释的不同, 还有索引的不同.字段顺序的不同. 比

请设计一套图书馆借书管理系统的数据库表结构

请设计一套图书馆借书管理系统的数据库表结构:可以记录基本的用户信息.图书信息.借还书信息:数据表的个数不超过6个:请画表格描述表结构(需要说明每个字段的字段名.字段类型.字段含义描述): 在数据库设计中应: 1.保证每个用户的唯一性: 2.保证每种图书的唯一性:每种图书对应不等本数的多本图书:保证每本图书的唯一性: 3.借书信息表中,应同时考虑借书行为与还书行为,考虑借书期限: 4.保证借书信息表与用户表.图书信息表之间的参照完整性: 5.限制每个用户最大可借书的本数 6.若有新用户注册或新书入

关系型数据库表结构设计规范-浅谈(转)

数据库表结构设计规范-浅谈,为啥是浅谈呢,因为主要的观点还是来自原微信公共账号的一篇文章,稍微加了一些自己的看法. 谁来进行数据库的设计? 肯定是具体的开发工程师来进行,开发同学的话,第一业务熟悉度比较高,第二结合OO和ORM的思想,能有比较好的运用关系型数据库的特性.如果是DBA同学的话,虽然对于数据库本身了解比较多,但是对于业务了解较少,很难有比较客观的设计.但是业务上线或者运行期间,需要DBA同学能够重度的加入进来,针对一些性能点和不合理的点进行优化,同事也可以在上线前,针对SQL进行re

OSSIM主要数据库表结构

OSSIM主要数据库表结构 对于从事OSSIM开发的技术人员,最主要的需要知道OSSIM库里的多种表结构,下面举几个典型事例: /* ======== config表 ======== */ DROP TABLE IF EXISTS conf; CREATE TABLE conf ( recovery        int NOT NULL, threshold       int NOT NULL, graph_threshold int NOT NULL, bar_length_left i