activiti工作流教程全集(Activiti工作流数据库表结构)
activiti工作流教程全集(Activiti工作流数据库表结构)1.2.4 表名:ACT_HI_ACTINST (历史节点表) 51.2.3 表名:ACT_GE_PROPERTY (系统相关属性) 41.2 数据库表结构 31.2.1 Activiti数据表清单: 31.2.2 表名:ACT_GE_byteARRAY (通用的流程定义和流程资源) 3
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数据库表结构数据库表名说明Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头。
并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配。
- ACT_GE_* : “GE”代表“General”(通用),用在各种情况下;
 - ACT_HI_* : “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例、变量、任务,等等。Activit默认提供了4种历史级别:
 - none: 不保存任何历史记录,可以提高系统性能;
 - activity:保存所有的流程实例、任务、活动信息;
 - audit:也是Activiti的默认级别,保存所有的流程实例、任务、活动、表单属性;
 - full: 最完整的历史记录,除了包含audit级别的信息之外还能保存详细,例如:流程变量。
 
对于几种级别根据对功能的要求选择,如果需要日后跟踪详细可以开启full。
- ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都是身份信息,如用户和组以及两者之间的关系。如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;
 - ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些 ‘静态’信息,如流程定义和流程资源(如图片、规则等);
 - ACT_RU_* : “RU”代表“Runtime”(运行时),这些表中保存一些流程实例、用户任务、变量等的运行时数据。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  | 
     运行时变量表  | 
用来保存部署文件的大文本数据。
保存流程定义图片和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生成  | |||
属性数据表。存储这个流程引擎级别的数据。
| 
     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  | 
     是  | ||||
历史活动信息。这里记录流程流转过的所有节点,与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)  | 
     是  | 
     毫秒值  | ||
| 
     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  | |||
| 
     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  | |||
| 
     MESSAGE_  | 
     处理意见  | 
     VARCHAR(4000)  | 
     4000  | 
     是  | 
     用于存放流程产生的信息,比如审批意见  | |||
| 
     FULL_MSG_  | 
     全部消息  | 
     LONGBLOB  | 
     是  | |||||
历史详情表:流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。
| 
     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
表名: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  | |||
| 
     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  | 
     是  | ||||
| 
     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属性  | |||
| 
     ACT_HI_VARINST(act_hi_varinst)  | ||||||||
| 
     是否主键  | 
     字段名  | 
     字段描述  | 
     数据类型  | 
     长度  | 
     可空  | 
     约束  | 
     缺省值  | 
     备注  | 
| 
     是  | 
     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  | |||
用来存储用户组信息。
| 
     ACT_ID_GROUP(act_id_group)  | ||||||||
| 
     是否主键  | 
     字段名  | 
     字段描述  | 
     数据类型  | 
     长度  | 
     可空  | 
     约束  | 
     缺省值  | 
     备注  | 
| 
     是  | 
     ID_  | 
     用户组ID  | 
     VARCHAR(64)  | 
     64  | ||||
| 
     REV_  | 
     版本号  | 
     INT(11)  | 
     11  | 
     是  | ||||
| 
     NAME_  | 
     用户组描述信息  | 
     VARCHAR(255)  | 
     255  | 
     是  | ||||
| 
     TYPE_  | 
     用户组类型  | 
     VARCHAR(255)  | 
     255  | 
     是  | ||||
用户扩展信息表。目前该表未用到。
| 
     ACT_ID_INFO(act_id_info)  | ||||||||
| 
     是否主键  | 
     字段名  | 
     字段描述  | 
     数据类型  | 
     长度  | 
     可空  | 
     约束  | 
     缺省值  | 
     备注  | 
| 
     是  | 
     ID_  | 
     VARCHAR(64)  | 
     64  | |||||
| 
     REV_  | 
     版本号  | 
     INT(11)  | 
     11  | 
     是  | ||||
| 
     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  | 
     是  | ||||
用来保存用户的分组信息
| 
     ACT_ID_MEMBERSHIP(act_id_membership)  | ||||||||
| 
     是否主键  | 
     字段名  | 
     字段描述  | 
     数据类型  | 
     长度  | 
     可空  | 
     约束  | 
     缺省值  | 
     备注  | 
| 
     是  | 
     USER_ID_  | 
     用户Id  | 
     VARCHAR(64)  | 
     64  | ||||
| 
     是  | 
     GROUP_ID_  | 
     用户组Id  | 
     VARCHAR(64)  | 
     64  | ||||
| 
     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  | 
     是  | ||||
用来存储部署时需要持久化保存下来的信息
| 
     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  | |||||
创建流程的设计模型时,保存在该数据表中。
| 
     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  | 
     是  | 
     版本  | |||
