天天看点

activity 工作流 学习

一、 核心七大接口

RepositoryService: 提供一系列管理流程部署和流程定义的API

RunntimeService: 在流程运行时对流程实例进行管理和控制

TaskService: 对流程任务进行管理,例如任务提醒,任务完成和创建任务等

IdentityService: 提供对流程角色数据进行管理的API,这些角色包括用户组、用户以及他们之间的关系

ManagementService:  提供对流程引擎进行管理和维护的服务

HistoryService: 对流程的历史数据进行操作,包括查询,删除这些历史数据

FormService:提供操作流程流转的表单填写服务

二、28张表的数据结构

activity 工作流 学习

act_ge_开头的代表通用表,ge是general的缩写

act_hi_ 开头的代表历史数据表,hi是history的缩写,对应HistoryService接口的API

act_id_ 开头的代表身份认证数据,id是identity的缩写,对应IdentityService接口的API

act_re_ 开头的代表流程存储表,re是repository的缩写,对应RepositoryService接口的API,存储流程部署和流程定义的静态数据

act_ru_开头的代表流程运行数据表,ru是runntime的缩写,对应RunntimeService接口API,存储流程实例和用户任务等动态数据

表结构操作: 

资源库流程规则表 

  • 1) act_re_deployment 部署信息表 
  • 2) act_re_model 流程设计模型部署表 
  • 3) act_re_procdef 流程定义数据表 
运行时数据库表 
  • 1) act_ru_execution 运行时流程执行实例表 
  • 2) act_ru_identitylink 运行时流程人员表,主要存储任务节点与参与者的相关信息 
  • 3) act_ru_task 运行时任务节点表 
  • 4) act_ru_variable 运行时流程变量数据表 
历史数据库表 
  • 1) act_hi_actinst 历史节点表 
  • 2) act_hi_attachment 历史附件表 
  • 3) act_ih_comment 历史意见表 
  • 4) act_hi_identitylink 历史流程人员表 
  • 5) act_hi_detail 历史详情表,提供历史变量的查询 
  • 6) act_hi_procinst 历史流程实例表 
  • 7) act_hi_taskinst 历史任务实例表 
  • 8) act_hi_varinst 历史变量表 
组织机构表 
  • 1) act_id_group 用户组信息表 
  • 2) act_id_info 用户扩展信息表 
  • 3) act_id_membership 用户与用户组对应信息表 
  • 4) act_id_user 用户信息表 

这四张表很常见,基本的组织机构管理,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足 

通用数据表 

  • 1) act_ge_bytearray 二进制数据表 
  • 2) act_ge_property 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录

activiti.cfg.xml(activiti的配置文件) 

Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数。 

定义数据库配置参数: 

  • jdbcUrl: 数据库的JDBC URL。 
  • jdbcDriver: 对应不同数据库类型的驱动。 
  • jdbcUsername: 连接数据库的用户名。 
  • jdbcPassword: 连接数据库的密码。 
基于JDBC参数配置的数据库连接 会使用默认的MyBatis连接池。 下面的参数可以用来配置连接池(来自MyBatis参数): 
  • jdbcMaxActiveConnections: 连接池中处于被使用状态的连接的最大值。默认为10。 
  • jdbcMaxIdleConnections: 连接池中处于空闲状态的连接的最大值。 
  • jdbcMaxCheckoutTime: 连接被取出使用的最长时间,超过时间会被强制回收。 默认为20000(20秒)。 
  • jdbcMaxWaitTime: 这是一个底层配置,让连接池可以在长时间无法获得连接时, 打印一条日志,并重新尝试获取一个连接。(避免因为错误配置导致沉默的操作失败)。 默认为20000(20秒)。
 流程部署相关表 
  • act_re_deployement 部署对象表 
  • act_rep_procdef  流程定义表 
  • act_ge_bytearray 资源文件表 
  • act_ge_prperty  主键生成策略表(对于部署对象表的主键ID)
 流程实例相关表
  •  act_ru_execution 正在执行的执行对象表(包含执行对象ID和流程实例ID,如果有多个线程可能流程实例ID不一样)
  •  act_hi_procinst 流程实例历史表
  •  act_hi_actinst 存放历史所有完成的任务
 Task 任务相关表
  •  act_ru_task 代办任务表 (只对应节点是UserTask的)
  •  act_hi_taskinst 代办任务历史表 (只对应节点是UserTask的) 
  •  act_hi_actinst  所有节点活动历史表 (对应流程的所有节点的活动历史,从开始节点一直到结束节点中间的所有节点的活动都会被记录)
流程变量表
  •  act_ru_variable 正在执行的流程变量表
  •  act_hi_variable 流程变量历史表

三、数据字典

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

ACT_GE_BYTEARRAY(act_ge_bytearray) 通用的流程定义和流程资源

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_     主键 varchar
REV_   版本号 int version       
NAME_ 部署的文件名称 varchar
DEPLOYMENT_ID_

