在工作流管理系统中,业务流程的流转,每个节点的办理都是由人或组织共同参与和协作来完成的。工作流管理系统就是业务流程的自动化,通过计算机的相关技术手段将这些流程自动化,并对其进行有效的管理以提高企业运作的效率,降低开发和维护的成本,增加企业的竞争力。 在工作流管理系统中,企业的组织是系统执行活动和完成任务的载体,组织机构反映了企业人员的管理层次,同时也反映了人与工作,责任权限之间的关系。因此组织机构权限在工作流管理系统中具有相当重要的地位,是不可缺少的。
在企业管理系统中,组织机构权限模型大部分都是遵循RBAC标准,对组织机构的划分有机构,部门,职位,职员。对权限的划分通常是和角色关联的,角色,用户,许可权等是权限模型中的基本数据要素。
角色权限管理,是企业的管理系统信息化的一个虚拟的概念,与组织机构不一样,组织机构是企业实际存在的,反映机构的组成,人员的管理层次关系。角色是为了便于企业信息化管理而虚拟出来的概念,角色大都是模块的操作权限,许可权,原子操作等关联。
企业的组织是为了优化管理和开展业务而建立的企业人员的集合,具有一定的内部层次和隶属机构。组织机构建模就是对企业组织结构进行建模,是利用抽象的模型或者元素,构造出的一系列关系,用于表达企业组织机构中的实体间的层次和隶属。 通用组织机构模型,定义了抽实体“机构”,“部门”,“岗位”;其次定义组织模型的维度,如下图,分布式行政、党政、工作组。根据不同的维度确定不同的职位体系。

这样明确了公司、组织、岗位、职员之间的关系。在权限分配时可以根据组织机构上节点的不同设定不同的责任范围。
组织机构通常是多维树状的,权限的划分是和角色关联的。角色是企业信息化系统虚拟出来的概念,具有一定的功能模块访问操作权限,原子操作,许可权等都划分给角色。 在一个组织机构层次中,将角色划分到组织机构树节点上,角色中就具有一组用户了,同一组织机构中的用户就具有相同的操作权限和职责范围。根据组织机构的上下级层次关系,角色也具有了上下级的继承关系。
在工作流管理系统中,每个节点的活动都是由人来参与完成的。在流程定义的时候,按人或角色或组织节点来指定。当业务流程办理时,根据设置的人或一组人来完成活动,实现流转。工作流引擎主要完成流程的流转,组织机构权限管理完成组织机构建模,居于角色的权限系统的管理。在工作流管理系统中,需要集成组织机构权限系统。
在eworkflow工作流管理系统中,内置了一套组织机构权限管理系统,主要完成流程建模时和组织机构的关联。在集成企业的信息系统时,需要集成企业信息系统的组织机构权限系统。因此在eworkflow中对于组织机构权限的集成,有三种方式
1. 直接使用eworkflow内置的组织机构权限系统
2. 集成企业信息系统中的组织机构权限系统
3. 利用eworkflow提供的组织机构权限api接口集成。
第一种:直接使用eworkflow内置的组织机构权限

组织机构建模,组织机构分为 机构,部门,岗位。 人员可以挂到任意的组织下面,机构下面也可以直接挂岗位,挂部门。根据企业的实际情况可以设置任意的级别。
角色是和具体的操作权限,许可权关联;将角色挂接到组织机构的任意节点上,使得组织机构的同一节点上的人具有相同的操作权限和职责范围。
角色和组织机构相关联的,继承组织机构的上下级关联关系。
如将普通职员角色挂接到企业的根节点上,整个企业的所有人就都具有普通职员的操作权限;如需要获取开发部的所有人,是向下取所有子节点的范围。
角色的继承是向上继承;组织的范围是向下获取。
第二种:集成企业信息系统的组织机构权限
配置fcuser.xml文件,将企业的组织机构表,角色表,用户表,映射到eworkflow中。
映射完成后,达到和第一种的效果一样。组织机构,角色,用户,直接使用企业信息化系统中的表和记录。
映射的主体信息为:
组织机构表 (包含机构,部门,岗位,以及上下级关联的字段)
角色表 (角色定义表)
用户表 (职员定义表)
用户组织机构关联表
用户角色关联表
组织机构角色关联表
如果关联关系表没有可以不提供映射。
第三种:利用eworkflow提供的组织机构权限api接口集成
如果企业信息系统的组织机构模型和eworkflow的组织机构模型差别很大,无法做成映射关系的集成。则可以通过实现接口的方式来完成。
在接口实现类中,可以根据功能划分直接实现,也可以调用企业信息系统中的api函数来完成。

