Activiti 23张表及7大服务详解

文章目录
  1. 1. 7大服务介绍
  2. 2. 23张表概览
  3. 3. 23张表详解
    1. 3.1. 二进制数据表(act_ge_bytearray)
    2. 3.2. 属性数据表(act_ge_property)
    3. 3.3. 历史节点表(act_hi_actinst)
    4. 3.4. 历史附件表( act_hi_attachment )
    5. 3.5. 历史意见表( act_hi_comment )
    6. 3.6. 历史详情表( act_hi_detail )
    7. 3.7. 历史流程人员表( act_ru_identitylink )
    8. 3.8. 历史流程实例表(act_hi_procinst)
    9. 3.9. 历史任务实例表( act_hi_taskinst )
    10. 3.10. 历史变量表( act_hi_varinst )
    11. 3.11. 用户组信息表( act_id_group )
    12. 3.12. 用户扩展信息表( act_id_info )
    13. 3.13. 用户与分组对应信息表( act_id_membership )
    14. 3.14. 用户信息表( act_id_user )
    15. 3.15. 部署信息表( act_re_deployment )
    16. 3.16. 流程设计模型部署表( act_re_model )
    17. 3.17. 流程定义数据表( act_re_procdef )
    18. 3.18. act_ru_event_subscr
    19. 3.19. 运行时流程执行实例表( act_ru_execution )
    20. 3.20. 运行时流程人员表( act_ru_identitylink )
    21. 3.21. 运行时定时任务数据表( act_ru_job )
    22. 3.22. 运行时任务节点表( act_ru_task )
    23. 3.23. 运行时流程变量数据表( act_ru_variable )

近来要做流程项目了,由于上大学的时候学过BPMN,现在重新入手Activiti,感觉还是比较容易的,此文先将Activiti6相关的服务接口及相关表略做记录,方便以后查看。

7大服务介绍

服务名称描述
RepositoryServiceActiviti 中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据 ( 例如 BPMN2.0 XML 文件,表单定义文件,流程定义图像文件等 ),这些文件都存储在 Activiti 内建的 Repository 中。Repository Service 提供了对 repository 的存取服务。
RuntimeService在 Activiti 中,每当一个流程定义被启动一次之后,都会生成一个相应的流程对象实例。Runtime Service 提供了启动流程、查询流程实例、设置获取流程实例变量等功能。此外它还提供了对流程部署,流程定义和流程实例的存取服务。
TaskService在 Activiti 中业务流程定义中的每一个执行节点被称为一个 Task,对流程中的数据存取,状态变更等操作均需要在 Task 中完成。Task Service 提供了对用户 Task 和 Form 相关的操作。它提供了运行时任务查询、领取、完成、删除以及变量设置等功能。
IdentityServiceActiviti 中内置了用户以及组管理的功能,必须使用这些用户和组的信息才能获取到相应的 Task。Identity Service 提供了对 Activiti 系统中的用户和组的管理功能。
ManagementServiceManagement Service 提供了对 Activiti 流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于 Activiti 系统的日常维护。
HistoryServiceHistory Service 用于获取正在运行或已经完成的流程实例的信息,与 Runtime Service 中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化。
FormServiceActiviti 中的流程和状态 Task 均可以关联业务相关的数据。通过使用 Form Service 可以存取启动和完成任务所需的表单数据并且根据需要来渲染表单。

23张表概览

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

  • ACT_RE_*:

    ’RE’表示repository(存储),RepositoryService接口所操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。

  • ACT_RU_*:

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

  • ACT_ID_*:

    ’ID’表示identity (组织机构),IdentityService接口所操作的表。用户记录,流程中使用到的用户和组。这些表包含标识的信息,如用户,用户组,等等。

  • ACT_HI_*:

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

  • ACT_GE_*:

    全局通用数据及设置(general),各种情况都使用的数据。