来自于父表ACT_RE_DEPLOYMENT 

的主键

varchar 部署的ID
BYTES_

大文本类型,存储文本字

节流

LONGBLOB 
GENERATED_ 是否是引擎生成 int

0为用户生成

1为Activiti生成

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

ACT_GE_PROPERTY (系统相关属性)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
NAME_     属性名称 varchar

schema.version 

schema.history 

next.dbid

VALUE_ 属性值 varchar

5.* 

create(5.*)

REV_INT 版本号 int

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

ACT_HI_ACTINST (历史节点表)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   主键ID varchar
PROC_DEF_ID_ 流程定义ID varchar
PROC_INST_ID_ 流程实例ID varchar
EXECUTION_ID_ 流程执行ID varchar
ACT_ID_ 活动ID varchar 节点定义ID
TASK_ID_ 任务ID varchar 任务实例ID ,其他节点类型实例ID在这里为空
CALL_PROC_INST_ID_ 请求流程实例ID varchar 调用外部流程的流程实例ID
ACT_NAME_ 活动名称 varchar 节点定义名称
ACT_TYPE_ 活动类型 varchar 如startEvent、userTask
ASSIGNEE_ 代理人员       varchar 节点签收人
START_TIME_ 开始时间     datetime
END_TIME_ 结束时间       datetime
DURATION_ 时长、耗时 int 毫秒值

ACT_HI_ATTACHMENT (附件信息)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   主键ID varchar
REV_ 版本号 int
USER_ID_ 用户ID varchar
NAME_ 附件名称 varchar
DESCRIPTION_ 附件描述 varchar
TYPE_ 附件类型 varchar
TASK_ID_ 任务ID varchar 节点实例ID
PROC_INST_ID_ 流程实例ID varchar
URL_ 附件链接 varchar
CONTENT_ID_ 内容ID       varchar
START_TIME_ 开始时间     datetime ACT_GE_BYTEARRAY的ID

ACT_HI_COMMENT (历史审批意见表)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   主键ID varchar
TYPE_ 意见记录类型,为comment时,为处理意见 varchar  类型:event(事件)、comment(意见)
TIME_ 记录时间 datetime
USER_ID_ 用户ID varchar
PROC_INST_ID_ 流程实例ID varchar
ACTION_ 行为类型。为addcomment时,为处理意见  varchar

值为下列内容中的

一种:

AddUserLink、

DeleteUserLink、

AddGroupLink、

DeleteGroupLink、

AddComment、

AddAttachment、

DeleteAttachment

MESSAGE_ 处理意见  varchar
FULL_MSG_ 全部消息 longblob

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

ACT_HI_DETAIL (历史详细信息)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   主键ID varchar
TYPE_ 数据类型 varchar

 类型: 

FormProperty, //表单

VariableUpdate //参数

PROC_INST_ID_ 流程实例id varchar
EXECUTION_ID_ 执行实例id varchar
TASK_ID_ 任务ID varchar
ACT_INST_ID_ 活动实例ID  varchar ACT_HI_ACTINST表的ID
NAME_ 名称  varchar
VAR_TYPE_ 变量类型 longblob

jpa-entity、boolean、bytes、serializable(可序列化)、自定义type(根据你自身配置)、CustomVariableType、date、double、integer、long、null、

short、string

REV_ 版本号         int
TIME_ 创建时间  datetime
BYTEARRAY_ID_ 字节数组id ACT_GE_BYTEARRAY表的ID
DOUBLE_ 存储变量类型为Double double
LONG_ 存储变量类型为Long long
TEXT_ 存储变量类型为String varchar
TEXT2_ 存储变量类型为String varchar 此处存储的是JPA持久化对象时,才会有值。此值为对象ID

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

ACT_HI_IDENTITYLINK (历史流程人员表)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   主键ID varchar
GROUP_ID_ 用户组ID varchar
TYPE_ 用户组类型 datetime 主要分为以下几种:assignee、candidate、owner、starter 、participant
USER_ID_ 用户ID varchar
TASK_ID_ 任务ID varchar
PROC_INST_ID_ 流程实例ID varchar

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

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   主键ID varchar
PROC_INST_ID_ 流程实例ID varchar
BUSINESS_KEY_ 业务Key datetime
PROC_DEF_ID_ 流程定义Id varchar
START_TIME_ 开始时间 datetime
END_TIME_ 结束时间 datetime
DURATION_ 时长 int
START_USER_ID_ 发起人员ID varchar
START_ACT_ID_ 开始节点 varchar
END_ACT_ID_ 结束节点 varchar
SUPER_PROCESS_INSTANCE_ID_ 超级流程实例Id varchar
DELETE_REASON_ 删除理由 varchar

