Activiti 表结构详解
Activiti是一个轻量级的开源BPM平台,其采用了BPMN 2.0标准,提供了完整的BPMN流程设计、部署、运行和管理功能。在Activiti中,所有的流程定义都存储在数据库中。本文将从多个方面对Activiti表结构进行详细的阐述。
一、 ACT_RE_EUROPA: EUROPA模型表
其中,EUROPA表示Easy-to-Use Rapid Object Process Application(易于使用的快速对象处理应用程序),是一个流程图形化模型工具,其表结构如下:
CREATE TABLE act_re_europa (
ID_ VARCHAR2(64) NOT NULL,
REV_ NUMBER(19) DEFAULT NULL,
RETIRED_ NUMBER(5) DEFAULT NULL,
NAME_ VARCHAR2(255) DEFAULT NULL,
JSON_ CLOB DEFAULT NULL,
CONSTRAINT ACT_RE_EUROPA_PKEY PRIMARY KEY (ID_)
);
其中ID_为模型标识,REV_为模型版本号,RETIRED_为是否废弃,NAME_为模型名称,JSON_为模型的JSON格式。
二、ACT_RE_DEPLOYMENT: 部署表
部署是指将一个或多个流程定义文件部署到Activiti Engine中,每个部署对应一个部署ID。该表结构如下:
CREATE TABLE act_re_deployment (
ID_ VARCHAR2(64) NOT NULL,
NAME_ VARCHAR2(255) DEFAULT NULL,
CATEGORY_ VARCHAR2(255) DEFAULT NULL,
KEY_ VARCHAR2(255) DEFAULT NULL,
TENANT_ID_ VARCHAR2(255) DEFAULT '',
DEPLOY_TIME_ TIMESTAMP(6) NOT NULL,
ENGINE_VERSION_ VARCHAR2(255) DEFAULT NULL,
CONSTRAINT ACT_RE_DEPLOYMENT_PKEY PRIMARY KEY (ID_)
);
其中ID_为部署ID,NAME_为部署名称,CATEGORY_为部署分类,KEY_为部署关键字,TENANT_ID_为租户ID,DEPLOY_TIME_为部署时间,ENGINE_VERSION_为引擎版本号。
三、ACT_RE_PROCDEF: 流程定义表
流程定义是指在发布后,可用于创建一个或多个实例的“模板”。该表结构如下:
CREATE TABLE act_re_procdef (
ID_ VARCHAR2(64) NOT NULL,
NAME_ VARCHAR2(255) DEFAULT NULL,
KEY_ VARCHAR2(255) NOT NULL,
VERSION_ NUMBER(19) NOT NULL,
CATEGORY_ VARCHAR2(255) DEFAULT NULL,
DEPLOYMENT_ID_ VARCHAR2(64) NOT NULL,
RESOURCE_NAME_ VARCHAR2(4000) NOT NULL,
DGRM_RESOURCE_NAME_ VARCHAR2(4000) NOT NULL,
DESCRIPTION_ VARCHAR2(4000) DEFAULT NULL,
HAS_START_FORM_KEY_ NUMBER(1) DEFAULT NULL,
HAS_GRAPHICAL_NOTATION_ NUMBER(1) DEFAULT NULL,
SUSPENSION_STATE_ NUMBER(11) DEFAULT NULL,
TENANT_ID_ VARCHAR2(255) DEFAULT '',
HISTORY_TTL_ NUMBER(10) DEFAULT NULL,
CONSTRAINT ACT_RE_PROCDEF_PKEY PRIMARY KEY (ID_)
);
其中ID_为流程定义ID,NAME_为流程定义名称,KEY_为流程定义关键字,VERSION_为流程定义版本号,CATEGORY_为流程定义分类,DEPLOYMENT_ID_为部署ID,RESOURCE_NAME_为资源名称,DGRM_RESOURCE_NAME_为图像资源名称,DESCRIPTION_为流程定义描述,HAS_START_FORM_KEY_为是否具有用户启动表单,HAS_GRAPHICAL_NOTATION_表示是否有图形记录,SUSPENSION_STATE_为挂起状态,TENANT_ID_为租户ID,HISTORY_TTL_为历史纪录的过期时间。
四、ACT_GE_BYTEARRAY: 二进制数据表
该表存储BPM流程定义中的二进制内容。
CREATE TABLE act_ge_bytearray (
ID_ VARCHAR2(64) NOT NULL,
REV_ NUMBER(19) DEFAULT NULL,
NAME_ VARCHAR2(4000) DEFAULT NULL,
DEPLOYMENT_ID_ VARCHAR2(64) DEFAULT NULL,
BYTES_ BLOB DEFAULT NULL,
GENERATED_ NUMBER(1) DEFAULT NULL,
CONSTRAINT ACT_GE_BYTEARRAY_PKEY PRIMARY KEY (ID_)
);
其中ID_为二进制数据ID,REV_为二进制数据版本号,NAME_为二进制数据名称,DEPLOYMENT_ID_为部署ID,BYTES_为二进制数据内容。
五、ACT_HI_PROCINST: 流程实例历史表
该表用于存储已完成的流程实例信息,包括流程实例启动人、开始、结束时间、是否挂起、结束方式、流程变量等信息。
CREATE TABLE act_hi_procinst (
ID_ VARCHAR2(64) NOT NULL,
PROC_INST_ID_ VARCHAR2(64) NOT NULL,
BUSINESS_KEY_ VARCHAR2(255) DEFAULT NULL,
PROC_DEF_ID_ VARCHAR2(64) NOT NULL,
START_TIME_ TIMESTAMP(6) NOT NULL,
END_TIME_ TIMESTAMP(6) DEFAULT NULL,
DURATION_ NUMBER(19) DEFAULT NULL,
START_USER_ID_ VARCHAR2(255) DEFAULT NULL,
START_ACT_ID_ VARCHAR2(255) DEFAULT NULL,
END_ACT_ID_ VARCHAR2(255) DEFAULT NULL,
DELETE_REASON_ VARCHAR2(4000) DEFAULT NULL,
SUPER_PROCESS_INSTANCE_ID_ VARCHAR2(64) DEFAULT NULL,
ROOT_PROC_INST_ID_ VARCHAR2(64) DEFAULT NULL,
TENANT_ID_ VARCHAR2(255) DEFAULT '',
CONSTRAINT ACT_HI_PROCINST_PKEY PRIMARY KEY (ID_)
);
其中ID_为流程历史ID,PROC_INST_ID_为流程实例ID,BUSINESS_KEY_为流程实例业务关键字,PROC_DEF_ID_为流程定义ID,START_TIME_为流程实例启动时间,END_TIME_为流程结束时间,DURATION_为流程持续时间,START_USER_ID_为流程实例启动人ID,START_ACT_ID_为开始节点ID,END_ACT_ID_为结束节点ID,DELETE_REASON_为流程实例删除原因,SUPER_PROCESS_INSTANCE_ID_为父流程实例ID,ROOT_PROC_INST_ID_为根流程实例ID。
六、ACT_HI_TASKINST: 任务历史表
该表用来保存已完成的任务实例信息,包括任务名称、任务处理人、任务结束时间等。
CREATE TABLE act_hi_taskinst (
ID_ VARCHAR2(64) NOT NULL,
PROC_DEF_ID_ VARCHAR2(64) DEFAULT NULL,
TASK_DEF_KEY_ VARCHAR2(255) DEFAULT NULL,
PROC_INST_ID_ VARCHAR2(64) DEFAULT NULL,
EXECUTION_ID_ VARCHAR2(64) DEFAULT NULL,
NAME_ VARCHAR2(255) DEFAULT NULL,
PARENT_TASK_ID_ VARCHAR2(64) DEFAULT NULL,
DESCRIPTION_ VARCHAR2(4000) DEFAULT NULL,
OWNER_ VARCHAR2(255) DEFAULT NULL,
ASSIGNEE_ VARCHAR2(255) DEFAULT NULL,
START_TIME_ TIMESTAMP(6) NOT NULL,
CLAIM_TIME_ TIMESTAMP(6) DEFAULT NULL,
END_TIME_ TIMESTAMP(6) DEFAULT NULL,
DURATION_ NUMBER(19) DEFAULT NULL,
DELETE_REASON_ VARCHAR2(4000) DEFAULT NULL,
TASK_DEF_TYPE_ VARCHAR2(255) DEFAULT NULL,
PRIORITY_ NUMBER(10) DEFAULT NULL,
DUE_DATE_ TIMESTAMP(6) DEFAULT NULL,
FORM_KEY_ VARCHAR2(4000) DEFAULT NULL,
CATEGORY_ VARCHAR2(255) DEFAULT NULL,
TENANT_ID_ VARCHAR2(255) DEFAULT '',
CLAIM_TIME_NULL_REPRESENTS_WAIT_STATE_ NUMBER(5) DEFAULT 0,
CONSTRAINT ACT_HI_TASKINST_PKEY PRIMARY KEY (ID_)
);
其中ID_为任务实例ID,PROC_DEF_ID_表示任务流程定义ID,TASK_DEF_KEY_表示任务定义的key值,PROC_INST_ID_表示流程实例ID, EXECUTION_ID_表示执行ID,NAME_表示任务名称,PARENT_TASK_ID_表示父任务ID,DESCRIPTION_为任务描述,OWNER_为任务拥有者,ASSIGNEE_为任务处理人,START_TIME_为任务开始时间,CLAIM_TIME_为任务签收时间,END_TIME_为任务结束时间,DURATION_为任务持续时间,DELETE_REASON_为任务删除原因,TASK_DEF_TYPE_为任务类型,PRIORITY_为任务优先级,DUE_DATE_为任务到期时间,FORM_KEY_为任务表单key值,CATEGORY_为任务分类,TENANT_ID_为租户ID。