序号表名说明
1act_ge_bytearray二进制数据表
2act_ge_property属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录,
3act_hi_actinst历史节点表
4act_hi_attachment历史附件表
5act_hi_comment历史意见表
6act_hi_identitylink历史流程人员表
7act_hi_detail历史详情表,提供历史变量的查询
8act_hi_procinst历史流程实例表
9act_hi_taskinst历史任务实例表
10act_hi_varinst历史变量表
11act_id_group用户组信息表
12act_id_info用户扩展信息表
13act_id_membership用户与用户组对应信息表
14act_id_user用户信息表
15act_re_deployment部署信息表
16act_re_model流程设计模型部署表
17act_re_procdef流程定义数据表
18act_ru_event_subscrthrowEvent、catchEvent时间监听信息表
19act_ru_execution运行时流程执行实例表
20act_ru_identitylink运行时流程人员表,主要存储任务节点与参与者的相关信息
21act_ru_job运行时定时任务数据表
22act_ru_task运行时任务节点表
23act_ru_variable运行时流程变量数据表

23张表详解

二进制数据表(act_ge_bytearray)

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

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)Y主键ID
REV_乐观锁intYVersion(版本)
NAME_名称nvarchar(255)Y部署的文件名称,如:leave.bpmn.png,leave.bpmn20.xml
DEPLOYMENT_ID_部署IDnvarchar(64)Y部署表ID
BYTES_字节varbinary(max)Y部署文件
GENERATED_是否是引擎生成tinyintY0为用户生成,1为activiti生成

属性数据表(act_ge_property)

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

字段名称字段描述数据类型主键为空取值说明
NAME_名称nvarchar(64)schema.versionschema.historynext.dbid
VALUE_nvarchar(300)5.create(5.)
REV_乐观锁intversion

历史节点表(act_hi_actinst)

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

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)
PROC_DEF_ID_流程定义IDnvarchar(64)
PROC_INST_ID_流程实例IDnvarchar(64)
EXECUTION_ID_执行实例IDnvarchar(64)
ACT_ID_节点IDnvarchar(225)节点定义ID
TASK_ID_任务实例IDnvarchar(64)任务实例ID 其他节点类型实例ID在这里为空
CALL_PROC_INST_ID_调用外部的流程实例IDnvarchar(64)调用外部流程的流程实例ID’
ACT_NAME_节点名称nvarchar(225)节点定义名称
ACT_TYPE_节点类型nvarchar(225)如startEvent、userTask
ASSIGNEE_签收人nvarchar(64)节点签收人
START_TIME_开始时间datetime2013-09-15 11:30:00
END_TIME_结束时间datetime2013-09-15 11:30:00
DURATION_耗时numeric(19,0)毫秒值

历史附件表( act_hi_attachment )

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)主键ID
REV_乐观锁integerVersion
USER_ID_用户IDnvarchar(255)用户ID
NAME_名称nvarchar(255)附件名称
DESCRIPTION_描述nvarchar(4000)描述
TYPE_类型nvarchar(255)附件类型
TASK_ID_任务实例IDnvarchar(64)节点实例ID
PROC_INST_ID_流程实例IDnvarchar(64)流程实例ID
URL_URL_nvarchar(4000)附件地址
CONTENT_ID_字节表的IDnvarchar(64)ACT_GE_BYTEARRAY的ID

历史意见表( act_hi_comment )

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)主键ID
TYPE_类型nvarchar(255)类型:event(事件)comment(意见)
TIME_时间datetime填写时间’
USER_ID_用户IDnvarchar(64)填写人
TASK_ID_节点任务IDnvarchar(64)节点实例ID
PROC_INST_ID_流程实例IDnvarchar(255)流程实例ID
ACTION_行为类型nvarchar(64)见备注1
MESSAGE_基本内容nvarchar(4000)用于存放流程产生的信息,比如审批意见
FULL_MSG_全部内容varbinary(max)附件地址