ACT_HI_TASKINST(历史任务流程实例信息)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   主键ID varchar
PROC_DEF_ID_ 流程定义ID varchar
TASK_DEF_KEY_ 任务定义ID varchar
PROC_INST_ID_ 流程实例ID varchar
EXECUTION_ID_ 执行ID varchar
NAME_ 名称 varchar
PARENT_TASK_ID_ 父任务ID varchar
DESCRIPTION_ 描述 varchar
OWNER_ 实际签收人、任务的拥有者 varchar 签收人(默认为空,只有在委托时才有值)
ASSIGNEE_ 代理人 varchar
START_TIME_ 开始时间 datetime
CLAIM_TIME_ 提醒时间 datetime
END_TIME_ 结束时间 datetime
DURATION_ 耗时         bigint
DELETE_REASON_ 删除理由 varchar
PRIORITY_ 优先级 int
DUE_DATE_ 应完成时间         datetime 过期时间,表明任务应在多长时间内完成
FORM_KEY_ 表单key varchar desinger节点定义的form_key属性

ACT_HI_VARINST(历史变量信息)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   主键ID varchar
PROC_INST_ID_ 流程实例ID varchar
EXECUTION_ID_ 执行ID varchar
TASK_ID_ 任务ID varchar
NAME_ 名称 varchar
VAR_TYPE_ 变量类型 varchar
REV_ 版本 int
BYTEARRAY_ID_ 字节数组ID varchar ACT_GE_BYTEARRAY表的主键
DOUBLE_ 存储变量类型为Double double
LONG_ 存储变量类型为Long long
TEXT_ 存储变量类型为String varchar
TEXT2_ 存储变量类型为String varchar 此处存储的是JPA持久化对象时,才会有值。此值为对象ID

ACT_ID_GROUP(用户组表)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   用户组ID varchar
REV_ 版本 int
NAME_ 用户组描述信息 varchar
TYPE_  用户组类型 varchar

ACT_ID_INFO (用户扩展信息表)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   varchar
REV_ 版本 int
USER_ID_ 用户ID varchar
KEY_  formINPut名称 varchar
VALUE_ varchar
PASSWORD_ 密码 LONGBLOB
PARENT_ID_ 父节点    varchar

ACT_ID_MEMBERSHIP(用户用户组关联表)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   varchar
GROUP_ID_ 用户组ID varchar
USER_ID_ 用户ID varchar

ACT_ID_USER(用户信息表)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   varchar
REV_ 版本号 int
FIRST_ 用户名称 varchar
LAST_ 用户姓氏  varchar
EMAIL_ 邮箱 varchar
PWD_ 密码 varchar
PICTURE_ID_ 头像ID varchar

ACT_RE_DEPLOYMENT(部署信息表)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   部署编号 varchar
NAME_ 部署包的名称 varchar
CATEGORY_ 类型 varchar
TENANT_ID_ 租户 varchar 多租户通常是在软件需要为多个不同组织服务时产生的概念
DEPLOY_TIME_ 部署时间 TIMESTAMP 

