多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
当部署一个新的流程时,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