Activiti 工作流数据库表结构

jachonen

贡献于2015-08-11

字数:15524 关键词: 工作流引擎

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 (运行时流程执行实例) 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 2 ACTIVITI中主要对象的关系 17 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只保存流程实例在执行过程中的运行时数据,并且当流程结束后会立即移除这些数据,这是为了保证运行时表尽量的小并运行的足够快; 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_ 版本号 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 是 Activiti数据表结构 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) 是 毫秒值 Activiti数据表结构 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 Activiti数据表结构 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 Activiti数据表结构 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 是 Activiti数据表结构 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) Activiti数据表结构 是否主键 字段名 字段描述 数据类型 长度 可空 约束 缺省值 备注 是 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 是 Activiti数据表结构 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 是 Activiti数据表结构 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 是 版本 Activiti数据表结构 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 Activiti数据表结构 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 Activiti数据表结构 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。即:受让人,候选人,所有者、起动器、参与者 Activiti数据表结构 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) 是否主键 字段名 字段描述 数据类型 长度 可空 约束 缺省值 取值说明 Activiti数据表结构 是 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 Activiti数据表结构 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对象 Activiti数据表结构 员工开始申请请假流程,通过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) 值不相等的情况: 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)。

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享文档获得金币 ]
4 人已下载

下载文档

相关文档