# SpringBoot 集成 Activiti6 + Activiti Modeler 流程配置可视化
# 7大服务与核心表
# 23张表概览
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 | 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 | 运行时流程变量数据表 |
# 7大核心服务
所谓核心服务,就是通过调用服务中开放的接口,去获取自己所需要的数据,甚至改变流程
| 服务名称 | 描述 |
|---|---|
RepositoryService | Activiti 中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据 ( 例如 BPMN2.0 XML 文件,表单定义文件,流程定义图像文件等 ),这些文件都存储在 Activiti 内建的 Repository 中。Repository Service 提供了对 repository 的存取服务。 |
RuntimeService | 在 Activiti 中,每当一个流程定义被启动一次之后,都会生成一个相应的流程对象实例。Runtime Service 提供了启动流程、查询流程实例、设置获取流程实例变量等功能。此外它还提供了对流程部署,流程定义和流程实例的存取服务。 |
TaskService | 在 Activiti 中业务流程定义中的每一个执行节点被称为一个 Task,对流程中的数据存取,状态变更等操作均需要在 Task 中完成。Task Service 提供了对用户 Task 和 Form 相关的操作。它提供了运行时任务查询、领取、完成、删除以及变量设置等功能。 |
HistoryService | History Service 用于获取正在运行或已经完成的流程实例的信息,与 Runtime Service 中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化。 |
IdentityService | Activiti 中内置了用户以及组管理的功能,必须使用这些用户和组的信息才能获取到相应的 Task。Identity Service 提供了对 Activiti 系统中的用户和组的管理功能。 |
FormService | Activiti 中的流程和状态 Task 均可以关联业务相关的数据。通过使用 Form Service 可以存取启动和完成任务所需的表单数据并且根据需要来渲染表单。 |
ManagementService | Management Service 提供了对 Activiti 流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于 Activiti 系统的日常维护。 |
# 加依赖
<!-- Activity -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>6.0.0</version>
</dependency>
1
2
3
4
5
6
2
3
4
5
6
# 内部日志
Activiti 使用 SLF4J 作为内部日志框架。在这个例子中,我们使用 log4j 作为 SLF4J 的实现
<!-- 日志 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 初始化 ProcessEngine
// 流程引擎配置
ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
.setJdbcUrl(url)
.setJdbcUsername(username)
.setJdbcPassword(password)
.setJdbcDriver(driverClassName)
// 初始化基础表,不需要的可以改为 DB_SCHEMA_UPDATE_FALSE
.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
// 初始化流程引擎对象
ProcessEngine processEngine = cfg.buildProcessEngine();
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10