JDBCUserProvider类是eworkflow的实现类;APIUserProvider类是按user接口的二次开发实现类,在APIUserProvider类中,用户可以调用自己系统中的实现方法。
1、结构设计
1.1、 逻辑结构设计
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),各种情况都使用的数据。
1.2、 所有表的含义
序号 | 表名 | 说明 |
1 | act_ge_bytearray | 二进制数据表 |
2 | act_ge_property | 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录, |
3 | act_hi_actinst | 历史节点表 |
4 | act_hi_attachment | 历史附件表 |
5 | act_hi_comment | 历史意见表 |
6 | act_hi_identitylink | 历史流程人员表 |
7 | act_hi_detail | 历史详情表,提供历史变量的查询 |
8 | act_hi_procinst | 历史流程实例表 |
9 | act_hi_taskinst | 历史任务实例表 |
10 | act_hi_varinst | 历史变量表 |
11 | act_id_group | 用户组信息表 |
12 | act_id_info | 用户扩展信息表 |
13 | act_id_membership | 用户与用户组对应信息表 |
14 | act_id_user | 用户信息表 |
15 | act_re_deployment | 部署信息表 |
16 | act_re_model | 流程设计模型部署表 |
17 | act_re_procdef | 流程定义数据表 |
18 | act_ru_event_subscr | throwEvent、catchEvent时间监听信息表 |
19 | act_ru_execution | 运行时流程执行实例表 |
20 | act_ru_identitylink | 运行时流程人员表,主要存储任务节点与参与者的相关信息 |
21 | act_ru_job | 运行时定时任务数据表 |
22 | act_ru_task | 运行时任务节点表 |
23 | act_ru_variable | 运行时流程变量数据表 |
2、 表以及索引信息
2.1二进制数据表(act_ge_bytearray)
2.1.1 简要描述
保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。
2.1.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | 主键ID |
REV_ | 乐观锁 | int | | √ | Version(版本) |
NAME_ | 名称 | nvarchar(255) | | √ | 部署的文件名称,如:mail.bpmn、mail.png 、mail.bpmn20.xml |
DEPLOYMENT_ID_ | 部署ID | nvarchar(64) | | √ | 部署表ID |
BYTES_ | 字节 | varbinary(max) | | √ | 部署文件 |
GENERATED_ | 是否是引擎生成 | tinyint | | √ | 0为用户生成 1为Activiti生成 |
2.1.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_FK_BYTEARR_DEPL | DEPLOYMENT_ID_ | | |
2.2属性数据表( act_ge_property )
2.2.1 简要描述
属性数据表。存储整个流程引擎级别的数据。
2.2.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
NAME_ | 名称 | nvarchar(64) | √ | | schema.version schema.history next.dbid |
VALUE_ | 值 | nvarchar(300) | | √ | 5.* create(5.*) |
REV_ | 乐观锁 | int | | √ | version |
2.2.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | NAME_ | Unique | 主键唯一索引 |
2.3历史节点表(act_hi_actinst)
2.3.1 简要描述
历史活动信息。这里记录流程流转过的所有节点,与HI_TASKINST不同的是,taskinst只记录usertask内容
2.3.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | |
PROC_DEF_ID_ | 流程定义ID | nvarchar(64) | | | |
PROC_INST_ID_ | 流程实例ID | nvarchar(64) | | | |
EXECUTION_ID_ | 执行实例ID | nvarchar(64) | | | |
ACT_ID_ | 节点ID | nvarchar(225) | | | 节点定义ID |
TASK_ID_ | 任务实例ID | nvarchar(64) | | √ | 任务实例ID 其他节点类型实例ID在这里为空 |
CALL_PROC_INST_ID_ | 调用外部的流程实例ID | nvarchar(64) | | √ | 调用外部流程的流程实例ID' |
ACT_NAME_ | 节点名称 | nvarchar(225) | | √ | 节点定义名称 |
ACT_TYPE_ | 节点类型 | nvarchar(225) | | | 如startEvent、userTask |
ASSIGNEE_ | 签收人 | nvarchar(64) | | √ | 节点签收人 |
START_TIME_ | 开始时间 | datetime | | | 2013-09-15 11:30:00 |
END_TIME_ | 结束时间 | datetime | | √ | 2013-09-15 11:30:00 |
DURATION_ | 耗时 | numeric(19,0) | | √ | 毫秒值 |
2.3.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_IDX_HI_ACT_INST_START | START_TIME_ | | |
ACT_IDX_HI_ACT_INST_END | END_TIME_ | | |
ACT_IDX_HI_ACT_INST_PROCINST | PROC_INST_ID_ 、 ACT_ID_ | | |
ACT_IDX_HI_ACT_INST_EXEC | EXECUTION_ID_ 、 ACT_ID_ | | |
2.4历史附件表( act_hi_attachment )
2.4.1 简要描述
历史附件表。
2.4.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | 主键ID |
REV_ | 乐观锁 | integer | | √ | Version |
USER_ID_ | 用户ID | nvarchar(255) | | √ | 用户ID |
NAME_ | 名称 | nvarchar(255) | | √ | 附件名称 |
DESCRIPTION_ | 描述 | nvarchar(4000) | | √ | 描述 |
TYPE_ | 类型 | nvarchar(255) | | √ | 附件类型 |
TASK_ID_ | 任务实例ID | nvarchar(64) | | √ | 节点实例ID |
PROC_INST_ID_ | 流程实例ID | nvarchar(64) | | √ | 流程实例ID |
URL_ | URL_ | nvarchar(4000) | | √ | 附件地址 |
CONTENT_ID_ | 字节表的ID | nvarchar(64) | | √ | ACT_GE_BYTEARRAY的ID |
2.4.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
2.5历史意见表( act_hi_comment )
2.5.1 简要描述
历史意见表。
2.5.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | 主键ID |
TYPE_ | 类型 | nvarchar(255) | | √ | 类型:event(事件) comment(意见) |
TIME_ | 时间 | datetime | | | 填写时间' |
USER_ID_ | 用户ID | nvarchar(64) | | √ | 填写人 |
TASK_ID_ | 节点任务ID | nvarchar(64) | | √ | 节点实例ID |
PROC_INST_ID_ | 流程实例ID | nvarchar(255) | | √ | 流程实例ID |
ACTION_ | 行为类型 | nvarchar(64) | | √ | 见备注1 |
MESSAGE_ | 基本内容 | nvarchar(4000) | | √ | 用于存放流程产生的信息,比如审批意见 |
FULL_MSG_ | 全部内容 | varbinary(max) | | √ | 附件地址 |
2.5.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
2.6历史详情表( act_hi_detail )
2.6.1 简要描述
历史详情表:流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。
2.6.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | 主键 |
TYPE_ | 类型 | nvarchar(255) | | | 见备注2 |
PROC_INST_ID_ | 流程实例ID | nvarchar(64) | | √ | 流程实例ID |
EXECUTION_ID_ | 执行实例ID | nvarchar(64) | | √ | 执行实例ID |
TASK_ID_ | 任务实例ID | nvarchar(64) | | √ | 任务实例ID |
ACT_INST_ID_ | 节点实例ID | nvarchar(64) | | √ | ACT_HI_ACTINST表的ID |
NAME_ | 名称 | nvarchar(255) | | | 名称 |
VAR_TYPE_ | 参数类型 | nvarchar(255) | | √ | 见备注3 |
REV_ | 乐观锁 | int | | √ | Version |
TIME_ | 时间戳 | datetime | | | 创建时间 |
BYTEARRAY_ID_ | 字节表ID | nvarchar | | √ | ACT_GE_BYTEARRAY表的ID |
DOUBLE_ | DOUBLE_ | double precision | | √ | 存储变量类型为Double |
LONG_ | LONG_ | numeric | | √ | 存储变量类型为long |
TEXT_ | TEXT_ | nvarchar | | √ | 存储变量值类型为String |
TEXT2_ | TEXT2_ | nvarchar | | √ | 此处存储的是JPA持久化对象时,才会有值。此值为对象ID |
2.6.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_IDX_HI_ACT_INST_START | START_TIME_ | | |
ACT_IDX_HI_ACT_INST_END | END_TIME_ | | |
ACT_IDX_HI_ACT_INST_PROCINST | PROC_INST_ID_ 、 ACT_ID_ | | |
ACT_IDX_HI_ACT_INST_EXEC | EXECUTION_ID_ 、 ACT_ID_ | | |
2.7历史流程人员表( act_ru_identitylink )
2.7.1 简要描述
任务参与者数据表。主要存储历史节点参与者的信息。
2.7.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | ID_ |
GROUP_ID_ | 组ID | nvarchar(255) | | √ | 组ID |
TYPE_ | 类型 | nvarchar(255) | | √ | 备注4 |
USER_ID_ | 用户ID | nvarchar(255) | | √ | 用户ID |
TASK_ID_ | 节点实例ID | nvarchar(64) | | √ | 节点实例ID |
PROC_INST_ID_ | 流程实例ID | nvarchar(64) | | √ | 流程实例ID |
2.7.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_IDX_HI_IDENT_LNK_USER | USER_ID_ | Unique | |
ACT_IDX_HI_IDENT_LNK_TASK | TASK_ID_ | | |
ACT_IDX_HI_IDENT_LNK_PROCINST | PROC_INST_ID_ | | |
2.8历史流程实例表(act_hi_procinst)
2.8.1 简要描述
历史流程实例表。
2.8.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | 主键ID |
PROC_INST_ID_ | 流程实例ID | nvarchar(64) | | | 流程实例ID |
BUSINESS_KEY_ | 业务主键 | nvarchar(255) | | √ | 业务主键,业务表单的ID |
PROC_DEF_ID_ | 流程定义ID | nvarchar(64) | | | 流程定义ID |
START_TIME_ | 开始时间 | datetime | | | 开始时间 |
END_TIME_ | 结束时间 | datetime | | √ | 结束时间 |
DURATION_ | 耗时 | Numeric(19) | | √ | 耗时 |
START_USER_ID_ | 起草人 | nvarchar(255) | | √ | 起草人 |
START_ACT_ID_ | 开始节点ID | nvarchar(255) | | √ | 起草环节ID |
END_ACT_ID_ | 结束节点ID | nvarchar(255) | | √ | 结束环节ID |
SUPER_PROCESS _INSTANCE_ID_ | 父流程实例ID | nvarchar(64) | | √ | 父流程实例ID |
DELETE_REASON_ | 删除原因 | nvarchar(4000) | | √ | 删除原因 |
2.8.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
PROC_INST_ID_ | PROC_INST_ID_ | Unique | 外键 |
ACT_UNIQ_HI_BUS_KEY | PROC_DEF_ID_,BUSINESS_KEY_ | Unique | |
ACT_IDX_HI_PRO_INST_END | END_TIME_ | | |
ACT_IDX_HI_PRO_I_BUSKEY | BUSINESS_KEY_ | | |
2.9历史任务实例表( act_hi_taskinst )
2.9.1 简要描述
历史任务实例表。
2.9.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | 主键ID |
PROC_DEF_ID_ | 流程定义ID | nvarchar(64) | | √ | 流程定义ID |
TASK_DEF_KEY_ | 节点定义ID | nvarchar(255) | | √ | 节点定义ID |
PROC_INST_ID_ | 流程实例ID | nvarchar(64) | | √ | 流程实例ID |
EXECUTION_ID_ | 执行实例ID | nvarchar(64) | | √ | 执行实例ID |
NAME_ | 名称 | varchar(255) | | √ | 名称 |
PARENT_TASK_ID_ | 父节点实例ID | nvarchar(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_ | 节点定义的 formkey | nvarchar(255) | | √ | desinger节点定义的 form_key属性 |
2.9.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
2.10 历史变量表( act_hi_varinst )
2.10.1 简要描述
历史变量表。
2.10.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | ID_ |
PROC_INST_ID_ | 流程实例ID | nvarchar(64) | | √ | 流程实例ID |
EXECUTION_ID_ | 执行实例ID | nvarchar(255) | | √ | 执行实例ID |
TASK_ID_ | 任务实例ID | nvarchar(64) | | √ | 任务实例ID |
NAME_ | 名称 | nvarchar(64) | | | 参数名称(英文) |
VAR_TYPE_ | 参数类型 | varchar(255) | | √ | 备注5 |
REV_ | 乐观锁 | nvarchar(64) | | √ | 乐观锁 Version |
BYTEARRAY_ID_ | 字节表ID | nvarchar(400) | | √ | ACT_GE_BYTEARRAY表的主键 |
DOUBLE_ | DOUBLE_ | nvarchar(255) | | √ | 存储DoubleType类型的数据 |
LONG_ | LONG_ | nvarchar(255) | | √ | 存储LongType类型的数据 |
TEXT_ | TEXT_ | datetime | | √ | 备注6 |
TEXT2_ | TEXT2_ | datetime | | √ | 此处存储的是JPA持久化对象时,才会有值。此值为对象ID |
2.10.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_IDX_HI_PROCVAR_PROC_INST | PROC_INST_ID_ | | |
ACT_IDX_HI_PROCVAR_NAME_TYPE | NAME_, VAR_TYPE_ | | |
2.11 用户组信息表( act_id_group )
2.11.1 简要描述
用来存储用户组信息。
2.11.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | 主键ID |
REV_ | 乐观锁 | int | | √ | 乐观锁Version |
NAME_ | 名称 | nvarchar(255) | | √ | 组名称 |
TYPE_ | 类型 | nvarchar(255) | | √ | 类型 |
2.11.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
2.12 用户扩展信息表( act_id_info )
2.12.1 简要描述
用户扩展信息表。目前该表未用到~~~~~·
2.12.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | 主键ID |
REV_ | 乐观锁 | int | | √ | 乐观锁Version |
USER_ID_ | 用户ID | nvarchar(64) | | √ | |
TYPE_ | 类型 | nvarchar(64) | | √ | |
KEY_ | | nvarchar(255) | | √ | |
VALUE_ | | nvarchar(255) | | √ | |
PASSWORD_ | | Image | | √ | |
PARENT_ID_ | | nvarchar(255) | | √ | |
2.12.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
2.13 用户与分组对应信息表( act_id_membership )
2.13.1 简要描述
用来保存用户的分组信息。
2.13.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
USER_ID | 用户ID | nvarchar(64) | √ | | |
GROUP_ID | 用户组ID | nvarchar(64) | √ | | |
2.13.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | USER_ID_, GROUP_ID_ | Unique | 主键唯一索引 |
ACT_FK_MEMB_GROUP | GROUP_ID_ | | |
2.14 用户信息表( act_id_user )
2.14.1 简要描述
工作流用户信息
2.14.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | 主键ID |
REV_ | 乐观锁 | int | | √ | 乐观锁Version |
FIRST_ | 姓 | nvarchar(255) | | √ | |
LAST_ | 名 | nvarchar(255) | | √ | |
EMAIL_ | EMAIL_ | nvarchar(255) | | √ | |
PWD_ | 密码 | nvarchar(255) | | √ | |
PICTURE_ID_ | 图片ID | nvarchar(64) | | √ | |
2.14.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
2.15 部署信息表( act_re_deployment )
2.15.1 简要描述
部署流程定义时需要被持久化保存下来的信息。
2.15.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | 主键ID |
NAME_ | 部署名称 | nvarchar(255) | | √ | 部署文件名 |
CATEGORY_ | 分类 | nvarchar(255) | | √ | 类别 |
DEPLOY_TIME_ | 部署时间 | datetime | | √ | 部署时间 |
2.15.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
2.16 流程设计模型部署表( act_re_model )
2.16.1 简要描述
流程设计器设计流程后,保存数据到该表。
2.16.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
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_ | 部署ID | nvarchar(255) | | √ | 部署ID |
EDITOR_SOURCE_VALUE_ID_ | | datetime | | √ | |
EDITOR_SOURCE_EXTRA_VALUE_ID_ | | datetime | | √ | |
2.16.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_FK_MODEL_SOURCE | EDITOR_SOURCE_VALUE_ID_ | | |
ACT_FK_MODEL_SOURCE_EXTRA | EDITOR_SOURCE_EXTRA_VALUE_ID_ | | |
ACT_FK_MODEL_DEPLOYMENT | DEPLOYMENT_ID_ | | |
2.17 流程定义数据表( act_re_procdef )
2.17.1 简要描述
业务流程定义数据表。此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_REPROCDEF表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和PNG图片文件。和ACT_GE_BYTEARRAY的关联是通过程序用ACT_GE_BYTEARRAY.NAME与ACT_RE_PROCDEF.NAME_完成的,在数据库表结构中没有体现。
2.17.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | ID_ |
REV_ | 乐观锁 | int | | √ | 乐观锁 |
CATEGORY_ | 分类 | nvarchar(255) | | √ | 流程定义的Namespace就是类别 |
NAME_ | 名称 | nvarchar(255) | | √ | 名称 |
KEY_ | 定义的KEY | nvarchar(255) | | | 流程定义ID |
VERSION_ | 版本 | int | | | 版本 |
DEPLOYMENT_ID_ | 部署表ID | nvarchar(64) | | √ | 部署表ID |
RESOURCE_NAME_ | bpmn文件名称 | nvarchar(4000) | | √ | 流程bpmn文件名称 |
DGRM_RESOURCE_NAME_ | png图片名称 | nvarchar(4000) | | √ | 流程图片名称 |
DESCRIPTION_ | 描述 | nvarchar(4000) | | √ | 描述 |
HAS_START_FORM_KEY_ | 是否存在开始节点formKey | tinyint | | √ | start节点是否存在formKey 0否 1是 |
SUSPENSION_STATE_ | 是否挂起 | tinyint | | √ | 1 激活 2挂起 |
2.17.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_UNIQ_PROCDEF | KEY_, VERSION_ | Unique | |
2.18 ( act_ru_event_subscr )
2.18.1 简要描述
没有用到该表~~~ 网上找到的资料~~~不足之处请说明补充 谢谢~~
2.18.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | 事件ID | nvarchar(64) | √ | | 事件ID |
REV_ | 版本 | int | | √ | 乐观锁Version |
EVENT_TYPE_ | 事件类型 | nvarchar(255) | | | 事件类型 |
EVENT_NAME_ | 事件名称 | nvarchar(255) | | √ | 事件名称 |
EXECUTION_ID_ | 执行实例ID | nvarchar(64) | | √ | 执行实例ID |
PROC_INST_ID_ | 流程实例ID | nvarchar(64) | | √ | 流程实例ID |
ACTIVITY_ID_ | 活动实例ID | nvarchar(64) | | √ | 活动实例ID |
CONFIGURATION_ | 配置 | nvarchar(255) | | √ | 配置 |
CREATED_ | 是否创建 | datetime | | | 默认值 当前系统时间戳 CURRENT_TIMESTAMP |
2.18.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_IDX_EVENT_SUBSCR_CONFIG_ | CONFIGURATION_ | | |
ACT_FK_EVENT_EXEC | EXECUTION_ID_ | | |
2.19 运行时流程执行实例表( act_ru_execution )
2.19.1 简要描述
流程执行记录表。
2.19.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | ID_ |
REV_ | 乐观锁 | int | | √ | 乐观锁 |
PROC_INST_ID_ | 流程实例ID | nvarchar(64) | | | 流程实例ID |
BUSINESS_KEY_ | 业务主键ID | nvarchar(255) | | √ | 业务主键ID |
PARENT_ID_ | 父节点实例ID | nvarchar(64) | | √ | 父节点实例ID |
PROC_DEF_ID_ | 流程定义ID | nvarchar(64) | | √ | 流程定义ID |
SUPER_EXEC_ | SUPER_EXEC_ | nvarchar(64) | | √ | SUPER_EXEC_ |
ACT_ID_ | 节点实例ID | nvarchar(255) | | √ | 节点实例ID即 ACT_HI_ACTINST中ID |
IS_ACTIVE_ | 是否存活 | tinyint | | √ | 是否存活 |
IS_CONCURRENT_ | 是否并行 | tinyint | | √ | 是否为并行(true/false) |
IS_SCOPE_ | IS_SCOPE_ | tinyint | | √ | IS_SCOPE_ |
IS_EVENT_SCOPE_ | IS_EVENT_SCOPE_ | tinyint | | √ | IS_EVENT_SCOPE_ |
SUSPENSION_STATE_ | 是否挂起 | tinyint | | √ | 挂起状态 1激活 2挂起 |
CACHED_ENT_STATE_ | | int | | √ | |
2.19.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_UNIQ_RU_BUS_KEY | PROC_DEF_ID_, BUSINESS_KEY_ | Unique | |
ACT_IDX_EXEC_BUSKEY | BUSINESS_KEY_ | | |
ACT_FK_EXE_PROCINST | PROC_INST_ID_ | | |
ACT_FK_EXE_PARENT | PARENT_ID_ | | |
ACT_FK_EXE_SUPER | SUPER_EXEC_ | | |
2.20 运行时流程人员表( act_ru_identitylink )
2.20.1 简要描述
任务参与者数据表。主要存储当前节点参与者的信息。
2.20.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | ID_ |
REV_ | 乐观锁 | int | | √ | 乐观锁 |
GROUP_ID_ | 组ID | nvarchar(64) | | √ | 组ID |
TYPE_ | 类型 | nvarchar(255) | | √ | 备注7 |
USER_ID_ | 用户ID | nvarchar(64) | | √ | 用户ID |
TASK_ID_ | 节点实例ID | nvarchar(64) | | √ | 节点实例ID |
PROC_INST_ID_ | 流程实例ID | nvarchar(64) | | √ | 流程实例ID |
PROC_DEF_ID_ | 流程定义ID | nvarchar(255) | | √ | 流程定义ID |
2.20.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_IDX_IDENT_LNK_USER | USER_ID_ | Unique | |
ACT_IDX_IDENT_LNK_GROUP | GROUP_ID_ | | |
ACT_IDX_ATHRZ_PROCEDEF | PROC_DEF_ID_ | | |
ACT_FK_TSKASS_TASK | TASK_ID_ | | |
ACT_FK_IDL_PROCINST | PROC_INST_ID_ | | |
2.21 运行时定时任务数据表( act_ru_job )
2.21.1 简要描述
运行时定时任务数据表。用到网上找的资料 字段描述..
2.21.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | 标识 | nvarchar(64) | √ | | 标识 |
REV_ | 版本 | int | | √ | 版本 |
TYPE_ | 类型 | nvarchar(255) | | | 类型 |
LOCK_EXP_TIME_ | 锁定释放时间 | datetime | | √ | 锁定释放时间 |
LOCK_OWNER_ | 挂起者 | nvarchar(255) | | √ | 挂起者 |
EXCLUSIVE_ | | bit | | √ | |
EXECUTION_ID_ | 执行实例ID | nvarchar(64) | | √ | 执行实例ID |
PROCESS_INSTANCE_ID_ | 流程实例ID | nvarchar(64) | | √ | 流程实例ID |
PROC_DEF_ID_ | 流程定义ID | nvarchar(64) | | √ | 流程定义ID |
RETRIES_ | | int | | √ | |
EXCEPTION_STACK_ID_ | 异常信息ID | nvarchar(64) | | √ | 异常信息ID |
EXCEPTION_MSG_ | 异常信息 | nvarchar(4000) | | √ | 异常信息 |
DUEDATE_ | 到期时间 | datetime | | √ | 到期时间 |
REPEAT_ | 重复 | nvarchar(255) | | √ | 重复 |
HANDLER_TYPE_ | 处理类型 | nvarchar(255) | | √ | 处理类型 |
HANDLER_CFG_ | | nvarchar(4000) | | √ | 标识 |
2.21.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_FK_JOB_EXCEPTION | EXCEPTION_STACK_ID_ | | |
2.22 运行时任务节点表( act_ru_task )
2.22.1 简要描述
行时任务数据表。
2.22.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | ID_ |
REV_ | 乐观锁 | int | | √ | 乐观锁 |
EXECUTION_ID_ | 执行实例ID | nvarchar(64) | | √ | 执行实例ID |
PROC_INST_ID_ | 流程实例ID | nvarchar(64) | | √ | 流程实例ID |
PROC_DEF_ID_ | 流程定义ID | nvarchar(64) | | √ | 流程定义ID |
NAME_ | 节点定义名称 | nvarchar(255) | | √ | 节点定义名称 |
PARENT_TASK_ID_ | 父节点实例ID | nvarchar(64) | | √ | 父节点实例ID |
DESCRIPTION_ | 节点定义描述 | nvarchar(4000) | | √ | 节点定义描述 |
TASK_DEF_KEY_ | 节点定义的KEY | nvarchar(255) | | √ | 任务定义的ID |
OWNER_ | 实际签收人 | nvarchar(255) | | √ | 拥有者(一般情况下为空,只有在委托时才有值) |
ASSIGNEE_ | 签收人或委托人 | nvarchar(255) | | √ | 签收人或委托人 |
DELEGATION_ | 委托类型 | nvarchar(64) | | √ | 备注8 |
PRIORITY_ | 优先级别 | int | | √ | 优先级别,默认为:50 |
CREATE_TIME_ | 创建时间 | datetime | | √ | 创建时间 |
DUE_DATE_ | 过期时间 | datetime | | √ | 耗时 |
SUSPENSION_STATE_ | 是否挂起 | int | | √ | 1代表激活 2代表挂起 |
2.22.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_IDX_TASK_CREATE | CREATE_TIME_ | | |
ACT_FK_TASK_EXE | EXECUTION_ID_ | | |
ACT_FK_TASK_PROCINST | PROC_INST_ID_ | | |
ACT_FK_TASK_PROCDEF | PROC_DEF_ID_ | | |
2.23 运行时流程变量数据表( act_ru_variable )
2.23.1 简要描述
运行时流程变量数据表。
2.23.2 表结构说明
字段名称 | 字段描述 | 数据类型 | 主键 | 为空 | 取值说明 |
ID_ | ID_ | nvarchar(64) | √ | | 主键标识 |
REV_ | 乐观锁 | int | | √ | 乐观锁 |
TYPE_ | 类型 | nvarchar(255) | | | 备注9 |
NAME_ | 名称 | nvarchar(255) | | | 变量名称 |
EXECUTION_ID_ | 执行实例ID | nvarchar(64) | | √ | 执行的ID |
PROC_INST_ID_ | 流程实例ID | nvarchar(64) | | √ | 流程实例ID |
TASK_ID_ | 节点实例ID | nvarchar(64) | | √ | 节点实例ID(Local) |
BYTEARRAY_ID_ | 字节表ID | nvarchar(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 |
2.23.3 索引说明
索引名称 | 组成字段名称 | 索引类型 | 索引说明 |
PRIMARY | ID_ | Unique | 主键唯一索引 |
ACT_IDX_VARIABLE_TASK_ID | TASK_ID_ | | |
ACT_FK_VAR_EXE | EXECUTION_ID_ | | |
ACT_FK_VAR_PROCINST | PROC_INST_ID_ | | |
ACT_FK_VAR_BYTEARRAY | BYTEARRAY_ID_ | | |
备注:
备注1:行为类型。值为下列内容中的一种:
AddUserLink、DeleteUserLink、AddGroupLink、DeleteGroupLink、AddComment、AddAttachment、DeleteAttachment
备注2:类型:
FormProperty, //表单
VariableUpdate //参数
备注3、5、9:参数类型:
jpa-entity、boolean、bytes、serializable(可序列化)、自定义type(根据你自身配置)、
CustomVariableType、date、double、integer、long、null、short、string
备注4、7:类型,主要分为以下几种:
assignee 、 candidate 、 owner 、starter 、participant
备注6:
存储变量值类型为String,如此处存储持久化对象时,值jpa对象的class
备注8:委托类型,DelegationState分为两种:PENDING,RESOLVED。如无委托则为空
结论及改造建议
-
- 流程文件部署主要涉及到3个表,分别是:ACT_GE_BYTEARRAY、ACT_RE_DEPLOYMENT、ACT_RE_PROCDEF。主要完成“部署包”-->“流程定义文件”-->“所有包内文件”的解析部署关系。从表结构中可以看出,流程定义的元素需要每次从数据库加载并解析,因为流程定义的元素没有转化成数据库表来完成,当然流程元素解析后是放在缓存中的,具体的还需要后面详细研究。
- 流程定义中的java类文件不保存在数据库里 。
- 组织机构的管理相对较弱,如果要纳入单点登录体系内还需要改造完成,具体改造方法有待研究。
- 运行时对象的执行与数据库记录之间的关系需要继续研究
- 历史数据的保存及作用需要继续研究