Activity 学习笔记
activiti是什么?
业务流程管理(BPM)框架,开发人员可直接通过手绘流程图的方式,实现业务流程的控制。
- 官网:http://www.activiti.org/
- 下载:http://www.activiti.org/download.html
- 核心思想:Engine(引擎)-将业务中核心规则抽象出来。以相对稳定的API计算表达式。
- 建模语言BPMN:Business Process Model And Notation(业务流程模型和符号),描述业务流程的一种建模标准。使用各种符号描述流程中的各种事件,通过符号间的连线描述一个完整的业务。
使用步骤:
- 部署acitiviti:
- 编辑定义流程(BPMN):
- 部署流程定义:
- 启动流程实例:
- 用户查询代办事项(Task):
- 用户办理完成任务:
- 流程结束:
表
- 25张表:act开头
- re:静态数据和资源表
- ru:运行过程中产生的数据
- ge:通用数据
核心服务引擎:processEngine
- RuntimeService:
- TaskService:
- HistoryService:
- RepositoryService:
- ProcessInstance:
- ManagementService:
创建BPMN:
可以使用activiti-explorer编辑流程文件,或IDEA、Eclipse插件编辑。
可以参考这篇博文:Activiti介绍与官方demo使用(activiti-explorer)与25表的解析
单个部署流程定义,文件上传方式:
- 流程定义:
- 创建ProcessEngine实例
- 获取RepositoryService实例
- 使用RepositoryService进行部署,上传资源
- 得到Deployments实例,查看部署信息
- 启动流程实例:
- 创建ProcessEngine实例
- 获取RuntimeService实例
- 获取ProcessInstance实例
- 发起流程:
- 1.act_re_deployment: 记录部署操作
- 2.act_re_procdef:流程定义信息
- 3.act_ge_bytearray:资源文件保存
两种流程部署方式:
1.单个部署
2.zip压缩文件上传部署
Activiti整合Spring
创建MAVEN工程
- 使用IDEA创建maven工程。
导入依赖
以下为本人测试时引入依赖,可以参考:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>activitiDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<activiti.version>7.0.0.Beta1</activiti.version>
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.12</log4j.version>
</properties>
<!--依赖:activiti mysql驱动包 mybatis log4j 数据库连接池-->
<dependencies>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-model</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-converter</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-layout</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti.cloud</groupId>
<artifactId>activiti-cloud-services-api</artifactId>
<version&