您现在的位置是:首页 > 编程 > 

SpringBoot整合Flowable【01】

2025-07-22 03:43:00
SpringBoot整合Flowable【01】 一、认识工作流1.认识BPM与BPM如果我们翻阅Flowable的文档,可以看到对于它会有一段这样的描述-“可用于部署BPM2.0流程定义”,那么BPM2.0又是个什么东东呢?下面我们简单介绍一下。要知道BPM2.0是什么,我们需要先了解下BPM(Business Process Management,业务流程管理)。它说白了就是一种管理方

SpringBoot整合Flowable【01】

一、认识工作流

1.认识BPM与BPM

如果我们翻阅Flowable的文档,可以看到对于它会有一段这样的描述-“可用于部署BPM2.0流程定义”,那么BPM2.0又是个什么东东呢?下面我们简单介绍一下。

要知道BPM2.0是什么,我们需要先了解下BPM(Business Process Management,业务流程管理)。它说白了就是一种管理方法,或者说是一种思想,主要是用来管理业务流程,我们如今的很多涉及到业务关系和流程的系统都可以称为BPM系统,比如你一定在大学期间做过的图书管理系统当然也属于这一类。

针对复杂的问题,我们通常的解决方法是对其进行模型化的抽象,通过模型来推导解决问题,也就是建模(这一过程也被称之为Business Process Modeling业务流程建模)。BPM下就有很多种建模语言,BPM(Business Process Modeling otation)就是其中的一种建模语言。

在BPM发展的过程中,基于BPM的一些特性与业务流程管理中常见的一些情况,总结提炼出了一套标准。这套标准或者也可称之为规范,在2004年5月由BPMI otation Working Group对外发布,这就是BPM 1.0 规范。后来BPMI并入到OMG组织,并在2011年推出BPM2.0标准,对BPM进行了重新定义 (Business Process Model and otation),这就是我们常说的BPM2.0。

总的来说,BPM是一种管理思想,而BPM是实现这种思想的一种工具,它们之间的关系就像是方法论与方法的关系。BPM作为一种建模语言,可以帮助我们更好地理解和实现BPM的目标。

2.工作流引擎的发展

工作流引擎则可用于部署BPM 2.0流程定义,创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据。而基于BPM2.0标准也产生了很多工作流引擎,例如ActivitiFlowablejBPM等。

Flowable功能最全面,Camunda最轻,我的这次系列教程打算使用的是Flowable。毕竟这几个引擎可以说就是一家子,只要一个会用,其他上手也是很快的。

通过这个流程图,我们可以大致了解到主流工作流引擎的发展史。我这个系列将使用的是 Flowable,所以后续的文章都会围绕 Flowable 展开。通过前面的介绍,我们可以把 Flowable 与BPM的关系理解为:Flowable 是一个工具,它使用BPM 2.0作为其流程定义的标准,通过解析BPM 2.0定义的流程图,Flowable 可以创建、管理和执行这些流程。这样,Flowable 就能够帮助我们实现业务流程的自动化管理。

二、流程设计

对工作流引擎有了一定的认识后,我们就需要开始工作流里最重要的一个环节,那就是设计流程。有了设计的流程模型后,我们才可以通过Flowable进行后续的操作。目前流程设计有以下五种方式,大家根据自己的需要选择适合自己需求的方式。

1.FlowableUI(不推荐)

官方出品,与 Flowable 后台引擎逻辑对接非常好,元素及属性也是最全的。但是真的不适合业务中使用,界面不是太友好,参数设置不是很灵活,基本都是输入框,在实际业务场景中,用户看到你这套估计都头晕。并且官方在7.0中也已经移除了这套设计器,鼓励开发者根据规范去定制自己的流程设计器。当然,FlowableUI 也不是一无是处,在学习阶段我认为还是挺好用的,对我们入门学习还是蛮方便的。

2.BPM.js自定义

当 FlowableUI 无法满足复杂的流程业务需求时,这个时候“大手子”就可以基于bpmn.js来自定义流程设计器。地址:/

感兴趣的同学可以参考中文学习文档:

.第三方的设计器(推荐)

自己从0到1做当然是个很耗费心力的事情,所以直接用别人开源的设计器当然也是不错的选择,如果自己有定制化需求,那从1到10去改也相对容易了。

比如:

4.代码实现

这个方法我推荐业务自定义程度不高的同学去使用,直接在后端通过 BpmnModel 对象创建流程。

三、流程图的组成

为了便于读者理解,我这里简单绘制一个请假的流程图进行讲解:

1.事件

事件用于控制流程的执行、任务分配和流程终止等关键操作,比如上图中看到的两个圆圈就分别是开始事件和结束事件。

2.连线

连线定义了流程的流转路径,决定了流程实例如何从一个节点到达另一个节点。比如上图中将其他元素连在一起的线条。

.任务

任务是流程中的关键组成部分,用于协调和管理流程实例的执行。比如上图中请假的那个节点,在Flowable 中每一个任务都可以配置表单对该任务的相关信息进行配置,例如处理人。

4.网关

网关用于控制流程的流向和分支。不同类型的网关具有不同的作用。常见的网关有排他网关、并行网关、包容网关。在上图中我并没有绘制网关,为了便于大家理解,我辅助说明下,比如在上图请假节点的责任人同意请假或拒绝请假分别有不同的任务流向,就在这个任务后加个网关进行判断,有些类似于代码中的if判断语句,当然这只是一种情况。

四、小结

作为系列文章的开篇,本篇文章主要是帮助读者对工作流引擎建立起一个初步的认识,在后续的篇章中我将使用Flowable帮助各位读者逐步学习如何在SpringBoot中进行整合和应用。

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1179168.html

相关标签:无
上传时间: 2025-07-21 23:28:51
留言与评论(共有 17 条评论)
本站网友 usdt暴跌
2分钟前 发表
通过解析BPM 2.0定义的流程图
本站网友 实体瘤
24分钟前 发表
毕竟这几个引擎可以说就是一家子
本站网友 惊蛰养生
3分钟前 发表
2.工作流引擎的发展工作流引擎则可用于部署BPM 2.0流程定义
本站网友 鹿茸的功效与作用及食用方法
11分钟前 发表
比如上图中将其他元素连在一起的线条
本站网友 北京社区
23分钟前 发表
比如在上图请假节点的责任人同意请假或拒绝请假分别有不同的任务流向
本站网友 延吉西市场
0秒前 发表
而BPM是实现这种思想的一种工具
本站网友 宋寒
21分钟前 发表
地址:/感兴趣的同学可以参考中文学习文档:.第三方的设计器(推荐)自己从0到1做当然是个很耗费心力的事情
本站网友 崇州租房信息
28分钟前 发表
那从1到10去改也相对容易了
本站网友 打包带
9分钟前 发表
比如:4.代码实现这个方法我推荐业务自定义程度不高的同学去使用
本站网友 打印系统
10分钟前 发表
这套标准或者也可称之为规范
本站网友 湖北自考成绩
10分钟前 发表
BPM是一种管理思想
本站网友 昭化路
3分钟前 发表
在后续的篇章中我将使用Flowable帮助各位读者逐步学习如何在SpringBoot中进行整合和应用
本站网友 nrc
17分钟前 发表
在Flowable 中每一个任务都可以配置表单对该任务的相关信息进行配置
本站网友 静安凤凰苑
12分钟前 发表
本篇文章主要是帮助读者对工作流引擎建立起一个初步的认识
本站网友 广州艺术博览会
7分钟前 发表
通过这个流程图
本站网友 排球可以用脚吗
17分钟前 发表
总结提炼出了一套标准