Springboot 整合 Flowable(一):使用 flowable-UI 绘制流程图

2024-06-12 07:44

本文主要是介绍Springboot 整合 Flowable(一):使用 flowable-UI 绘制流程图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 目录

一、Flowable简介

二、Flowable 与 Activiti 的区别

三、流程图的绘制(以员工请假流程图为例)

1、下载 flowable 的压缩包:

2、启动包中的 tomcat

3、登录页面

4、绘制结束,导出 bpmn20.xml文件


一、Flowable简介

Flowable 是一个使用 Java 编写的轻量级业务流程引擎。Flowable 流程引擎可用于部署 BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据等等。

                                                              —— 以上来源于中文版用户手册:flowable-userguide

👉 补充概念知识:

1、BPM:

“通过建模、自动化、管理和优化流程,打破跨部门跨系统业务过程依赖、打破信息孤岛,提高业务效率和效果”,通俗一点讲,就是工作流引擎。在进行流程设计时,需要将流程的元素进行定义,并按照一定的格式、标准运行,这就需要一套业务规范,这套规范就是BPM。

2、BPMN1.0:

“业务流程建模标注”,从语义上我们就能理解,BPMN1.0就是将流程定义标准化的一套规则、规范。提出这套标准化的就是OMG(国际性、开放式会员制的非盈利技术标准联盟),这套标准是独立于企业的标准。

3、BPMN2.0:

BPMN2.0相对于BPMN1.0最大的区别就是定义、规范了流程引擎的执行语义和格式,利用标准的图元描述真实的业务发生过程,保证相同的流程在不同的流程引擎中得到一致的执行结果。在BPMN2.0的这套标准中,主要对流程执行定义了三类基本要素,分别为Activities(活动)、Gateways(网关)、Events(事件)。

二、Flowable 与 Activiti 的区别

优点缺点
Flowable

1、架构灵活:Flowable的架构非常灵活,可以轻松地嵌入到Spring或者其他Java应用中,也可以作为独立的服务运行。

2、扩展性强:Flowable提供了插件机制,可以方便地扩展和定制工作流引擎的功能。

3、高可用性:Flowable支持分布式部署,可以实现高可用性的工作流引擎。

4、维护活跃:Flowable项目有一个活跃的社区,提供了及时的技术支持和更新。

1、文档相对较少:Flowable相对于Activiti,文档相对较少。

2、社区相对较小:Flowable的社区相对于Activiti,规模较小。

Activiti

1、文档详细:Activiti的官方文档非常详细,易于新手学习和使用。

2、社区活跃:Activiti的社区规模较大,提供了广泛的技术支持和资源。

3、易于集成:Activiti可以轻松地与Spring集成,也可以作为独立的服务运行。

4、贡献者较多:Activiti是一个比较成熟的工作流引擎,有大量的贡献者和用户,可以提供成熟的解决方案。

1、扩展性较弱:Activiti的插件机制较为有限,扩展和定制功能不如Flowable方便。

2、可靠性较低:Activiti在一些用户反馈的场景下,存在一些稳定性问题,需要注意。

三、流程图的绘制(以员工请假流程图为例)

1、下载 flowable 的压缩包:

① 下载地址:https://github.com/flowable/flowable-engine/releases/tag/flowable-6.6.0/

百度网盘:链接:https://pan.baidu.com/s/11c0TQ45tfl3trt3drkI1Hg 
提取码:2sfq

② 解压后,将 flowable-6.6.0\flowable-6.6.0\wars 下的两个文件拷贝到 tomcat下的 apache-tomcat-8.5.57\webapps 下

2、启动包中的 tomcat

双击 \apache-tomcat-8.5.57\bin\startup.bat,启动 tomcat

3、登录页面

地址:http://localhost:8080/flowable-ui

默认用户名:admin

密码:test

相关概念:

  • 事件(event):通常用于为流程生命周期中发生的事情建模,图里是【开始、结束】两个圈。
  • 顺序流(sequence flow)是流程中两个元素间的连接器。图里是【箭头线段】。
  • 网关(gateway)用于控制执行的流向。图里是【菱形(中间有X)】
  • 用户任务(user task)用于对需要人工执行的任务进行建模。图里是【矩形】。

注意事项:

  • 考虑易读性,每个组件最好设置主键ID。
  • 分配用户可以选择候选人或者候选组。

候选组需要提前创建

 顺序流可以设置流条件来限制流动

4、绘制结束,导出 bpmn20.xml文件

这篇关于Springboot 整合 Flowable(一):使用 flowable-UI 绘制流程图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1053601

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义