本書內(nèi)容實用而全面,旨在幫助讀者熟悉Flowable流程引擎的基本概念、構(gòu)建流程模型、實施工作流、集成系統(tǒng),并解決在實際應(yīng)用中遇到的問題。它為Java開發(fā)人員在流程引擎編程領(lǐng)域提供了豐富的知識和實戰(zhàn)經(jīng)驗。同時,本書詳細介紹了Flowable流程引擎各組件API及其實戰(zhàn)應(yīng)用,并以通俗易懂的語言講解引擎設(shè)計原理、源碼和進階用法,有助于開發(fā)者進一步優(yōu)化系統(tǒng)。如果你正在開發(fā)、調(diào)試及維護Flowable流程引擎系統(tǒng),那么本書將是你寶貴的資料。
金楊杰,2015年畢業(yè)于廣東工業(yè)大學(xué)電子信息工程專業(yè),本科學(xué)歷。一直就職于大型國有企業(yè),專注政企類項目系統(tǒng)。曾對接省公安廳、政數(shù)局、農(nóng)業(yè)農(nóng)村局、地市廣播電視臺、寶鋼集團等單位企業(yè),作為技術(shù)負責(zé)人和項目經(jīng)理,開發(fā)OA、ERP、CRM、綜合運維、電子商務(wù)等業(yè)務(wù)系統(tǒng),有一線豐富的復(fù)雜業(yè)務(wù)流程應(yīng)對經(jīng)驗和工作流開發(fā)經(jīng)驗。
目 錄
第1章 走近工作流 1
1.1 工作流基礎(chǔ) 1
1.1.1 工作流 1
1.1.2 業(yè)務(wù)流程管理 1
1.1.3 業(yè)務(wù)流程建模標注 2
1.2 Flowable體系概述 2
1.2.1 工具組件 2
1.2.2 核心實現(xiàn) 3
1.2.3 引擎服務(wù) 4
1.2.4 數(shù)據(jù)庫表 5
1.3 Flowable與Activiti、低代碼的區(qū)別與聯(lián)系 6
1.3.1 Flowable與Activiti 6
1.3.2 Flowable與低代碼 6
本章小結(jié) 7
第2章 啟動Flowable流程引擎 8
2.1 開發(fā)環(huán)境 8
2.1.1 JDK安裝 8
2.1.2 MySQL安裝 9
2.1.3 Maven安裝 9
2.1.4 IDE安裝 9
2.2 流程設(shè)計器 9
2.2.1 Flowable Designer 10
2.2.2 Flowable Modeler 10
2.2.3 外部設(shè)計器 12
2.3 啟動第一個完整流程 13
2.3.1 創(chuàng)建項目 14
2.3.2 創(chuàng)建流程引擎 15
2.3.3 創(chuàng)建流程定義文件 17
2.3.4 部署流程定義文件 19
2.3.5 啟動流程實例 20
2.3.6 查詢與完成任務(wù) 21
2.3.7 實現(xiàn)JavaDelegate 22
2.3.8 使用歷史數(shù)據(jù) 23
本章小結(jié) 24
第3章 集成Spring Boot 25
3.1 搭建項目 25
3.1.1 創(chuàng)建Spring Boot項目 25
3.1.2 加入Flowable依賴包 28
3.1.3 添加數(shù)據(jù)源 29
3.2 REST支持 30
3.2.1 添加REST依賴 30
3.2.2 添加流程文件 30
3.2.3 Service層代碼示例 31
3.2.4 Controller層代碼示例 31
3.3 Spring及Flowable原理 33
3.3.1 Spring構(gòu)建過程 33
3.3.2 Flowable流程引擎構(gòu)建過程 34
3.3.3 Flowable引擎配置 36
本章小結(jié) 37
第4章 流程部署 38
4.1 流程部署方式 38
4.1.1 classpath部署 39
4.1.2 Spring Boot自動部署 39
4.1.3 字符串部署 40
4.1.4 流式部署 40
4.1.5 ZIP壓縮包部署 41
4.1.6 BpmnModel部署 41
4.2 流程部署管理 42
4.2.1 獲取已部署的流程列表 42
4.2.2 讀取流程圖片 43
4.2.3 讀取流程定義的XML內(nèi)容 43
4.2.4 刪除部署 43
4.3 部署原理 44
4.3.1 初始化部署器 44
4.3.2 部署過程 45
4.3.3 實際部署 46
本章小結(jié) 47
第5章 流程變量和表單 48
5.1 流程變量 48
5.1.1 運行時變量 48
5.1.2 歷史變量 49
5.2 表單 49
5.2.1 內(nèi)置表單 49
5.2.2 外部表單 50
5.2.3 表單字段類型 53
5.2.4 自定義表單字段類型 53
5.2.5 自定義表單引擎 55
本章小結(jié) 56
第6章 集成JPA 57
6.1 JPA支持 57
6.2 JPA版本的請假流程 58
6.2.1 簡單的請假流程 58
6.2.2 在啟動流程時持久化JPA實體 60
6.2.3 更改JPA實體的屬性 63
6.2.4 清理歷史變量表的數(shù)據(jù) 64
本章小結(jié) 65
第7章 用戶和組 66
7.1 指派用戶和組 66
7.1.1 指派用戶 66
7.1.2 指派潛在的用戶 67
7.1.3 指派潛在的組 67
7.1.4 指派潛在的用戶和組 68
7.1.5 自定義指派 68
7.2 身份管理 69
7.3 流程啟動認證 70
7.4 集成LDAP 71
本章小結(jié) 72
第8章 事件 73
8.1 啟動事件 73
8.1.1 空啟動事件 73
8.1.2 定時器啟動事件 74
8.1.3 消息啟動事件 75
8.1.4 信號啟動事件 76
8.1.5 異常啟動事件 76
8.2 結(jié)束事件 77
8.2.1 空結(jié)束事件 77
8.2.2 異常結(jié)束事件 77
8.2.3 終止結(jié)束事件 78
8.2.4 取消結(jié)束事件 78
8.3 事件定義 79
8.3.1 定時器事件定義 79
8.3.2 錯誤事件定義 81
8.3.3 信號事件定義 81
8.3.4 消息事件定義 84
本章小結(jié) 86
第9章 事件進階 87
9.1 邊界事件 87
9.1.1 定時器邊界事件 87
9.1.2 錯誤邊界事件 89
9.1.3 信號邊界事件 91
9.1.4 消息邊界事件 91
9.1.5 取消邊界事件 91
9.1.6 補償邊界事件 92
9.2 捕獲中間事件 93
9.2.1 定時器捕獲中間事件 93
9.2.2 信號捕獲中間事件 93
9.2.3 消息捕獲中間事件 94
9.3 拋出中間事件 94
9.3.1 空拋出中間事件 94
9.3.2 信號拋出中間事件 95
9.3.3 補償拋出中間事件 95
9.4 事件調(diào)度實現(xiàn)原理 97
本章小結(jié) 100
第10章 任務(wù) 101
10.1 常用的任務(wù)類型 101
10.1.1 用戶任務(wù) 101
10.1.2 JavaService任務(wù) 102
10.1.3 業(yè)務(wù)規(guī)則任務(wù) 106
10.2 任務(wù)管理 107
10.2.1 任務(wù)完成 107
10.2.2 任務(wù)相關(guān)人員 107
10.2.3 查詢?nèi)蝿?wù)列表 109
10.2.4 任務(wù)簽收與反簽收 109
10.2.5 任務(wù)委派 109
10.3 子任務(wù) 110
10.3.1 創(chuàng)建子任務(wù) 110
10.3.2 查詢子任務(wù) 110
10.3.3 子任務(wù)的意見列表 111
本章小結(jié) 111
第11章 任務(wù)進階 112
11.1 HTTP任務(wù) 112
11.1.1 配置客戶端 112
11.1.2 配置HTTP任務(wù) 113
11.1.3 結(jié)果變量 115
11.1.4 錯誤處理 115
11.2 Web服務(wù)任務(wù) 117
11.2.1 I/O規(guī)范 118
11.2.2 數(shù)據(jù)輸入關(guān)聯(lián) 119
11.2.3 數(shù)據(jù)輸出關(guān)聯(lián) 120
11.3 腳本任務(wù) 120
11.3.1 腳本中的變量 121
11.3.2 腳本任務(wù)的返回值 122
11.4 接收任務(wù)和Shell任務(wù) 122
11.4.1 接收任務(wù) 122
11.4.2 Shell任務(wù) 124
11.5 執(zhí)行監(jiān)聽器 125
11.6 任務(wù)監(jiān)聽器 127
11.7 監(jiān)聽器原理 129
11.7.1 創(chuàng)建及觸發(fā)監(jiān)聽器 129
11.7.2 自定義監(jiān)聽器攔截 132
本章小結(jié) 133
第12章 順序流和網(wǎng)關(guān) 134
12.1 順序流 134
12.1.1 條件順序流 134
12.1.2 默認順序流 135
12.2 網(wǎng)關(guān) 135
12.2.1 排他網(wǎng)關(guān) 136
12.2.2 并行網(wǎng)關(guān) 137
12.2.3 包容網(wǎng)關(guān) 138
12.2.4 事件網(wǎng)關(guān) 140
本章小結(jié) 142
第13章 多實例活動 143
13.1 多實例配置 143
13.1.1 多實例數(shù)量 144
13.1.2 多實例結(jié)束 145
13.2 應(yīng)用實例——用戶任務(wù) 145
13.2.1 順序方式 146
13.2.2 并行方式 147
13.2.3 設(shè)置結(jié)束條件 148
13.3 應(yīng)用實例——請假會簽 149
13.3.1 任務(wù)事件節(jié)點定義 149
13.3.2 連接節(jié)點定義 151
13.3.3 執(zhí)行流程 152
13.4 審批意見 153
13.5 附件 154
本章小結(jié) 156
第14章 流程數(shù)據(jù)查詢 157
14.1 標準查詢 157
14.1.1 運行時查詢 158
14.1.2 歷史查詢 158
14.2 Native查詢 159
14.2.1 運行時查詢 161
14.2.2 歷史查詢 162
14.3 自定義SQL查詢 163
14.3.1 基于注解的映射語句 163
14.3.2 基于XML的映射語句 164
本章小結(jié) 168
第15章 子流程、調(diào)用活動與事務(wù) 169
15.1 子流程 169
15.1.2 事件子流程 171
15.1.3 事務(wù)子流程 173
15.2 調(diào)用活動 176
15.2.1 傳遞變量 177
15.2.2 引用同一個部署單元中的流程 178
15.2.3 示例 178
15.3 事務(wù)與并發(fā) 179
15.3.1 異步延續(xù) 179
15.3.2 失敗重試 181
15.3.3 排他作業(yè) 181
本章小結(jié) 184
第16章 進階用法 185
16.1 高并發(fā)ID生成器 185
16.2 多租戶 188
16.2.1 租戶ID傳遞 189
16.2.2 空租戶 190
16.3 異步執(zhí)行器 191
16.3.1 異步執(zhí)行器的設(shè)計 191
16.3.2 配置異步執(zhí)行器 193
16.3.3 集成消息隊列 194
16.4 事件日志 199
16.5 安全腳本 202
本章小結(jié) 204
第17章 元素行為 205
17.1 行為類的架構(gòu) 205
17.2 事件行為類的原理 207
17.2.1 空啟動事件行為 207
17.2.2 消息啟動事件行為 209
17.3 任務(wù)行為類的原理 211
17.3.1 用戶任務(wù)行為 211
17.3.2 服務(wù)任務(wù)行為 215
17.4 網(wǎng)關(guān)行為類原理 218
本章小結(jié) 222
第18章 設(shè)計模式 223
18.1 策略模式 223
18.1.1 策略模式的應(yīng)用實例 223
18.1.2 策略模式在引擎中的應(yīng)用 225
18.2 狀態(tài)模式 227
18.2.1 狀態(tài)模式的應(yīng)用實例 227
18.2.2 狀態(tài)模式與策略模式的區(qū)別 230
18.3 命令模式 231
18.3.1 命令模式的應(yīng)用實例 231
18.3.2 命令模式在引擎部署中的應(yīng)用 234
18.4 觀察者模式 237
18.4.1 觀察者模式的應(yīng)用實例 237
18.4.2 觀察者模式在引擎中的應(yīng)用 239
本章小結(jié) 241
第19章 案例管理模型 242
19.1 基礎(chǔ)概念 242
19.2 一個簡單的CMMN案例模型 243
19.2.1 創(chuàng)建新工程 244
19.2.2 案例定義 245
19.2.3 部署與執(zhí)行 247
19.3 CMMN結(jié)構(gòu) 251
19.3.1 基本結(jié)構(gòu) 251
19.3.2 CMMN任務(wù) 253
19.3.3 腳本任務(wù) 256
19.3.4 事件監(jiān)聽器 258
19.4 哨兵計算 262
19.4.1 默認行為 263
19.4.2 事件觸發(fā)模式 264
19.5 計劃項控制 266
19.5.1 重復(fù)規(guī)則 266
19.5.2 手動激活規(guī)則 266
19.5.3 必需規(guī)則 268
19.5.4 中立完成規(guī)則 270
19.6 CMMN配置與部署 271
19.6.1 數(shù)據(jù)庫表名稱 271
19.6.2 部署緩存配置 271
19.6.3 日志 271
19.6.4 CMMN部署 272
19.7 CMMN API 272
19.7.1 CMMN引擎與服務(wù) 273
19.7.2 查詢數(shù)據(jù) 273
19.7.3 變量 274
本章小結(jié) 274
第20章 決策模型標記 275
20.1 DMN結(jié)構(gòu) 275
20.1.1 決策定義 275
20.1.2 決策表 275
20.1.3 命中策略 277
20.1.4 輸入表達式和輸出表達式 277
20.1.5 匹配規(guī)則 279
20.1.6 BPMN 2.0流程中的應(yīng)用 280
20.2 Flowable DMN引擎配置 282
20.2.1 引擎配置 282
20.2.2 數(shù)據(jù)庫表名稱 283
20.2.3 部署緩存配置 283
20.2.4 日志 284
20.3 DMN部署 284
20.3.1 部署方式 284
20.3.2 決策定義版本 285
20.4 DMN API 285
20.4.1 DMN引擎和服務(wù) 285
20.4.2 查詢數(shù)據(jù) 286
20.4.3 Web中的DMN引擎 287
本章小結(jié) 287