背景

Flowable 是一个流行的轻量级的采用 Java 开发的业务流程引擎,通过 Flowable 流程引擎,我们可以部署遵循 BPMN2.0 协议的流程定义(一般为XML文件)文件,并能创建流程实例,查询和访问流程相关的实例与数据等等。

2016 年 10 月,Activiti 工作流引擎的核心开发者 Tijs Rademakers 离开 Alfresco 公司并在 Activiti 5.22 版本分支基础上开启了 Flowable 开源项目。Flowable 项目中包括 BPMN(Business Process Model and Notation)引擎、CMMN(Case Management Model and Notation)引擎、DMN(Decision Model and Notation)引擎、表单引擎(Form Engine)等模块。

  • 2016年10月13日,Tijs Rademakers 发布Flowable 5.22.0

  • 2017.02.15发布Flowable 6.0,该版本基于Activiti6

  • ......

  • 2021.12.28发布Flowable 6.7.2 release

附 Flowable 官方地址:

  • Flowable 官方网站:https://www.flowable.com/

  • Flowable github:https://github.com/flowable

  • Flowable 版本发布记录:https://github.com/flowable/flowable-engine/releases?page=1

  • Flowable 文档:https://www.flowable.com/open-source/docs/

中文 Flowable 文档: https://tkjohn.github.io/flowable-userguide/#chapterApi

  • Flowable 教程:https://documentation.flowable.com/latest/howto/tutorial/first-experience

Flowable 使用

1)Flowable UI 使用

与 jBPM 的 Business Central 类似(相对来说 Business Central 功能更强大),Flowable UI 是 Flowable 官方提供给用户可初始化的流程等资源设计和管理器,使用步骤如下:

Step 1:下载 flowable-6.8.0.zip 文件,并解压在 wars 目录下找到 flowable-ui.war 文件
  • flowable zip 包 github 地址:https://github.com/flowable/flowable-engine/releases/tag/flowable-6.8.0

Step 2:执行 "java -jar flowable-ui.war" 命令启动 Flowable UI
Step 3:访问 http://localhost:8080/flowable-ui/,并账密(admin/test)登录

Flowable UI 登录后主要包括以下四个功能(图如上):

  • 任务应用程序(Flowable Task):运行时任务应用,这个提供了启动流程实例、编辑任务表单、完成任务,以及查询流程实例与任务的功能。

  • 建模器应用程序(Flowable Modeler):让具有建模权限的用户可以创建流程模型、表单、选择表与应用定义。

  • 管理员应用程式(Flowable Admin): 管理应用。让具有管理员权限的用户可以查询流程、CMMN、APP、Form、DMN 及 Content 引擎,并提供了许多选项用于修改流程实例、任务、作业等。

  • 身份管理应用程序(Flowable IDM):为所有 Flowable UI 应用提供单点登录认证功能,并且为拥有 IDM 管理员权限的用户提供了管理用户、组与权限的功能。

Step 4:请假流程示例 demo

其中导入的 holiday.bpmn 如下(该流程文件不能在 Flowable UI 上执行,只做建模示例使用):

<process id="holidayRequest" name="Holiday Request" isExecutable="true"><startEvent id="startEvent"/><sequenceFlow sourceRef="startEvent" targetRef="approveTask"/><userTask id="approveTask" name="Approve or reject request" flowable:candidateGroups="managers" /><sequenceFlow sourceRef="approveTask" targetRef="decision"/><exclusiveGateway id="decision"/><sequenceFlow sourceRef="decision" targetRef="externalSystemCall"><conditionExpression xsi:type="tFormalExpression"><![CDATA[${approved}]]></conditionExpression></sequenceFlow><sequenceFlow  sourceRef="decision" targetRef="sendRejectionMail"><conditionExpression xsi:type="tFormalExpression"><![CDATA[${!approved}]]></conditionExpression></sequenceFlow><serviceTask id="externalSystemCall" name="Enter holidays in external system"flowable:class="com.flowable.zqh.ExternalDelegateApproved"/><sequenceFlow sourceRef="externalSystemCall" targetRef="holidayApprovedTask"/><userTask id="holidayApprovedTask" name="Holiday approved" flowable:assignee="${employee}"/><sequenceFlow sourceRef="holidayApprovedTask" targetRef="approveEnd"/><serviceTask id="sendRejectionMail" name="Send out rejection email"flowable:class="com.flowable.zqh.SendRejectionEmail"/><sequenceFlow sourceRef="sendRejectionMail" targetRef="rejectEnd"/><endEvent id="approveEnd"/><endEvent id="rejectEnd"/></process>

