Activiti使用
1.1 Activiti部署
Activiti是一个工作流引擎,其实就是一堆jar包API。业务系统访问activiti的接口,就可以方便的操作流程相关的数据,这样就可以把工作流环境与业务系统环境集成在一起。
1.2 流程定义
使用activiti流程建模工具(activity-designer)定义业务流程(.bpmn文件)。
.bpmn文件就是业务流程定义文件,通过xml定义业务流程。
1.3 流程定义部署
activiti部署业务流程定义。
使用activiti提供的api把流程定义内容存储起来,在activiti执行过程中可以查询定义的内容。
activiti执行把流程定义内容存储在数据库中。
1.4 启动实例
流程实例:ProcessInstance
启动一个流程实例表示开始一次业务流程的运行。
在员工请假流程定义部署完成后,如果张三要请假就可以启动一个流程实例,如果李四要请假也启动一个流程实例,两个流程的执行互不影响。
1.5 待办任务
待办任务(Task),因为现在系统的业务流程已经交给activiti管理,通过activiti就可以查询当前流程执行的进度,当前用户需要办理的任务,这些activiti帮我们进行管理,而不需要开发人员自己编写接口查询。
1.6 处理任务
用户查询到待办任务之后,就可以办理任务了,如果这个任务办理完成还需要其他用户处理,这个过程也是有activiti处理的,不需要我们进行处理。
1.7 流程结束
当任务办理完成,没有下一个任务节点时,这个流程实例就完成了。
2.1 开发环境
JDK1.8或以上版本
MySQL5及以上版本
Tomcat8.5
IDEA
2.2 Activiti环境
Activiti7.11.0
2.2.1 Activiti下载
下载地址:http://activiti.org/download.html
2.2.2 Maven依赖
<properties>
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.12</log4j.version>
<activiti.version>7.11.0</activiti.version>
</properties>
<dependencies>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>${activiti.version}</version>
</dependency>
<!-- bpmn 模型处理 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-model</artifactId>
<version>${activiti.version}</version>
</dependency>
<!-- bpmn 转换 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-converter</artifactId>
<version>${activiti.version}</version>
</dependency>
<!-- bpmn json数据转换 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-json-converter</artifactId>
<version>${activiti.version}</version>
</dependency>
<!-- bpmn 布局 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-layout</artifactId>
<version>${activiti.version}</version>
</dependency>
<!-- activiti 云支持 -->
<dependency>
<groupId>org.activiti.cloud</groupId>
<artifactId>activiti-cloud-services-api</artifactId>
<version>${activiti.version}</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!-- 链接池 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
</dependencies>
2.2.3 database
Activiti运行需要数据库的支持,目前支持的数据库有:h2, mysql, oracle, postgres, mssql, db2
代码中有表构建sql文件,执行sql脚本,创建数据模型。
2.2.4 Activiti流程定义工具插件
在IDEA中,“Settings” - “Plugins”,搜索activiti就可以搜到流程设计器,点击install安装,安装好之后restart IDE,