1.什么是Flowable
大名鼎鼎的Activiti大家都有所了解,其實Flowable是Acitiviti原班人馬因為種種原因,另起的一個項目,聲稱是無成本從Activiti遷移到Flowable,
我們公司也進行了遷移,感覺成本還是有點但是不大,都是些包名和方法名的小改動。
2.都有哪幾個重要字段
在對流程引擎有一個基礎(chǔ)性的了解后,如果要深入的使用流程引擎,首先要了解其中的幾個關(guān)鍵字段。
①procInstId 流程實例Id
②taskId 任務(wù)Id
③executionId 執(zhí)行Id
④processDefinitionId 流程定義Id
⑤processDefinitionKey 流程定義Key
⑥processDefinitionName 流程定義名稱
3.這幾個Id都代表了什么在流程中是如何使用的
④⑤⑥這三個字段是屬于流程定義級別的一個流程定義的Key對應(yīng)多個流程定義Id,流程定義Id是對流程定義Key+版本的描述。
我們真正發(fā)起一個流程的時候一般會通過flowable提供的接口runtimeService中的startProcessInstanceBy**去發(fā)起,通常是用流程定義Id或流程定義Key去發(fā)起,這塊大家可以試一下,flowable的api還是比較友好的。
當啟動了一個流程后,就會得到一個流程實例,在流程執(zhí)行的過程中一個流程對應(yīng)一個流程實例Id,(子流程會另起一個流程實例),一個流程實例Id會對應(yīng)多個executionId, executionId是當流程流轉(zhuǎn)到分支節(jié)點(包含網(wǎng)關(guān)等)或子流程時原executionId會拆分成多個executionId。
對于執(zhí)行Id我們可能還需要更詳細的說明一下,因為執(zhí)行id本身并無太大的實際意義,BPMN2.0規(guī)范是這么描述執(zhí)行id的(為了方便大家讀我就截圖了,有需要的話可以直接下載BPMN2.0規(guī)范)
大概的意思是BPMN定義了一個token的概念,token是用來標識流程執(zhí)行的(很容易對應(yīng)到flowable的執(zhí)行id),然后當遇到網(wǎng)關(guān)或者子流程時這個token會合并或拆分。
taskId就是每一個任務(wù)的id。
總結(jié)一下,如果形象的拿procInstId,executionId,taskId做一個比喻的話,procInstId為一個面,executionId為在面上的一條線,taskId為在線上的一個點。
暫時就寫這些,下一篇會介紹flowable的skip和流程變量的作用域。歡迎大家積極評論與指正。