2)Flowable demo

以请假流程作为 Flowable 基本使用示例(流程示例同 Flowable UI):

  • 请假流程文件 holiday.bpmn 配置

同 Flowable UI 示例中的 holiday.bpmn。

  • 代码示例

示例源码参考 csdn 下载地址:https://download.csdn.net/download/zhuqiuhui/87462589

3)Flowable 与 Spring 集成

spring boot 与 Flowable 集成比较简单,引入以下依赖后,会自动注入 Flowable 相关核心类,直接在代码中使用即可。更详情的参考 Flowable 官方文档说明:https://www.flowable.com/open-source/docs/bpmn/ch05a-Spring-Boot

<dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter</artifactId><version>${flowable.version}</version>
</dependency>

4)流程引擎对比

Flowable 相对于其他流程引擎,优点如下:

  • 以 Flowable6.4.1版本为分水岭,大力发展其商业版产品,开源版本维护不及时,部分功能已经不再开源版发布,比如表单生成器(表单引擎)、历史数据同步至其他数据源、ES等

  • 支持了流程、CMMN、APP、Form、DMN 及 Content 引擎

  • 支持异步执行器、动态脚本等

  • Flowable 启动后会自动初始化 46 张数据表

  • ......

Flowable 整体架构

使用引擎 API 是与 Flowable 交互的最常见方式,核心类是 ProcessEngine,从 ProcessEngine 中可以获取包含工作流/BPM方法的各种服务(与 Activiti5 类似,有兴趣可进一步深入)。如下图所示:

流程引擎系列文章

  • 流程引擎之发展史及对比总结:https://blog.csdn.net/zhuqiuhui/article/details/128986403

  • 流程引擎之KIE项目简介:https://blog.csdn.net/zhuqiuhui/article/details/129035796

  • 流程引擎之jBPM简介:https://blog.csdn.net/zhuqiuhui/article/details/129052162

  • 流程引擎之Activiti简介:https://blog.csdn.net/zhuqiuhui/article/details/129107741

  • 流程引擎之Camunda简介:https://blog.csdn.net/zhuqiuhui/article/details/129107897

  • 流程引擎之Flowable简介:https://blog.csdn.net/zhuqiuhui/article/details/129109273

  • 流程引擎之compileflow简介:https://blog.csdn.net/zhuqiuhui/article/details/129109391