历史详情表( act_hi_detail )

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

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)主键
TYPE_类型nvarchar(255)见备注2
PROC_INST_ID_流程实例IDnvarchar(64)流程实例ID
EXECUTION_ID_执行实例IDnvarchar(64)执行实例ID
TASK_ID_任务实例IDnvarchar(64)任务实例ID
ACT_INST_ID_节点实例IDnvarchar(64)ACT_HI_ACTINST表的ID
NAME_名称nvarchar(255)名称
VAR_TYPE_参数类型nvarchar(255)见备注3
REV_乐观锁intVersion
TIME_时间戳datetime创建时间
BYTEARRAY_ID_字节表IDnvarcharACT_GE_BYTEARRAY表的ID
DOUBLE_DOUBLE_double precision存储变量类型为Double
LONG_LONG_numeric存储变量类型为long
TEXT_TEXT_nvarchar存储变量值类型为String
TEXT2_TEXT2_nvarchar此处存储的是JPA持久化对象时,才会有值。此值为对象ID

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

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)ID_
GROUP_ID_组IDnvarchar(255)组ID
TYPE_类型nvarchar(255)备注4
USER_ID_用户IDnvarchar(255)用户ID
TASK_ID_节点实例IDnvarchar(64)节点实例ID
PROC_INST_ID_流程实例IDnvarchar(64)流程实例ID

历史流程实例表(act_hi_procinst)

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)主键ID
PROC_INST_ID_流程实例IDnvarchar(64)流程实例ID
BUSINESS_KEY_业务主键nvarchar(255)业务主键,业务表单的ID
PROC_DEF_ID_流程定义IDnvarchar(64)流程定义ID
START_TIME_开始时间datetime开始时间
END_TIME_结束时间datetime结束时间
DURATION_耗时Numeric(19)耗时
START_USER_ID_起草人nvarchar(255)起草人
START_ACT_ID_开始节点IDnvarchar(255)起草环节ID
END_ACT_ID_结束节点IDnvarchar(255)结束环节ID
SUPER_PROCESS_INSTANCE_ID_父流程实例IDnvarchar(64)父流程实例ID
DELETE_REASON_删除原因nvarchar(4000)删除原因

历史任务实例表( act_hi_taskinst )

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)主键ID
PROC_DEF_ID_流程定义IDnvarchar(64)流程定义ID
TASK_DEF_KEY_节点定义IDnvarchar(255)节点定义ID
PROC_INST_ID_流程实例IDnvarchar(64)流程实例ID
EXECUTION_ID_执行实例IDnvarchar(64)执行实例ID
NAME_名称varchar(255)名称
PARENT_TASK_ID_父节点实例IDnvarchar(64)父节点实例ID
DESCRIPTION_描述nvarchar(400)描述
OWNER_实际签收人 任务的拥有者nvarchar(255)签收人(默认为空,只有在委托时才有值)
ASSIGNEE_签收人或被委托nvarchar(255)签收人或被委托
START_TIME_开始时间datetime开始时间
CLAIM_TIME_提醒时间datetime提醒时间
END_TIME_结束时间datetime结束时间
DURATION_耗时numeric(19)耗时
DELETE_REASON_删除原因nvarchar(4000)删除原因(completed,deleted)
PRIORITY_优先级别int优先级别
DUE_DATE_过期时间datetime过期时间,表明任务应在多长时间内完成
FORM_KEY_节点定义的formkeynvarchar(255)desinger节点定义的form_key属性

历史变量表( act_hi_varinst )

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)ID_
PROC_INST_ID_流程实例IDnvarchar(64)流程实例ID
EXECUTION_ID_执行实例IDnvarchar(255)执行实例ID
TASK_ID_任务实例IDnvarchar(64)任务实例ID
NAME_名称nvarchar(64)参数名称(英文)
VAR_TYPE_参数类型varchar(255)备注5
REV_乐观锁nvarchar(64)乐观锁 Version
BYTEARRAY_ID_字节表IDnvarchar(400)ACT_GE_BYTEARRAY表的主键
DOUBLE_DOUBLE_nvarchar(255)存储DoubleType类型的数据
LONG_LONG_nvarchar(255)存储LongType类型的数据
TEXT_TEXT_datetime备注6
TEXT2_TEXT2_datetime此处存储的是JPA持久化对象时,才会有值。此值为对象ID

用户组信息表( act_id_group )

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)主键ID
REV_乐观锁int乐观锁Version
NAME_名称nvarchar(255)组名称
TYPE_类型nvarchar(255)类型