| 
     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  | 
     是  | ||||
流程解析表,解析成功了,在该表保存一条记录。业务流程定义数据表
| 
     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  | ||||
| 
     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_完成的,在数据库表结构中没有体现。
表名: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  | |||||
核心,我的代办任务查询表
| 
     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  | 
     是  | ||||
主要存储当前节点参与者的信息 任务参与者数据表。
| 
     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。即:受让人 候选人 所有者、起动器、参与者  | |||
| 
     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  | 
     是  | ||||
运行时定时任务数据表
| 
     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  | 
     是  | 
     标识  | |||
(执行中实时任务)代办任务查询表
| 
     ACT_RU_TASK(act_ru_task)  | ||||||||
| 
     是否主键  | 
     字段名  | 
     字段描述  | 
     数据类型  | 
     长度  | 
     可空  | 
     约束  | 
     缺省值  | 
     取值说明  | 
| 
     是  | 
     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代表挂起  | |||
| 
     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  | |||
| 
     TEXT_  | 
     TEXT_  | 
     VARCHAR(4000)  | 
     4000  | 
     是  | 
     存储变量值类型为String 如此处存储持久化对象时,值jpa对象的class  | |||
| 
     TEXT2_  | 
     TEXT2_  | 
     VARCHAR(4000)  | 
     4000  | 
     是  | 
     此处存储的是JPA持久化对象时,才会有值。此值为对象ID  | |||
本节主要介绍在工作流中出现的几个对象及其之间的关系,以及在Activiti中各个对象是如何关联的。
在开始之前先看看下图,对整个对象结构有个了解,再结合实例详细介绍理解。

图1. Activiti中几个对象之间的关系
我们模拟一个请假的流程进行分析介绍,该流程主要包含以下几个步骤:
- 员工申请请假
 - 部门领导审批
 - 人事审批
 - 员工销假
 
ProcessInstance对象
员工开始申请请假流程,通过runtimeService.startProcessInstance()方法启动,引擎会创建一个流程实例(ProcessInstance)。
简单来说流程实例就是根据一次(一条)业务数据用流程驱动的入口,两者之间是一对一的关系。流程引擎会创建一条数据到ACT_RU_EXECUTION表,同时也会根据history的级别决定是否查询相同的历史数据到ACT_HI_PROCINST表。
启动完流程之后业务和流程已经建立了关联关系,第一步结束。
启动流程和业务关联区别:
- 对于自定义表单来说启动的时候会传入businessKey作为业务和流程的关联属性
 - 对于动态表单来说不需要使用businessKey关联,因为所有的数据都保存在引擎的表中
 - 对于外部表单来说businessKey是可选的,但是一般不会为空,和自定义表单类似
 
Execution对象
对于初学者来说,最难理解的地方就是ProcessInstance与Execution之间的关系,要分两种情况说明。Execution的含义就是一个流程实例(ProcessInstance)具体要执行的过程对象。
不过在说明之前先声明两者的对象映射关系:
ProcessInstance(1)→ Execution(N),(其中N >= 1)。
- 值相等的情况:
 
除了在流程中启动的子流程之外,流程启动之后在表ACT_RU_EXECUTION中的字段ID_和PROC_INST_ID_字段值是相同的。

图2. ID_和PROC_INST_ID_相等
- 值不相等的情况:
 
不相等的情况目前只会出现在子流程中(包含:嵌套、引入),例如一个购物流程中除了下单、出库节点之外可能还有一个付款子流程,在实际企业应用中付款流程通常是作为公用的,所以使用子流程作为主流程(购物流程)的一部分。
当任务到达子流程时引擎会自动创建一个付款流程,但是这个流程有一个特殊的地方,在数据库可以直观体现,如下图。

图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中。结合请假流程来说就是让用户点击“完成”按钮提交当前任务是的动作,引擎自动根据任务的顺序流或者排他分支判断走向。
HistoryActivity(历史活动)

图5. 表ACT_HI_ACTINST
Activity包含了流程中所有的活动数据,例如开始事件(图5表中的第1条数据)、各种分支(排他分支、并行分支等,图5表中的第2条数据)、以及刚刚提到的Task执行记录(如图5表中的第3、4条数据)。
有些人认为Activity和Task是多对一关系,其实不是,从上图中可以看出来根本没有Task相关的字段。
结合请假流程来说,如Task中提到的当完成流程的时候所有下一步要执行的任务(包括各种分支)都会创建一个Activity记录到数据库中。例如领导审核节点点击“同意”按钮就会流转到人事审批节点,如果“驳回”那就流转到调整请假内容节点,每一次操作的Task背后实际记录更详细的活动(Activity)。




