SpringBoot + Flowable的基礎使用,完整例子

首先是因為自己目前的項目中需要用到工作流,因為來公司之前就已經選好了:Flowable。這一次也是對自己這兩天學習flowable的記錄。希望也能幫助到有需要的朋友們。

因為之前自己學習的時候在網上找的資料都比較雜,要么這篇文章缺這個,要么那篇文章卻那個,導致自己很多東西不理解,只看到別人貼出的結果圖,卻不知道怎么做出來的。

1. 我用的IDEA創建SpringBoot項目,我的項目版本是:2.2.0.RELEASE,這一步我就不貼出來了,

2. 然后在pom文件中引入jar包:


3. 添加一個數據源,我這里添加的mysql,Flowable需要持久化數據。這個是我的配置文件 application.yml:


4. 啟動項目,可以看到數據庫中創建了很多flowable默認的表,其中有flowable歷史流程相關的(eg: ACT_HI開頭的...),運行中相關的(eg: ACT_RU開頭的....),用戶用戶組信息相關(eg: ACT_ID開頭的...):?


5. 將springboot與flowable整合完成之后,就可以進行工作流的開發了,

flowable建議采用業界標準BPMN2.0的XML來描述需要定義的工作流。所以我們需要在項目中創建一個流程定義,下面這個是我創建的一個xml定義, 截圖不全,源碼中有:


看到這里是不是覺得這個文件很復雜,至少對于之前沒有用過工作流的我來說看著很復雜的,看不懂。然后在晚上一系列搜索,有的說可以用eclipse的自帶插件生成,我用的又是IDEA,

所以找到一篇文章:flowable+tomcat部署flowable項目,在線畫流程圖。原文鏈接:https://www.wandouip.com/t5i212543/

在我們下載安裝好tomcat之后,可以通過:https://github.com/flowable/flowable-engine/releases/download/flowable-6.4.0/flowable-6.4.0.zip? 下載flowable的zip文件

下載下來解壓之后,我們把flowable-6.4.0/wars 下的所有war包復制到tomcat/webapps下面:


復制過去之后,啟動tomcat,上面紅線圈起來的文件夾是tomcat啟動之后自動解壓生成的:


啟動過程可能有點慢,要全部啟動flowable的這幾個服務,看到下面這個就啟動完成了:


啟動成功之后,可以登陸創建流程:http://localhost:8080/flowable-modeler?:


可以開始創建:


這個就是我創建的一個流程:


審批流程:1.創建流程->ApproveRequest->通過審批->執行SuccessService業務->流程到firstApproveTask節點........結束。??ApproveRequest->審批不通過->執行失敗業務->結束

創建完成之后:可以導出BPMN2:


可以打開下載的文件,自動轉成xml格式,是不是很方便,不用自己全部寫:


然后再把這個下載文件拷貝項目中: resources/processes/? 目錄下:


然后可以在Controller文件中創建接口測試這個工作流:


這些是我引入的flowable相關的,接下來創建流程:


userId: 創建人id, days:請假天數 , reason:請假原因。

方法里邊把這些參數傳入map中的key就是流程變量,后面的方法可以取出來使用。holidayRequest: 就是xml文件中<process>標簽的id,就是之前創建的流程定義。

接下來可以在postman中測試一下:


可以看到postman測試成功,數據庫表中有了相應數據。

然后可以創建顯示流程圖的接口:


在postman中傳入流程id測試一下:


大家可以看到查詢出了之前在flowable中創建的流程定義,并且可以看到當前流程在Approverequest這個節點(紅線圈起來的),因為之前只是用戶提交了審批流程。所以現在到了第二個節點。

接著創建審批通過接口:



可以看到接口中的approved,就是流程定義中${approved}變量,畫流程圖的時候可以定義。如果傳入的為true則執行上面的流程邏輯,false則執行下面的。

接著我們再測試一下,可以看到審批通過:


再看一下流程圖:


可以看到同一個流程實例,流程又到了下一個節點。

我們可以查詢一個指定用戶/用戶組的任務列表:



xml中的flowable:candidateGroups = "first" 說明這個任務只有用戶組為first的用戶才可以執行、查詢。

上面可以看到流程已經到了firstApprovedTask節點,說明只有first用戶組才可以查詢或執行。我們再測試一下:


大家可以看到當傳入 managers的時候,是查不出來任務數據的,傳入first的時候就可以查詢出來了。說明是正確的。

Controller中還有一些其他方法,我就沒有全部貼出來:

包括:1. 查詢歷史流程記錄,2.?駁回流程實例 , 3.??終止流程實例 ,4.??掛起流程實例

? ? ? ? ? ?5. 恢復(喚醒)被掛起的流程實例, 6.?判斷傳入流程實例在運行中是否存在

? ? ?7.?判斷流程實例在歷史記錄中是否存在?

其他的功能還在探索,以上就是我學習flowable這兩天的一些收獲。如果某些地方不對的,還請大家指出來,謝謝。

本文源碼地址:https://github.com/ImPYJ/FlowableDemo

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,967評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,273評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,870評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,742評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,527評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,010評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,108評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,250評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,769評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,656評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,853評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,371評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,103評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,472評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,717評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,487評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,815評論 2 372