一. 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. 包含网关(排他+并行)
   
    
    
    若只满足一个条件,而另一个条件不满足。只会审批满足这个条件的分支。审批完成后放心。如果两个分支都满足条件,则两个分支都需要进行审批后才能放行。
    
    
    
    测试:
    
     
   
 