用户扩展信息表( act_id_info )

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)主键ID
REV_乐观锁int乐观锁Version
USER_ID_用户IDnvarchar(64)
TYPE_类型nvarchar(64)
KEY_nvarchar(255)
VALUE_nvarchar(255)
PASSWORD_Image
PARENT_ID_nvarchar(255)

用户与分组对应信息表( act_id_membership )

用来保存用户的分组信息。

字段名称字段描述数据类型主键为空取值说明
USER_ID用户IDnvarchar(64)
GROUP_ID用户组IDnvarchar(64)

用户信息表( act_id_user )

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)主键ID
REV_乐观锁int乐观锁Version
FIRST_nvarchar(255)
LAST_nvarchar(255)
EMAIL_EMAIL_nvarchar(255)
PWD_密码nvarchar(255)
PICTURE_ID_图片IDnvarchar(64)

部署信息表( act_re_deployment )

部署流程定义时需要被持久化保存下来的信息。

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)主键ID
NAME_部署名称nvarchar(255)部署文件名
CATEGORY_分类nvarchar(255)类别
DEPLOY_TIME_部署时间datetime部署时间

流程设计模型部署表( act_re_model )

流程设计器设计流程后,保存数据到该表。

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)ID_
REV_乐观锁int乐观锁
NAME_名称nvarchar(255)名称
KEY_KEY_nvarchar(255)分类,例如:http://www.mossle.com/docs/activiti/
CATEGORY_分类nvarchar(255)分类
CREATE_TIME_创建时间datetime创建时间
LAST_UPDATE_TIME_最新修改时间datetime最新修改时间
VERSION_版本int版本
META_INFO_META_INFO_nvarchar(255)以json格式保存流程定义的信息
DEPLOYMENT_ID_部署IDnvarchar(255)部署ID
EDITOR_SOURCE_VALUE_ID_datetime
EDITOR_SOURCE_EXTRA_VALUE_ID_datetime

流程定义数据表( act_re_procdef )

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

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)ID_
REV_乐观锁int乐观锁
CATEGORY_分类nvarchar(255)流程定义的Namespace就是类别
NAME_名称nvarchar(255)名称
KEY_定义的KEYnvarchar(255)流程定义ID
VERSION_版本int版本
DEPLOYMENT_ID_部署表IDnvarchar(64)部署表ID
RESOURCE_NAME_bpmn文件名称nvarchar(4000)流程bpmn文件名称
DGRM_RESOURCE_NAME_png图片名称nvarchar(4000)流程图片名称
DESCRIPTION_描述nvarchar(4000)描述
HAS_START_FORM_KEY_是否存在开始节点formKeytinyintstart节点是否存在formKey 0否 1是
SUSPENSION_STATE_是否挂起tinyint1 激活 2挂起

act_ru_event_subscr

字段名称字段描述数据类型主键为空取值说明
ID_事件IDnvarchar(64)事件ID
REV_版本int乐观锁Version
EVENT_TYPE_事件类型nvarchar(255)事件类型
EVENT_NAME_事件名称nvarchar(255)事件名称
EXECUTION_ID_执行实例IDnvarchar(64)执行实例ID
PROC_INST_ID_流程实例IDnvarchar(64)流程实例ID
ACTIVITY_ID_活动实例IDnvarchar(64)活动实例ID
CONFIGURATION_配置nvarchar(255)配置
CREATED_是否创建datetime默认值 当前系统时间戳CURRENT_TIMESTAMP

运行时流程执行实例表( act_ru_execution )

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)ID_
REV_乐观锁int乐观锁
PROC_INST_ID_流程实例IDnvarchar(64)流程实例ID
BUSINESS_KEY_业务主键IDnvarchar(255)业务主键ID
PARENT_ID_父节点实例IDnvarchar(64)父节点实例ID
PROC_DEF_ID_流程定义IDnvarchar(64)流程定义ID
SUPER_EXEC_SUPER_EXEC_nvarchar(64)SUPER_EXEC_
ACT_ID_节点实例IDnvarchar(255)节点实例ID即ACT_HI_ACTINST中ID
IS_ACTIVE_是否存活tinyint是否存活
IS_CONCURRENT_是否并行tinyint是否为并行(true/false)
IS_SCOPE_IS_SCOPE_tinyintIS_SCOPE_
IS_EVENT_SCOPE_IS_EVENT_SCOPE_tinyintIS_EVENT_SCOPE_
SUSPENSION_STATE_是否挂起tinyint挂起状态 1激活 2挂起
CACHED_ENT_STATE_int

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

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)ID_
REV_乐观锁int乐观锁
GROUP_ID_组IDnvarchar(64)组ID
TYPE_类型nvarchar(255)备注7
USER_ID_用户IDnvarchar(64)用户ID
TASK_ID_节点实例IDnvarchar(64)节点实例ID
PROC_INST_ID_流程实例IDnvarchar(64)流程实例ID
PROC_DEF_ID_流程定义IDnvarchar(255)流程定义ID

运行时定时任务数据表( act_ru_job )

字段名称字段描述数据类型主键为空取值说明
ID_标识nvarchar(64)标识
REV_版本int版本
TYPE_类型nvarchar(255)类型
LOCK_EXP_TIME_锁定释放时间datetime锁定释放时间
LOCK_OWNER_挂起者nvarchar(255)挂起者
EXCLUSIVE_bit
EXECUTION_ID_执行实例IDnvarchar(64)执行实例ID
PROCESS_INSTANCE_ID_流程实例IDnvarchar(64)流程实例ID
PROC_DEF_ID_流程定义IDnvarchar(64)流程定义ID
RETRIES_int
EXCEPTION_STACK_ID_异常信息IDnvarchar(64)异常信息ID
EXCEPTION_MSG_异常信息nvarchar(4000)异常信息
DUEDATE_到期时间datetime到期时间
REPEAT_重复nvarchar(255)重复
HANDLER_TYPE_处理类型nvarchar(255)处理类型
HANDLER_CFG_nvarchar(4000)标识

运行时任务节点表( act_ru_task )

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)ID_
REV_乐观锁int乐观锁
EXECUTION_ID_执行实例IDnvarchar(64)执行实例ID
PROC_INST_ID_流程实例IDnvarchar(64)流程实例ID
PROC_DEF_ID_流程定义IDnvarchar(64)流程定义ID
NAME_节点定义名称nvarchar(255)节点定义名称
PARENT_TASK_ID_父节点实例IDnvarchar(64)父节点实例ID
DESCRIPTION_节点定义描述nvarchar(4000)节点定义描述
TASK_DEF_KEY_节点定义的KEYnvarchar(255)任务定义的ID
OWNER_实际签收人nvarchar(255)拥有者(一般情况下为空,只有在委托时才有值)
ASSIGNEE_签收人或委托人nvarchar(255)签收人或委托人
DELEGATION_委托类型nvarchar(64)备注8
PRIORITY_优先级别int优先级别,默认为:50
CREATE_TIME_创建时间datetime创建时间
DUE_DATE_过期时间datetime耗时
SUSPENSION_STATE_是否挂起int1代表激活 2代表挂起

运行时流程变量数据表( act_ru_variable )

字段名称字段描述数据类型主键为空取值说明
ID_ID_nvarchar(64)主键标识
REV_乐观锁int乐观锁
TYPE_类型nvarchar(255)备注9
NAME_名称nvarchar(255)变量名称
EXECUTION_ID_执行实例IDnvarchar(64)执行的ID
PROC_INST_ID_流程实例IDnvarchar(64)流程实例ID
TASK_ID_节点实例IDnvarchar(64)节点实例ID(Local)
BYTEARRAY_ID_字节表IDnvarchar(64)字节表的ID(ACT_GE_BYTEARRAY)
DOUBLE_DOUBLE_float存储变量类型为Double
LONG_LONG_numeric(19)存储变量类型为long
TEXT_TEXT_nvarchar(4000)‘存储变量值类型为String 如此处存储持久化对象时,值jpa对象的class
TEXT2_TEXT2_nvarchar(4000)此处存储的是JPA持久化对象时,才会有值。此值为对象ID

关注我的微信公众号:FramePower
我会不定期发布相关技术积累,欢迎对技术有追求、志同道合的朋友加入,一起学习成长!


微信公众号

如果文章对你有帮助,欢迎点击上方按钮打赏作者