流程引擎之Flowable简介
背景
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://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简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 声声慢 - 程序人生
- 下一篇: 愚人节导入_最好的开发商愚人节