工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。

Activiti 是一个工作流引擎, activiti 可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言(BPMN2.0)进行定义,业务系统按照预先定义的流程进行执行,实现了业务系统的业务流程由 activiti 进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。

目前主流的工作流框架:
Activiti、Flowable、FixFlow、Camunda

毕设打算基于最新版本Activiti7工作流 + Springboot做一个项目,遇到一些常见问题记录一下:

1、Springboot集成Activiti7后数据库只生成了17张表、没有历史表。
解决方案:因为Springboot集成Activiti7默认没有开启历史表的生成。所以我们需要在application.yml中添加下面配置来生成历史表;

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
    username : root
    password : lcry
    driver-class-name: com.mysql.jdbc.Driver
  activiti:
    db-history-used: true #启动数据库历史记录
    history-level: audit #默认级别

2、关于 processEngineConfiguration 中的 databaseSchemaUpdate 参数,此参数涉及 Activiti 数据表的处理策略
具体参数信息如下:

false(默认):检查数据库表的版本和依赖库的版本, 如果版本不匹配就抛出异常。
true:构建流程引擎时,执行检查,如果需要就执行更新。 如果表不存在,就创建。
create-drop:构建流程引擎时创建数据库表, 关闭流程引擎时删除这些表。
drop-create:先删除表再创建表。
create:构建流程引擎时创建数据库表, 关闭流程引擎时不删除这些表。

3、查看 Activiti 系统默认sql语句打印日志信息
解决方案:在logback.xml日志中配置日志级别:
<logger name="org.activiti.engine.impl.persistence.entity" level="trace"/>

参考链接:https://blog.csdn.net/a5537489/article/details/89437217