當部署一個新的流程時,Flowable 會經過如下步驟來初始化流程 key、流程 version、流程 name與流程定義 id 參數:
* XML 文件中的流程定義 id 屬性用作流程定義的 key 參數。
* XML 文件中的流程定義 name 屬性用作流程定義的 name 參數。如果未給定 name 屬性,會使用 id 作為 name。
* 對同一個流程重復部署多次,則每重復部署一次版本號就`+1`。
* 流程定義 id 參數設置為`{processDefinitionKey}:{processDefinitionVersion}:{generated-id}`,其中`generated-id`是一個唯一數字,用以保證在集群環境下,流程定義緩存中,流程 id 的唯一性。
```xml
<definitions id="myDefinitions" >
<process id="myProcess" name="My important process" >
...
```
<br/>
如果重復部署同一個流程(Flowable 用`<process id="myProcess"`其中的`id`來識別是否是同一個流程),那么在數據庫中就會增加一條數據,并且版本號`+1`。
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">id</th>
<th class="tableblock halign-left valign-top">key</th>
<th class="tableblock halign-left valign-top">name</th>
<th class="tableblock halign-left valign-top">version</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">myProcess:1:676</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">myProcess</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">My important process</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">myProcess:2:870</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">myProcess</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">My important process</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
</tr>
</tbody>
</table>
<br/>
當調用`runtimeService.startProcessInstanceByKey("myProcess")`時,會使用版本 2 的流程定義,因為這是這個流程定義的最新版本。
****
參考文檔:https://tkjohn.github.io/flowable-userguide/#versioningOfProcessDefinitions
- Activiti流程引擎
- 工作流介紹
- Activiti是什么
- Activiti流程處理步驟
- Activiti環境搭建
- 搭建步驟
- 表結構介紹
- ActivitiAPI結構
- 認識流程符號
- 流程設計器的使用
- 流程處理步驟
- 亂碼問題
- 流程實例
- 流程實例是什么
- 業務標識
- 查詢流程實例
- 掛起/激活流程實例
- 個人任務
- 分配任務負責人
- 查詢待辦任務
- 辦理權限
- 流程變量
- 流程變量類型
- 流程變量作用域
- 使用流程變量控制流程
- 組任務
- 設置任務候選人
- 組任務辦理流程
- 網關
- 4種網關類型
- 排他網關
- 并行網關
- 包含網關
- 事件網關
- Spring整合Activiti
- SpringBoot整合Activiti
- Flowable流程引擎
- Flowable是什么
- Flowable與Activiti
- Flowable環境搭建
- FlowableAPI
- 流程引擎API與服務
- 流程處理步驟
- 流程部署
- 流程部署方式
- 流程定義版本
- 刪除已部署的流程
- 下載資源
- 流程實例
- 什么是流程實例
- 業務標識
- 查詢流程實例
- 掛起/激活流程實例
- 分配任務負責人
- 固定分配
- UEL表達式分配
- 監聽器分配
- 辦理權限
- 流程變量
- 流程變量類型
- 流程變量作用域
- 流程變量控制流程
- 組任務
- 設置任務候選人
- 組任務辦理流程
- 網關
- 排他網關
- 并行網關
- 包含網關
- 事件網關
- 歷史查詢
- 查詢歷史
- Spring整合Flowable
- 配置文件整合
- 配置類整合
- SpringBoot整合Flowable