1 摘要
Activiti 是一套使用人数最多的、技术成熟的、适应多种数据库的工作流框架。所有需要流程管理的地方都要用到工作流。
Activiti 官网: https://www.activiti.org
Activiti 官方入门教程: Activiti User Guide
本文参照官方教程,并结合实际项目编写而成。本教程基于 Activiti 6。
2 Activiti 表结构
Activiti 流程框架有一套自己的数据库表,通过这些表从而实现流程管理。
- *ACT_RE_ **: 'RE’表示
repository
,仓库的意思。 这个前缀的表包含了流程定义和流程静态资源 - *ACT_RU_ **:RU代表
runtime
,运行时的意思。这些是包含流程实例,用户任务,变量,作业等的运行时数据的运行时表。Activiti仅在流程实例执行期间存储运行时数据,并在进程实例结束时删除记录。这使得运行时间表保持不间断的快速。 - *ACT_ID_ **:ID代表
identity
,身份识别。这些表包含身份信息,如用户,组等。 - *ACT_HI_ **:HI代表
history
。这些是包含历史数据的表,例如过去的流程实例,变量,任务等。 - *ACT_GE_ **:
general
数据,用于各种用例。
3 下载官方 war 包并部署
Activiti 官方提供了可以直接部署运行的 war
包,放在 Tomcat
部署目录(webapps
) 下直接运行,运行官方示例中会自动创建 Activiti 数据库表,同时提供了 web 端的流程绘制。
官网下载: http://activiti.org/download.html
下载 Activiti 6 相关的压缩包
压缩包下载之后,选择 activiti-app.war
进行部署,直接将其复制到 Tomcat
部署目录下,然后启动 Tomcat,启动完成之后 war
包会自动解压部署,然后停止 Tomcat,修改 Activiti 数据库配置,由于 Activiti 默认使用的是 H2 数据库,这里需要根据项目,使用对应的数据库,Activiti 支持的数据库包括: bd2
,h2
,hsql
,SQL server
,MySQL
,Oracle
,PostgreSQL
更改数据库连接,数据库配置文件路径:
./activiti-app/WEB-INF/classes/META-INF/activiti-app/activiti-app.properties
修改后的配置为:
#
# DATABASE
#
datasource.driver=com.mysql.cj.jdbc.Driver
datasource.url=jdbc:mysql://127.0.0.1:3306/activiti6ui?useUnicode=true&characterEncoding=utf8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8&useSSL=true&allowMultiQueries=true&autoReconnect=true&nullCatalogMeansCurrent=true
datasource.username=root
datasource.password=sasa
hibernate.dialect=org.hibernate.dialect.MySQLDialect
这里需要注意的是 Activiti 提供的 MySQL 数据库驱动版本为 5.1.30
,如果 MySQL 的版本为 5.7+
,则需要对数据库驱动进行替换
数据库驱动路径:
./activiti-app/WEB-INF/lib
删掉 mysql-connector-java-5.1.30.jar
, 替换为最新的 MySQL 驱动,如: mysql-connector-java-8.0.18.jar
重新启动 Tomcat,Activiti 数据库表即可生成
4 Activiti 流程创建
Tomcat 启动成功之后,访问: http://localhost:8080/activiti-app
登录账号: admin
, 密码: test
登录之后,点击「Kickstart App」开始创建流程