activi 底层原理和简单demo

1 工作流是什么
通过计算机,对业务流程进行自动化管理,主要目标是能够使多个参与者之间按照约定的规范传递文件,从而实现某个约定的目标。就是流程的自动化控制
2 如果项目具备自动化管理的流程,这样的系统就是工作流系统
3 具体应用的场景:
a.关键业务:报价,订单,合同审核,客户电话处理,供应链管理。
b.除此之外,还包括行政管理,人事管理,财务管理等。
4 实现原理
在这里插入图片描述
5 BPM和BPMN
BPM (Business Process Management) 业务流程管理,是一种以规范化的构造端对端的卓越业务流程中心,以持续的提高组织业务极小为目的的系统化方法,常见的商业管理教育如EMBA,MBA等均将BPM包含在内。
企业管理流程主要是对企业内部改革,改革企业只能管理机构重叠,中间层次多,流程闭环等,从而提高企业的效益。

6整合步骤
1 整合activi
2 实现业务流程建模,使用bpmn实现业务流程图
3 部署业务流程到activi
4启动业务流程实例
5 查询代办任务
6 处理代办任务
7 结束流程
7 安装工具
8 activi 支持的数据库
文件目录结构,以及配置文件
在这里插入图片描述
在这里插入图片描述
配置数据源:
activiti.cfg.xml
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
流程定义的部署
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启动一个流程的实例
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

任务的处理
在这里插入图片描述
在这里插入图片描述
ru_task 表中只有永远一条记录,每个节点任务执行完,就会被删除

在这里插入图片描述
执行complete方法需要操作的表
在这里插入图片描述
在这里插入图片描述

压缩包的方式部署
bpmn和png 文件压缩成一个文件
在这里插入图片描述
代码实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

activiti 如何与业务绑定:businesskey 存放在activi表中,activi就可以查询了,25张表仅仅存业务的key,而不存具体的内容
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二章 个人任务
任务分配:两种方式。第一种写死;第二种是通过表达式来实现任务分配

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

第三章 流程变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

也可以直接放对象
在这里插入图片描述

注意事项:如果是pojo接口一定要实现序列化接口 serializable接口
在这里插入图片描述
启动流程实例

在这里插入图片描述
在这里插入图片描述
网关
网关用来控制流程的流向(或像BPMN 2.0里描述的那样,流程的tokens。) 网关可以消费也可以生成token。网关显示成菱形图形,内部有有一个小图标。 图标表示网关的类型。分为排他网关 并行网关 包含网关
在这里插入图片描述

网关:
在这里插入图片描述
排他网关

在这里插入图片描述
在这里插入图片描述
2,并行网关
当出现这样的场景:请假申请开始,需要项目经理和部门经理都审批,两者没有前后需要两个人全部审批才能进入下个节点。这个时候就需要并行网关
分支: 并行后的所有外出顺序流,为每个顺序流都创建一个并发分支。
汇聚: 所有到达并行网关,在此等待的进入分支, 直到所有进入顺序流的分支都到达以后, 流程就会通过汇聚网关。
在这里插入图片描述
注意,如果同一个并行网关有多个进入和多个外出顺序流, 它就同时具有分支和汇聚功能。 这时,网关会先汇聚所有进入的顺序流,然后再切分成多个并行分支。
与其他网关的主要区别是,并行网关不会解析条件。 即使顺序流中定义了条件,也会被忽略。
3,包含网关
当出现这样的场景:你申请请假,如果是病假,找项目经理审批,如果不是找部门经理审批。但是他俩不管谁签完都可以进行个节点。说白了就像是排他跟并行的合体
在这里插入图片描述

分支: 所有外出顺序流的条件都会被解析,结果为true的顺序流会以并行方式继续执行, 会为每个顺序流创建一个分支。
汇聚: 所有并行分支到达包含网关,会进入等待章台, 直到每个包含流程token的进入顺序流的分支都到达。 这是与并行网关的最大不同。换句话说,包含网关只会等待被选中执行了的进入顺序流。 在汇聚之后,流程会穿过包含网关继续执行。
注意,如果同一个包含节点拥有多个进入和外出顺序流, 它就会同时含有分支和汇聚功能。 这时,网关会先汇聚所有拥有流程token的进入顺序流, 再根据条件判断结果为true的外出顺序流,为它们生成多条并行分支。、
4,基于事件网关
基于事件网关允许根据事件判断流向。网关的每个外出顺序流都要连接到一个中间捕获事件。 当流程到达一个基于事件网关,网关会进入等待状态:会暂停执行。 与此同时,会为每个外出顺序流创建相对的事件订阅。
注意基于事件网关的外出顺序流和普通顺序流不同。这些顺序流不会真的"执行"。 相反,它们让流程引擎去决定执行到基于事件网关的流程需要订阅哪些事件。 要考虑以下条件:
基于事件网关必须有两条或以上外出顺序流。
基于事件网关后,只能使用intermediateCatchEvent类型。 (activiti不支持基于事件网关后连接ReceiveTask。)
连接到基于事件网关的intermediateCatchEvent只能有一条进入顺序流。
在这里插入图片描述
整合springboot和activiti:
任何软件的使用,都是三大步:导包,配置,代码
在这里插入图片描述
这个事整合springboot和activiti的核心包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置数据源
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启动流程实例
在这里插入图片描述
在这里插入图片描述

Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,并提供了一套完整的工作流管理解决方案。下面是Activiti底层原理的介绍: 1. 数据库存储:Activiti使用关系型数据库来存储流程定义、流程实例、任务等相关数据。它将这些数据存储在表中,并通过JDBC进行访问和操作。 2. 流程定义解析:Activiti使用BPMN 2.0规范来定义流程,它通过解析BPMN XML文件来读取流程定义信息。解析过程包括将XML文件转换为内部的流程模型对象,并构建流程定义的执行树。 3. 流程实例执行:当一个流程实例启动时,Activiti会创建一个执行对象树来表示该流程实例的执行状态。执行对象树由多个执行对象组成,每个执行对象代表流程中的一个节点或者任务。 4. 执行器:Activiti使用执行器来驱动流程实例的执行。执行器负责根据当前执行对象的状态,选择合适的处理器来处理节点或者任务。处理器可以是用户任务处理器、服务任务处理器等。 5. 事件监听器:Activiti支持事件监听机制,可以在流程执行过程中触发各种事件。事件监听器可以用于监听流程启动、节点完成、任务分配等事件,并执行相应的逻辑处理。 6. 任务管理:Activiti提供了任务管理功能,可以对流程中的任务进行创建、分配、完成等操作。任务管理涉及到任务的查询、委派、转办、审批等功能。 7. 异步执行:Activiti支持异步执行,可以将一些耗时的操作设置为异步执行,以提高系统的性能和并发能力。异步执行可以通过异步任务、定时器等方式实现。 8. 事务管理:Activiti使用数据库事务来保证数据的一致性和完整性。在流程执行过程中,Activiti会自动管理事务,确保流程操作的原子性和一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值