Activiti7入门介绍

Hello,大家好,我是你们CodeWorld,最近工作比较忙,很长时间没有更新过文章了,那么今天呢,就给大家来一期Activiti7的教学
话不多说,直接上
Activiti7入门介绍_第1张图片

开篇前提

首先我们要知道什么是Activiti,他怎么使用,解决了什么问题

Activiti介绍

什么是工作流

工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。
简单来说就是一个任务层级的关系,假如我们有个员工请假,他需要填写请假条-》提交申请-》组长审批-》经理审批-》老板审批,这样的一个流程,叫它工作流,上级完成后自动流转到下级。

什么是工作流系统

一个软件系统中具有工作流的功能,我们把它称为工作流系统。

工作流使用场景

  • 关键业务流程:订单、报价处理、合同审核、客户电话处理、供应链管理等。
  • 行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单。
  • 财务相关:付款申请,报销处理,预算计划审批等
    还有很多的场景都会使用到工作流

为什么要学习工作流

自定义工作流

员工请假案例:
第一步:员工提交申请(status设置为1)
第二步:组长审批通过(status设置为2)
第三步:组长审批不通过(status设置为3)
第四步:经理审批通过(status设置为4)
第五步:经理审批不通过(status设置为5)
第六步:老板审批通过(status设置为6)
第七步:老板审批不通过(status设置为7)
。。。。
如果说任务审核流程很多,那么我们设置的状态就会很多,这样以此下去,耦合性很高,如果流程有所改变,增加审核层级或者去掉某一个审核层级不要,那么这样改代码真的很头疼,加上各种各样的状态判断,人都傻了

还写的der,直接跑路吧

Activiti7入门介绍_第2张图片

当我们遇到这种情况了,Activiti就派上用场了,可以解决我们遇到的问题,当员工提交请假申请后,如果组长审核通过,那么自动就会流转到经理审批;如果组长审核不通过,那么自动会流转到员工哪里,重新填写提交。
这样就解决了我们代码的耦合性,如果流程又所变,我们只需要修改流程图就可以。

Activiti7入门介绍_第3张图片

工作流实现的原理

Activiti7入门介绍_第4张图片

我们可以在上面清楚的看见每一个流程都对应了一条记录,保存在我们的数据库中,当我们删除或者增加的流程的时候,就和我们的状态没有任何关系了。

使用步骤

  • 引入Activiti:Activiti其实就是用java开发的一套开源的框架。我们要使用首先对应的pom依赖,然后我们就可以通过Activiti提供的类和接口来进行操作了
  • 流程定义:就是使用专门流程建模工具来定义流程,把整个流程用图形的方式表达出来。像idea和eclipse都有对应的Activiti对应的流程订一起。
  • 流程定义的部署:把我们用工具绘制出来的流程存储起来。其实就是把这个流程转化为具体的数据存放到mysql中。
  • 启动一个流程实例:就是开始一次业务流程的运行。比如小明和小红都要请假,那么他们填写了请假申请之后,系统就应该为他们两个都启动一个流程实例。不同的流程实例之间相互是不影响的。
  • 用户查询待办任务:一个任务要经历多个参与者,那么现在这个任务到达哪个地方了,应该由谁来处理了,这个时候我们需要查询出来。但是由于我们使用了Activiti,我们已经不需要自己写sql来查询了,直接嗲用Activiti提供的接口就可以了。
  • 用户办理任务:用户查询待办任务后,就可以办理某个任务,如果这个任务办理完成还需要其他用户办理,比如采购单创建后由部门经理审核,这个过程也是由Activiti帮助我们完成的。

什么是BPMN

BPMN定义了一个业务流程图(Business Process Diagram),该业务流程图基于一个流程图(flowcharting),该流程图被设计用于创建业务流程操作的图形化模型。而一个业务流程模型(Business Process Model),指一个由图形对象(graphical objects)组成的网状图,图形对象包括活动(activities)和用于定义这些活动执行顺序的流程控制器(flow controls)

例如:这就是我们画出的BPMN
Activiti7入门介绍_第5张图片

我们再看xml文件



  
    
    
    
    
    
    
    
    
    
    
    
  
  
    
      
        
        
          
        
      
      
        
        
          
        
      
      
        
        
          
        
      
      
        
        
          
        
      
      
        
        
          
        
      
      
        
        
          
        
      
      
        
        
        
          
        
      
      
        
        
        
          
        
      
      
        
        
        
          
        
      
      
        
        
        
          
        
      
      
        
        
        
          
        
      
    
  

这样我们的流程图就创建好了,下面就开始撸代码
具体我们到下一节在讲

好了,本次的技术解析就到这里了?如果觉得不错的话,点亮一下小星星codeworld-cloud-shop
只看不点,不是好孩子哦!!

欢迎加入QQ群(964285437)

Activiti7入门介绍_第6张图片

欢迎加入公众号

Activiti7入门介绍_第7张图片

你可能感兴趣的:(javaspringboot)