ACT_RE_MODEL (流程设计模型表)- 创建流程的设计模型时,保存在该数据表中

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   部署编号 varchar
REV_ 乐观锁 int
NAME_ 模型的名称 varchar
KEY_ 模型的关键词,流程引擎用到 varchar
CATEGORY_ 类型,用户自己对流程模型的分类 varchar
CREATE_TIME_ 创建时间         TIMESTAMP 
LAST_UPDATE_TIME_ 最后修改时间 TIMESTAMP 
VERSION_ 版本,从1开始 int
META_INFO_ 数据源信息,比如:{"name":"FTOA_SWGL","revision":1,"description":"xx财政局OA,收文管理流程"} varchar 以json格式保存流程定义信息 
DEPLOYMENT_ID_ 部署ID varchar
EDITOR_SOURCE_VALUE_ID_ 编辑源值ID varchar
EDITOR_SOURCE_EXTRA_VALUE_ID_ 编辑源额外值ID(外键ACT_GE_BYTEARRAY  varchar
TENANT_ID_ 租户 varchar

ACT_RE_PROCDEF (流程定义:解析表)流程解析表,解析成功了,在该表保存一条记录

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   流程ID,由“流程编号:流程版本号:自增长ID”组成 varchar
REV_ 版本号 int 乐观锁
CATEGORY_ 流程命名空间(该编号就是流程文件targetNamespace的属性值) varchar 流程定义的Namespace就是类别 
NAME_ 流程名称(该编号就是流程文件process元素的name属性值) varchar
KEY_ 流程编号(该编号就是流程文件process元素的id属性值) varchar
VERSION_ 流程版本号(由程序控制,新增即为1,修改后依次1来完成的 int
DEPLOYMENT_ID_ 部署编号 varchar
RESOURCE_NAME_  资源文件名称 varchar
DGRM_RESOURCE_NAME_ 图片资源名称 varchar 以json格式保存流程定义信息 
DESCRIPTION_ 描述 varchar
HAS_START_FORM_KEY_ 是否从key启动 int start节点是否存在formKey  0否 1是
SUSPENSION_STATE_ 是否挂起  int 1 激活 2挂起

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

ACT_RU_EVENT_SUBSCR (运行时事件)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   varchar
REV_ 版本号 int 乐观锁
EVENT_TYPE_ 事件类型 varchar
EVENT_NAME_  事件名称 varchar
EXECUTION_ID_ 流程执行ID varchar
PROC_INST_ID_ 流程实例ID varchar
ACTIVITY_ID_ 活动ID varchar
CONFIGURATION_ 配置信息 varchar
CREATED_ 创建时间 TIMESTAMP CURRENT_TIMESTAMP 

ACT_RU_EXECUTION (运行时流程执行实例)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   varchar
REV_ 版本号 int 乐观锁
PROC_INST_ID_ 流程实例编号 varchar
BUSINESS_KEY_ 业务编号 varchar
PARENT_ID_ 父执行流程 varchar
PROC_DEF_ID_ 流程定义ID varchar
SUPER_EXEC_ varchar
ACT_ID_ 实例ID varchar
IS_ACTIVE_ 激活状态 int 是否激活
IS_CONCURRENT_ 并发状态 int 是否并行 true、false
IS_SCOPE_ int
IS_EVENT_SCOPE_ int
SUSPENSION_STATE_ 暂停状态 int 挂起状态:1激活   2挂起
CACHED_ENT_STATE_  缓存结束状态 int

ACT_RU_IDENTITYLINK(身份联系)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   varchar
REV_ 版本号 int 乐观锁
GROUP_ID_ 用户组ID varchar
TYPE_ 用户组类型 varchar 主要分为以下几种:assignee、candidate、owner、starter、participant。即:受让人,候选人,所有者、起动器、参与者
USER_ID_ 用户ID varchar
TASK_ID_ 任务ID varchar
PROC_INST_ID_ 流程实例ID varchar
PROC_DEF_ID_ 流程定义ID varchar

ACT_RU_JOB(运行中的任务)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   varchar
REV_ 版本号 int 乐观锁
TYPE_ 类型  varchar 主要分为以下几种:assignee、candidate、owner、starter、participant。即:受让人,候选人,所有者、起动器、参与者
LOCK_EXP_TIME_ 锁定释放时间 TIMESTAMP 
LOCK_OWNER_  挂起者 varchar
EXCLUSIVE_ int
EXECUTION_ID_  执行实例ID varchar
PROCESS_INSTANCE_ID_ 流程实例ID varchar
PROC_DEF_ID_ 流程定义id varchar
RETRIES_ varchar
EXCEPTION_STACK_ID_ 异常信息ID varchar
EXCEPTION_MSG_ 异常信息 varchar
DUEDATE_ 到期时间 TIMESTAMP 
REPEAT_ 重复 varchar
HANDLER_TYPE_ 处理类型 varchar
HANDLER_CFG_ 标识 varchar

ACT_RU_TASK(运行时任务数据表)

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   varchar
REV_ 版本号 int 乐观锁
EXECUTION_ID_  执行实例ID varchar
PROCESS_INSTANCE_ID_ 流程实例ID varchar
PROC_DEF_ID_ 流程定义id varchar
NAME_ 任务名称 节点定义名称
PARENT_TASK_ID_  父节点任务ID varchar 父节点实例ID
DESCRIPTION_ 任务描述 varchar
TASK_DEF_KEY_ 任务定义key varchar
OWNER_ 所属人 varchar 拥有者(一般情况下为空,只有在委托时才有值)
ASSIGNEE_  代理人 varchar
PRIORITY_ 优先权 int 优先级别,默认为:50
CREATE_TIME_ 创建时间 TIMESTAMP 
DUE_DATE_  执行时间 DATETIME  耗时
SUSPENSION_STATE_ 暂停状态 int 1代表激活、2代表挂起

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

字段名 字段描述 数据类型 默认取值 取值说明(例子)
ID_   varchar
REV_ 版本号 int 乐观锁
TYPE 编码类型 varchar
NAME_ 变量名称 varchar
EXECUTION_ID_ 执行实例ID varchar
PROC_INST_ID_ 流程实例id varchar
TASK_ID_ 任务ID
BYTEARRAY_ID_ 字节数组ID varchar ACT_GE_BYTEARRAY表的主键
DOUBLE_ 存储变量类型为Double double
LONG_ 存储变量类型为Long long
TEXT_ 存储变量类型为String varchar
TEXT2_ 存储变量类型为String varchar 此处存储的是JPA持久化对象时,才会有值。此值为对象ID

继续阅读