引擎API是與Flowable交互的最常用手段。總入口點是ProcessEngine。使 ProcessEngine,可以獲得各種提供工作流/BPM方法的服務。ProcessEngine與服務對象都是線程安全的,因此可以在服務器中保存并共用同一個引用。
:-: 
```java
//當配置文件位于 resources/flowable.cfg.xml,則可以這樣獲取引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RuntimeService runtimeService = processEngine.getRuntimeService();
RepositoryService repositoryService = processEngine.getRepositoryService();
TaskService taskService = processEngine.getTaskService();
ManagementService managementService = processEngine.getManagementService();
IdentityService identityService = processEngine.getIdentityService();
HistoryService historyService = processEngine.getHistoryService();
FormService formService = processEngine.getFormService();
DynamicBpmnService dynamicBpmnService = processEngine.getDynamicBpmnService();
```
**1. `flowable.cfg.xml`**
flowable的引擎配置文件,包括:ProcessEngineConfiguration的定義、數據源定義、事務管理器等,此文件其實就是一個spring配置文件。
<br/>
**2. ProcessEngineConfiguration**
流程引擎配置類,通過ProcessEngineConfiguration可以創建工作流引擎ProcessEngine,常用的子類為StandaloneProcessEngineConfiguration。
<br/>
**3. ProcessEngine**
工作流引擎(ProcessEngine),相當于一個門面接口,通過ProcessEngineConfiguration創建 ProcessEngine,通過 ProcessEngine 創建各個Service接口。
<br/>
Service服務接口是工作流引擎提供用于進行工作流部署、執行、管理的服務接口,我們使用這些接口就可以操作服務對應的數據表。
**4. RepositoryService**
資源管理類,提供了管理和控制流程發布包和流程定義的操作。
<br/>
設計好的業務流程圖需要使用接口 RepositoryService 將流程定義文件的內容部署到計算機。除了部署流程定義以外還可以:
* 查詢引擎中的發布包和流程定義。
* 暫停或激活部署中的某些流程,或整個部署。暫停意味著不能再對它進行操作,激活剛好相反,重新使它可以操作。
* 獲得多種資源,像是包含在發布包里的文件, 或引擎自動生成的流程圖。
* 獲取POJO版本的流程定義。它可以用Java而不是XML的方式查看流程。
**5. TaskService**
任務管理類。可以從這個類中獲取任務的信息。
<br/>
**6. IdentityService**
很簡單。它用于管理(創建,更新,刪除,查詢……)組與用戶。請注意,Flowable實際上在運行時并不做任何用戶檢查。例如任務可以分派給任何用戶,而引擎并不會驗證系統中是否存在該用戶。這是因為Flowable有時要與LDAP、Active Directory等服務結合使用。
<br/>
**7. RuntimeService**
流程運行管理類。可以從這個服務類中獲取很多關于流程執行相關的信息。
<br/>
**8. ManagementService**
引擎管理類,提供了對 Flowable 流程引擎的管理和維護功能,這些功能不在工作流驅動的應用程序中使用,主要用于 Flowable 系統的日常維護。
<br/>
**9. HistoryService**
歷史管理類,可以查詢歷史信息。執行流程時,引擎會保存很多數據,比如流程實例啟動時間,任務參與者, 完成任務的時間,每個流程實例的執行路徑,等等。 這個服務主要通過查詢功能來獲得這些數據。
<br/>
**10. FormService**
是可選服務。也就是說Flowable沒有它也能很好地運行,而不必犧牲任何功能。
<br/>
這個服務引入了開始表單(start form)與任務表單(task form)的概念。 開始表單是在流程實例啟動前顯示的表單,而任務表單是用戶完成任務時顯示的表單。
<br/>
Flowable可以在BPMN 2.0流程定義中定義這些表單。表單服務通過簡單的方式暴露這些數據。再次重申,表單不一定要嵌入流程定義,因此這個服務是可選的。
****
參考文檔:https://tkjohn.github.io/flowable-userguide/#apiEngine
- Activiti流程引擎
- 工作流介紹
- Activiti是什么
- Activiti流程處理步驟
- Activiti環境搭建
- 搭建步驟
- 表結構介紹
- ActivitiAPI結構
- 認識流程符號
- 流程設計器的使用
- 流程處理步驟
- 亂碼問題
- 流程實例
- 流程實例是什么
- 業務標識
- 查詢流程實例
- 掛起/激活流程實例
- 個人任務
- 分配任務負責人
- 查詢待辦任務
- 辦理權限
- 流程變量
- 流程變量類型
- 流程變量作用域
- 使用流程變量控制流程
- 組任務
- 設置任務候選人
- 組任務辦理流程
- 網關
- 4種網關類型
- 排他網關
- 并行網關
- 包含網關
- 事件網關
- Spring整合Activiti
- SpringBoot整合Activiti
- Flowable流程引擎
- Flowable是什么
- Flowable與Activiti
- Flowable環境搭建
- FlowableAPI
- 流程引擎API與服務
- 流程處理步驟
- 流程部署
- 流程部署方式
- 流程定義版本
- 刪除已部署的流程
- 下載資源
- 流程實例
- 什么是流程實例
- 業務標識
- 查詢流程實例
- 掛起/激活流程實例
- 分配任務負責人
- 固定分配
- UEL表達式分配
- 監聽器分配
- 辦理權限
- 流程變量
- 流程變量類型
- 流程變量作用域
- 流程變量控制流程
- 組任務
- 設置任務候選人
- 組任務辦理流程
- 網關
- 排他網關
- 并行網關
- 包含網關
- 事件網關
- 歷史查詢
- 查詢歷史
- Spring整合Flowable
- 配置文件整合
- 配置類整合
- SpringBoot整合Flowable