流程引擎之Flowable简介相关推荐

  1. 流程引擎之compileflow简介

    背景 compileflow 是一个非常轻量.高性能.可集成.可扩展的流程引擎.compileflow Process 引擎是淘宝工作流 TBBPM 引擎之一,是专注于纯内存执行,无状态的流程引擎,通 ...

  2. 流程引擎之Activiti简介

    背景 Activiti 是一个开源架构的工作流引擎,基于 bpmn2.0 标准进行流程定义,其前身是 jBPM,Activiti 相对于 jBPM 更轻量,更易上手,且天然集成了 Spring.201 ...

  3. 流程引擎之Camunda简介

    背景 Camunda 是支持 BPMN(工作流和流程自动化).CMMN(案例管理) 和 DMN(业务决策管理) java 框架.Camunda 基于Activiti5 保留了 PVM,其开发团队也是从 ...

  4. 流程引擎(flowable)之会签相关

    相关定义 会签: 在流程业务管理中,任务是通常都是由一个人去处理的,而多个人同时处理一个任务,这种任务我们称之为会签任务. 串行会签:串行会签也叫顺序会签,指按照提交流程处理人的次序user1.use ...

  5. 流程引擎之KIE项目简介

    一.KIE 工程是什么 近期学习流程 jBPM 引擎时,发现 jBPM 是基于 jBoss 公司的 KIE 工程建设的,所以在学习 jBPM 之前需要弄明白 KIE 工程是什么.KIE 是" ...

  6. 流程引擎之发展史及对比总结

    流程引擎渊源 市场上比较有名的开源流程引擎有 jBPM.Activiti.Camunda.Flowable 和 Compileflow.其中 jBPM.Activiti.Flowable.camund ...

  7. flowable 查询完成的流程_flowable流程引擎初体验,完成一个请假流程

    flowable是一个用Java写的轻量级商业流程引擎,用它可以部署BPMN2.0(在工业界被广泛接受的XML标准)流程定义, 并且可以创建流程实例,驱动节点流转,存储相关的历史数据等等.可能更多人先 ...

  8. Spring Boot 整合流程引擎 Flowable,so easy

    为啥想写 flowable 呢?原因很简单,因为最近在录的 tienchin 项目视频会用到,先写一篇文章和大家打打预防针,后面视频再细讲. 流程引擎,也算是一个比较常见的工具了,我们在日常的很多开发 ...

  9. 《Flowable流程引擎从零到壹》引入日志框架和部署流程定义

    14天学习训练营导师课程: 邓澎波<Flowable流程引擎-基础篇[2022版]> 邓澎波<Flowable流程引擎-高级篇[2022版]> 学习笔记<Flowable ...

最新文章

  1. java文件名要和什么一致,Java的类名与文件名必须一致
  2. Android柳叶刀之Button之UI交互
  3. redis的安全性及客户端工具的使用
  4. 全球最大IXP为何选择与华为开展数据中心互联合作?
  5. 【深搜】骑士游历(ssl 1277)
  6. jquery生成二维码图片
  7. 【C/C++】C++运算符优先级
  8. Java程序设计基础陈国军版第五版第三章习题答案与解析
  9. 读书笔记,《刻意练习》,第三章,心理表征
  10. K8S 完全安装手册
  11. pyrorch中 out.view(out.size(0), -1)  out.view(-1, 1, 28, 28)  clamp(min,max)作用
  12. webapp新建文件没有JSP问题和IDEA中web.xml的<servlet-name>名字一样还飘红的问题
  13. PPT怎么转PDF?将Powerpoint(PPT)转换为PDF方法分享
  14. python爬虫获取百度贴吧内容
  15. 聊聊浏览器的标准模式和怪异模式
  16. 网络知识入门,深入了解ACK控制位,网络传输缓慢的毒瘤:ACK等待时间  (五)
  17. 远程桌面的登录,锁定与解锁
  18. redis防表单重复提交
  19. Cayley-Hamilton定理(凯莱-哈密顿定理)
  20. BLDC-滑模观测器

热门文章

  1. Android service后台执行定时任务
  2. 压力换算公斤单位换算_压力单位转换器_压力换算器 百分百好站
  3. 人工智能芯片产业生态和竞争格局
  4. Java线程池如何优雅地等待所有任务执行完
  5. 64位操作系统注册ocx控件失败,提示:模块加载失败请确保该二进制存储在指定路径中。
  6. 如何将其它浏览器的收藏夹导入到Firefox浏览器
  7. 【深度学习之美】LSTM长短记,长序依赖可追忆(入门系列之十四)
  8. 3.1 使用ZIO测试,写一些简单的程序
  9. 2.3 zio入门——一些常见的zio操作符
  10. 算法探讨——再议经典算法问题:求最大子序列和、绝对值最大子序列和以及其区间...