一、官方文檔
英文版:https://flowable.com/open-source/docs
中文版:http://www.shareniu.com/flowable6.5_zh_document/bpm/index.html
二、概述
flowable基于bpmn2.0標(biāo)準(zhǔn)。BPMN(Business Process Model & Note)業(yè)務(wù)流程建模與標(biāo)注
BPMN基礎(chǔ)
1)流對(duì)象(Flow):
事件:圓圈表示,一個(gè)業(yè)務(wù)流程期間發(fā)生的東西,事件影響流程的流動(dòng)。
活動(dòng):圓角矩形表示,要處理的工作。
條件:菱形表示,控制序列流的分支與合并(網(wǎng)關(guān))
2)連接對(duì)象(Connection):用于將流對(duì)象連接起來。順序流、消息流和關(guān)聯(lián)。
3)泳道(Swimlane)
4)人工信息(Artifact):人員、組
flowable流程定義

三、SpringBoot整合Flawable
參考
http://www.itdecent.cn/p/e8f4e9a7bd8a
https://blog.csdn.net/liuwenjun05101/article/details/103419364
1、依賴引入
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter</artifactId>
<version>6.4.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
2、數(shù)據(jù)庫(kù)表說明
https://blog.csdn.net/huangjun0210/article/details/84951615
ACT_RE_
’RE’表示repository(存儲(chǔ))。RepositoryService接口操作的表。帶此前綴的表包含的是靜態(tài)信息,如,流程定義,流程的資源(圖片,規(guī)則等)。
ACT_RU_
’RU’表示runtime。這是運(yùn)行時(shí)的表存儲(chǔ)著流程變量,用戶任務(wù),變量,職責(zé)(job)等運(yùn)行時(shí)的數(shù)據(jù)。flowable只存儲(chǔ)實(shí)例執(zhí)行期間的運(yùn)行時(shí)數(shù)據(jù),當(dāng)流程實(shí)例結(jié)束時(shí),將刪除這些記錄。這就保證了這些運(yùn)行時(shí)的表小且快。
ACT_ID_
’ID’表示identity(組織機(jī)構(gòu))。這些表包含標(biāo)識(shí)的信息,如用戶,用戶組,等等。
ACT_HI_
’HI’表示history。就是這些表包含著歷史的相關(guān)數(shù)據(jù),如結(jié)束的流程實(shí)例,變量,任務(wù),等等。
ACT_GE_
普通數(shù)據(jù),各種情況都使用的數(shù)據(jù)。
3、創(chuàng)建流程
創(chuàng)建流程
@GetMapping("add")
@ApiOperation(value = "創(chuàng)建流程")
public String addExpense(@ApiParam(value = "流程Key", example = "holidayRequest") @RequestParam String processKey,
String userId, String days, String reason) {
Map<String, Object> map = new HashMap<>();
map.put("employee", userId);
map.put("nrOfHolidays", days);
map.put("description", reason);
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processKey, map);
return "提交成功,流程ID為:" + processInstance.getId();
}
其中的processKey為流程定義的流程標(biāo)識(shí)(ID),流程標(biāo)識(shí)(ID)從哪里來,流程定義的本質(zhì)是一個(gè)bpmn標(biāo)準(zhǔn)的xml文件,我們肯定不能手寫文件。
使用tyflow-ui-1.0.0創(chuàng)建流程定義
flowable提供了tyflow-ui-1.0.0包,下載后用tomcat部署起來,訪問ip:port可以進(jìn)入流程定義界面,進(jìn)行可視化流程定義。定義好的流程定義可以導(dǎo)出成bpmn文件,如果僅僅想用這個(gè)流程引擎不要界面的話,可以通過這種方式得到bmpn文件,放入項(xiàng)目目錄,可以供創(chuàng)建流程時(shí)引用。
若同時(shí)將tyflow-ui-1.0.0包的數(shù)據(jù)庫(kù)連接設(shè)置為和流程引擎相同的數(shù)據(jù)庫(kù),也可以直接使用數(shù)據(jù)庫(kù)的act_re_procdef表的定義。
四、常見問題
1、部署tyflow-ui-1.0.0后,原flowable服務(wù)啟動(dòng)不起來
通過tomcat部署tyflow-ui-1.0.0(從官網(wǎng)下載),數(shù)據(jù)庫(kù)鏈接配置為服務(wù)所在的數(shù)據(jù)庫(kù),可以進(jìn)行對(duì)流程定義信息進(jìn)行編輯。但要注意,tomcat啟動(dòng)時(shí),會(huì)自動(dòng)更新數(shù)據(jù)庫(kù)中act_ge_property、act_id_property兩個(gè)表的schema.version版本信息。如果org.flowable包的版本要和tyflow-ui-1.0.0的版本不一致,flowable就啟動(dòng)不了了,強(qiáng)行修改act_ge_property、act_id_property后,tyflow-ui-1.0.0又啟動(dòng)不了。所以兩者版本在開始就要保持一致。