// 创建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 得到流程存储服务组件 流程仓库 主要是静态资源
RepositoryService repositoryService = engine.getRepositoryService();
// 得到运行时服务组件 可以处理所有正在运行的流程实例和任务等等
RuntimeService runtimeService = engine.getRuntimeService();
// 获取流程任务组件 用于管理任务 例如:签收 办理 指派
TaskService taskService = engine.getTaskService();
//获取身份组件 用于权限系统 查询用户 组 等相关的信息
IdentityService identityService = engine.getIdentityService();
//获取表单组件 用于读取流程、任务中的表单数据
FormService formService = engine.getFormService();
//获取历史组件 查询历史数据信息 PS:流程实例 任务 活动 附件等等
HistoryService historyService = engine.getHistoryService();
//获取引擎管理组件 引擎关系服务 和具体业务无关,主要是查询 流程配置及数据库配置 作业==
ManagementService managementService = engine.getManagementService();
//动态流程服务 用于动态修改流程中的一些参数信息等,是引擎中的一个辅助的服务
DynamicBpmnService =processEngine.getDynamicBpmnService();
RepositoryService
Activiti 中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据 ( 例如 BPMN2.0 XML 文件,表单定义文件,流程定义图像文件等 ),这些文件都存储在 Activiti 内建的 Repository 中。Repository Service 提供了对 repository 的存取服务。
RuntimeService
在 Activiti 中,每当一个流程定义被启动一次之后,都会生成一个相应的流程对象实例。Runtime Service 提供了启动流程、查询流程实例、设置获取流程实例变量等功能。此外它还提供了对流程部署,流程定义和流程实例的存取服务。
TaskService
在 Activiti 中业务流程定义中的每一个执行节点被称为一个 Task,对流程中的数据存取,状态变更等操作均需要在 Task 中完成。Task Service 提供了对用户 Task 和 Form 相关的操作。它提供了运行时任务查询、领取、完成、删除以及变量设置等功能。
IdentityService
Activiti 中内置了用户以及组管理的功能,必须使用这些用户和组的信息才能获取到相应的 Task。Identity Service 提供了对 Activiti 系统中的用户和组的管理功能。
ManagementService
Management Service 提供了对 Activiti 流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于 Activiti 系统的日常维护。
HistoryService
History Service 用于获取正在运行或已经完成的流程实例的信息,与 Runtime Service 中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化。
FormService
Activiti 中的流程和状态 Task 均可以关联业务相关的数据。通过使用 Form Service 可以存取启动和完成任务所需的表单数据并且根据需要来渲染表单。
ACT_RE_*: ’RE’代表 repository。带此前缀的表包含的是静态信息,如,流程定义、流程的资源(图片、规则,等)。
ACT_RU_*: ’RU’代表 runtime。就是这个运行时的表存储着流程变量、用户任务、变量、作业,等中的运行时的数据。
Activiti 只存储流程实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就使这些运行时的表保持
的小且快。
ACT_ID_* ’ID’代表 identity。这些表包含着标识的信息,如用户、用户组、等等。
ACT_HI_* ’HI’代表 history。就是这些表包含着历史的相关数据,如结束的流程实例、变量、任务、等等。
ACT_GE_* 普通数据,各种情况都使用的数据。
表名:act_ge_bytearray
功能:保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据。
字段名称 |
字段描述 |
数据类型 |
主键 |
为空 |
取值说明 |
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生成 |
表名: act_ge_property
功能: 属性数据表,存储整个流程引擎级别的数据。
字段名称 |
字段描述 |
数据类型 |
主键 |
为空 |
取值说明 |
NAME_ |
名称 |
nvarchar(64) |
√ |
schema.version schema.history next.dbid |
|
VALUE_ |
值 |
nvarchar(300) |
√ |
5.* create(5.*) |
|
REV_ |
乐观锁 |
int |
√ |
version |
表名:act_hi_actinst
功能: 历史节点表,这里记录流程流转过的所有节点,与HI_TASKINST不同的是,taskinst只记录usertask内容
字段名称 |
字段描述 |
数据类型 |
主键 |
为空 |
取值说明 |
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) |
√ |
毫秒值 |
表名:act_hi_detail
功能:流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。
字段名称 |
字段描述 |
数据类型 |
主键 |
为空 |
取值说明 |
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 |
表名:act_ru_identitylink
功能: 任务参与者数据表。
字段名称 |
字段描述 |
数据类型 |
主键 |
为空 |
取值说明 |
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 |
表名: act_hi_procinst
功能: 历史流程实例表
字段名称 |
字段描述 |
数据类型 |
主键 |
为空 |
取值说明 |
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) |
√ |
删除原因 |
表名: act_hi_taskinst
功能:历史任务实例
字段名称 |
字段描述 |
数据类型 |
主键 |
为空 |
取值说明 |
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属性 |
表名: act_re_deployment
功能:部署信息表
字段名称 |
字段描述 |
数据类型 |
主键 |
为空 |
取值说明 |
ID_ |
ID_ |
nvarchar(64) |
√ |
主键ID |
|
NAME_ |
部署名称 |
nvarchar(255) |
√ |
部署文件名 |
|
DEPLOY_TIME_ |
部署时间 |
datetime |
√ |
部署时间 |
表名:ACT_RE_PROCDEF
功能: 业务流程定义数据表。
此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_RE_PROCDEF表内,每个流程定义的数据,都会对于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_ |
定义的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挂起 |
表名: act_ru_execution
功能: 流程执行记录表
字段名称 |
字段描述 |
数据类型 |
主键 |
为空 |
取值说明 |
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 |
√ |
表名: act_ru_job
功能: 运行时定时任务数据表
字段名称 |
字段描述 |
数据类型 |
主键 |
为空 |
取值说明 |
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) |
√ |
标识 |
表名: act_ru_task
功能:运行时任务表
字段名称 |
字段描述 |
数据类型 |
主键 |
为空 |
取值说明 |
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) |
√ |
备注 |
|
PRIORITY_ |
优先级别 |
int |
√ |
优先级别,默认为:50 |
|
CREATE_TIME_ |
创建时间 |
datetime |
√ |
创建时间 |
|
DUE_DATE_ |
过期时间 |
datetime |
√ |
耗时 |
|
SUSPENSION_STATE_ |
是否挂起 |
int |
√ |
1代表激活 2代表挂起 |
表名:act_ru_variable
功能:运行时流程变量数据表
字段名称 |
字段描述 |
数据类型 |
主键 |
为空 |
取值说明 |
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 |