淘宝客登记新网站,电子商务专业网站设计,简述网站建设的,罗湖医院网站建设文/朱季谦
Activiti工作流引擎自带了一套数据库表#xff0c;这里面有一个需要注意的地方#xff1a;
低于5.6.4的MySQL版本不支持时间戳或毫秒级的日期。更糟糕的是#xff0c;某些版本在尝试创建此类列时将引发异常#xff0c;而其他版本则不会。执行自动创建/升级时这里面有一个需要注意的地方
低于5.6.4的MySQL版本不支持时间戳或毫秒级的日期。更糟糕的是某些版本在尝试创建此类列时将引发异常而其他版本则不会。执行自动创建/升级时引擎将在执行DDL时更改它。使用DDL文件方法时既可以使用常规版本也可以使用其中带有mysql55的特殊文件这适用于低于5.6.4的任何版本。后一个文件将具有没有毫秒精度的列类型。
笔者曾经在5.6.0版本做过试验发现是无法自动生成23张表的但在5.6.4版本以上便可因此最好保证mysql版本在5.6.4以上。 一.数据库表名称说明
Activiti的数据库表分5大部分名称以ACT开头第二部分是表用例的两个字符的标志该用例与服务API的大致匹配 二.ACT_GE_ *通用数据表 通用数据表用于存放一些通用的数据这些表本身不关心特定的流程或者业务只用于存放这些业务或者流程所使用的资源。通用数据表有两个分别是ACT_GE_BYTEARRAY与ACT_GE_PROPERTY,它们都是以ACT_GE_*开头的。
2.1 ACT_GE_BYTEARRAY资源表
表ACT_GE_BYTEARRAY资源表用于保存于流程引擎相关的资源流程文件进行部署时流程定义的图片以及XML文件等数据都会转换成byte数组保存到这个表中。该表设计了一个byte字段用来保存资源的内容该表包含以下字段 注Activiti为了保证整个流程引擎表中所产生的数据主键在整个流程引擎中是唯一的使用了一个DbIdGenerator类生成主键该类中保存了下一条数据的ID值和当前ID块最后一个ID值。 2.2 ACT_GE_PROPERTY属性表
Activiti将全部的属性抽象为key-value对每个属性都有名称和值。 注在初始化流程数据库时会默认加入3条属性数据next.dbid、schema.history和schema.version。
next.dbid:属性值为1时表示Activiti数据库表ID生成时当前ID块最大值为1即数据库里还没有任何数据。前面也提到流程引擎是使用一个DbIdGenerator类来生成主键的该类保存了下一条数据的ID值和当前ID块的最后一个ID值所谓ID块就是Activiti数据产生时ID值时就会从1开始到101进行取值作为数据ID那么该ID块的最大值为101。DbIdGenerator在产生数据ID时会判断当前ID值是否大于101ID块最大值。如果大于则请求重新生成一个ID块那么此时属性中的next.dbid属性值将会为201。
schema.history属性表示数据表结构的更新历史例如—— create(5.22.0.0)即表示使用了5.22版本的初始化脚本创建。
schema.version表示当前Activiti数据结构的版本。 三.ACT_RE_ *流程存储表
存储表名称以ACT_RE开头RE是repository单词的前两个字母流程使用存储表来保存流程定义和部署信息相关的数据。 3.1.ACT_RE_DEPLOYMENT部署数据表
在流程引擎中一次部署可以添加多个资源即可以有图片与XML之类的资源这些资源数据会保存到资源表ACT_GE_BTYEARRAY剩余部署信息则保存到部署表中部署名为ACT_RE_DEPLOYMENT包含以下三个字段 3.2.ACT_RE_PROCDEF流程定义表
Activiti在部署流程文件时.bpmn或者.bpmn20.xml其除了会将内容保存到资源表外还会解析流程文件的内容形成特定的流程定义数据写入到流程定义表ACT_RE_PROCDEF中该表包含了以下的字段 注该表的主键与其他数据表不同的是ACT_RE_PROCDEF表的主键是组合主键其值为流程定义的KEY_字段值加流程定义的VERSION_字段值再加ID生成器生成的ID值其中这三个值以冒号为分隔符。例如KEY_值为baoxiaoProcessVERSION_值为1ID生成器生成的ID值为722504则该主键为baoxiaoProcess:1:722504如以下截图所示 四.ACT_ID_ *身份数据表
Activiti的整个身份证数据模块可以独立于流程引擎而存在身份数据表并没有保存流程相关的数据以及关联身份表名称使用ACT_ID关联ID是单词identity的前两个字母。
4.1.ACD_ID_USER用户表
流程引擎用户的信息被保存在ACT_ID_USER表中该表有以下字段 4.2.ACD_ID_GROUP用户组表
使用ACT_ID_GROUP表来保存用户组的数据该表有以下几个字段 4.3.ACD_ID_MEMBERSHIP关系表
关系表用来描述用户表与用户组表的对应关系 注该表的两个字段均做了外键约束写入该表的数据时必须要有用户和用户组数据与之关联。 五.ACT_RU_ *运行时数据表
运行时数据表用来保存流程在运行过程中所产生的数据例如流程实例、执行流和任务等以ACT_RU开头RU是单词runtime的前两个字母。
5.1.ACT_RU_EXECUTION流程实例表 流程启动后会产生一个流程实例同时产生相应的执行流流程实例和执行流数据均被保存在ACT_RU_EXECUTION表中。如果一个流程实例只要一条执行流那么该表中只产生一条数据该数据既表示执行流也表示流程实例。 5.2.ACT_RU_TASK流程任务表
流程在运行过程中所产生的任务数据保存在ACT_RU_TASK字段如下 5.3.ACT_RU_VARIABLE流程参数表
流程引擎提供了ACT_RU_VARIABLE表来存放流程中的参数这类参数包括流程实例参数、执行流参数和任务参数各参数可以有多种类型。 5.4.ACT_RU_IDENTITYLINK流程与身份关系表 用户组与用户之间存在的关系使用ACT_ID_MEMBERSHIP表保存。用户或者用户组与流程数据之间的关系则使用ACT_RU_IDENTITYLINK表进行保存。 5.5.ACT_RU_JOB工作数据表 在流程执行的过程中会有一些工作需要定时或者重复执行这类工作数据被保存到ACT_RU_JOB表中。 5.6.ACT_RU_EVENT_SUBSCR事件描述表
如果流程到达某类事件节点Activiti会往ACT_RU_EVENT_SUBSCR表中加入事件描述数据这些事件描述数据将会决定流程事件的触发。 六.ACT_HI_ *历史数据表 历史数据表就像流程引擎的日志表。被操作过的流程元素将会被记录到李四表中。历史表名称以ACT_HI开头HI是单词history的前两个字母。
6.1.ACT_HI_PROCINST流程实例表
流程实例的历史数据会被保存到ACT_HI_PROCINST表中只要流程启动Activiti就会将流程实例的数据写入ACT_HI_PROCINST表中。除了基本的流程字段外与运行时数据表不同的是历史流程实例表还会记录流程的开始活动ID的、活动结束ID等信息。 6.2.ACT_HI_ACTINST历史行为表
历史行为表会记录每一个流程活动的实例一个 流程活动将会被记录成一条数据例如流程中有开始事件用户任务结束事件各一个当流程结束后该表就会产生3条历史行为数据。 6.3.附件表ACT_HI_ATTACHMENT
使用任务服务TaskService的API可以添加附件这些附件数据将会保存到ACT_HI_ATTACHMENT表中。 6.4.评论表ACT_HI_COMMENT
可以专门存放审批过程中的评论数据。 博客园【朱季谦】同步更新https://www.cnblogs.com/zhujiqian/