Activiti工作流引擎学习

一、传统工作流完成方式

在没有专门的工作流引擎之前,我们之前为了实现流程控制,通常的做法就是采用状态字段的值来跟踪流程的变化情况。这样不用角色的用户,通过状态字段的取值来决定记录是否显示。比如说员工请假申请流程:员工申请---部门经理---总经理---人事存档

针对有权限可以查看的记录,当前用户根据自己的角色来决定审批是否合格的操作。如果合格将状态字段设置一个值,来代表合格;当然如果不合格也需要设置一个值来代表不合格的情况。

这是一种最为原始的方式。通过状态字段虽然做到了流程控制,但是当我们的流程发生变更的时候,这种方式所编写的代码也要进行调整。那么有没有专业的方式来实现工作流的管理呢?并且可以做到业务流程变化之后,我们的程序可以不用改变,如果可以实现这样的效果,那么我们的业务系统的适应能力就得到了极大提升。

二、Activiti流程

为什么Activiti就可以解决业务需求变更时,源代码不需要更新,更新的是业务流程图,原理是什么?

原理分析

如何可以做到我们在业务流程发生变更后,我们的业务系统代码可以不发生改变?此时我们就来分析一下原理。

具体分析过程如下图所示:

image.png
Activiti 内部核心机制及实现原理图

原理:节点和表之间的信息转换,关键点就在这里。把节点的信息读取出来然后存入到表里边,将来在处理的时候,从表中读取记录,处理完之后将记录删掉,意味着这个环节就处理完了,然后再处理下一个节点。

Activiti介绍

Activiti 是一个工作流引擎, activiti 可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言(BPMN2.0)进行定义,业务系统按照预先定义的流程进行执行,实现了业务系统的业务流程由 activiti 进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。

官方网站:https://www.activiti.org/

Activiti7默认 25 张表,公司开发的软件是否适合使用activiti。

BPMN

BPMN(Business Process Model And Notation)- 业务流程模型和符号 是由 BPMI(Business Process Management Initiative)开发的一套标准的业务流程建模符号,使用 BPMN 提供的符号可以创建业务流程。

BPMN 主要用来规范化业务流程及统一建模

Event 用一个圆圈表示,它是流程中运行过程中发生的事情。
image.png

活动用圆角矩形表示,一个流程由一个活动或多个活动组成:
image.png

一个 bpmn 图形的例子:

  • 首先当事人发起一个请假单;
  • 其次他所在部门的经理对请假单进行审核;
  • 然后人事经理进行复核并进行备案;
  • 最后请假流程结束

image.png

Bpmn 图形其实是通过 xml 表示业务流程,上边的.bpmn 文件使用文本编辑器打开:



 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

三、Activiti使用

你可能感兴趣的:(activiti,java,springboot)