前言
一个软件系统中具有工作流的功能,我们把它称为工作流系统,一个系统中工作流的功能是什么?就是对系统的业务流程进行自动化管理,所以工作流是建立在业务流程的基础上,所以一个软件的系统核心根本上还是系统的业务流程,工作流只是协助进行业务流程管理。即使没有工作流业务系统也可以开发运行,只不过有了工作流可以更好的管理业务流程,提高系统的可扩展性。
一、工作流是什么?
工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。
二、整合步骤
1.Activiti7开发环境
Jdk1.8或以上版本
Mysql 5及以上的版本
Tomcat8.5
IDEA
Activiti7默认支持Spring5
2.Maven依赖
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.M6</version>
</dependency>
3.流程设计器安装
由于actiBPM插件在IDEA 2021版本已无法使用,因此安装Activiti BPMN visualizer代替
4.Activiti支持数据库
这里选中MySQL数据库,注意数据库版本不能低于图示版本
5.Activiti数据表介绍
Activiti 的表都以 ACT_ 开头。第二部分是表示表的用途的两个字母标识。 用途也和服务的 API 对应。 ACT_RE :'RE'表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。 ACT_RU:'RU'表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti 只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。 ACT_HI:'HI'表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。 ACT_GE : GE 表示 general。 通用数据, 用于不同场景下。
6.绘制BPMN流程图并生成png图片
将绘制的.bpmn20.xml和生成的.png图片放到resource下的processes文件下,当项目启动时Activiti7会默认部署该文件目录下的流程。
7.application.yml文件配置
spring:
# activiti 配置
activiti:
#1.flase:默认值。activiti在启动时,对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常
#2.true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建
#3.create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)
#4.drop-create: 在activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)
database-schema-update: true
#检测历史表是否存在 activiti7默认没有开启数据库历史记录 启动数据库历史记录
db-history-used: true
#记录历史等级 可配置的历史级别有none, activity, audit, full
#none:不保存任何的历史数据,因此,在流程执行过程中,这是最高效的。
#activity:级别高于none,保存流程实例与流程行为,其他数据不保存。
#audit:除activity级别会保存的数据外,还会保存全部的流程任务及其属性。audit为history的默认值。
#full:保存历史数据的最高级别,除了会保存audit级别的数据外,还会保存其他全部流程相关的细节数据,包括一些流程参数等。
history-level: full
#校验流程文件,默认校验resources下的processes文件夹里的流程文件 ,自动部署的话一定要开启
check-process-definitions: true
8.SpringSecurity配置
Acitiviti和SpringSecurity是强耦合,要进行SpringSecurity相关配置。
9.Activiti使用
这里参考博文,写得非常详细。