一. Activiti5 框架介绍
1.什么是工作流
工作流: 业务过程的部分或整体在计算机应用环境下的自动化,主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。简单的理解就是指工作的流程,在本项目中是指从完成一个企业中具体业务的一系列工作步骤,所有的步骤合在一起就是业务从开始到结束的流转过程。
示例:请假流程
工作流三大要素:
- 这个过程要做什么?
- 经过多少个步骤?
- 每个步骤由谁来做?做什么?怎么做?
工作流相关概念:
2.Activiti 5 框架
JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。JBPM是公开源代码项目 。Activiti 5 框架前版本为JBPM 4,后因架构师跳槽别公司后从新研发后改名。
Activiti5的持久化层采用的是Mybatis,这样移植性好
Activiti5主要包括7个Service,
这些Service都是通过ProcessEngine创建。 ProcessEngine这个类是Activiti5的核心,所有的服务都需要通过ProcessEngine来创建,该类是线程安全的
- repositoryService(持久化服务) 与数据库进行交互的
- runtimeService(运行时服务) 与运行流程有关
- taskService(任务服务) 与流程中的每一个步骤有关
- historyService(历史信息) 查看历史的流程步骤
- formService(表单服务)
- identityService(身份信息)
- managementService(管理定时任务)在固定的时间点完成固定的任务
在ssm框架中整合Activiti 5框架:
只需要将spring-flow.xml放在resources中即可。
在test类中使用Activiti 5框架创建23张表:
表结构:
各个表的具体含义:
3. IDEA中的Activiti插件(中文乱码可百度解决,通过修改VM参数)
1.安装
File → Setting →
2.画图。重启完成安装,创建一个BpmnFile。
如图是打开编辑和图标。
通过移动相应图标进行画图。
二. Activiti 5 流程框架具体使用详解
1. 基本代码
首先获得ProcessEngine核心对象,并创建23张表。
2. 流程定义
-
示例: 请假流程
通过双击图标或者线修改相应属性:
3. 部署
4. 查询流程定义数据
5. 流程表数据分析
6. 任务
-
定义新的请假流程,并指定委托人
-
获取流程任务,并执行任务
-
查询并完成任务
-
表结构详解
7. 历史
获取历史服务对象,查看历史流程
8. 任务领取
-
将任务指派给 一个组,然后,由组内指定人进行任务完成操作
-
领取任务
①部署流程②启动流程实例
③测试领取任务
9. 流程变量
-
定义流程,委托人采用流程变量获取委托人
-
启动流程时,需要指定委托人参数
(1)代码
(2)数据库
10. 排他网关(也称决策)
-
条件
-
测试
11. 并行网关(也称会签)
两者需要同时满足条件
代码:
12. 包含网关(排他+并行)
若只满足一个条件,而另一个条件不满足。只会审批满足这个条件的分支。审批完成后放心。如果两个分支都满足条件,则两个分支都需要进行审批后才能放行。
测试: