JBPM流程部署之流程版本公升級

2021-09-08 15:39:12 字數 1727 閱讀 8425

jbpm流程部署之流程版本公升級

流程定義是根據流程定義描述語言(jpdl)對現實業務需求的抽象,是對現實業務需求的高度抽象化;現實中對於同乙個流程定義,很少會一成不變,很多時候隨著時間的流逝,我們的業務流程有少許的變化,那麼我們就需要對流程進行一些改變,這個時候就會涉及到流程的版本公升級的問題。今天我們來了解一下jbpm的版本公升級的相關執行,最後我們會對jbpm的現有版本公升級進行擴充套件思考。

以下是我對jbpm流程版本公升級的相關知識的思考,結合下圖我們展開今天的學習

流程的基本屬性

name,流程的名稱,在與使用者互動時,用於標示不同的流程,主要用於介面展示

key,流程的鍵,用於標示同一類流程,如果沒有顯式的指定,那麼就會使用name,但是name中的非字母和數字字元會被下劃線替換掉

langid,標示當前的流程定義使用的流程描述語言jpdl的版本,如果沒有顯式的指定,就會使用當前版本

pdversion,標示同類流程的不同版本,如果顯式的指定版本,那麼首次部署流程版本號為一,以後每次部署版本號逐次遞增一

pdid,流程的唯一標示,每個流程都會對應乙個唯一的流程id,流程id由系統預設生成,格式 key=version

jbpm預設公升級模式

預設情況下,jbpm要求具有相同name的流程都具有相同的key,同具有相同key的流程也必須都具有相同的name;所以key和name從程式設計實現來說代表的意義是相同的,都代表同一種型別的流程,但是兩者的業務職責不同,前者用於ui展現,後者用於**使用;

對於公升級模式,如果沒有顯式的指定流程版本,jbpm會通過流程的key查詢現有的最新的流程,如果存在就在現有最新版本的流程的基礎上,版本號自增一,否則直接將版本賦值為一;不過流程是否更改都會是這樣的一種方式。

擴充套件jbpm的流程公升級模式

在現實的情況下,jbpm預設的流程版本公升級模式往往很那滿足我們的業務需求,我們往往需要根據我們自己的業務需求,來定製我們的公升級策略。

影響流程版本公升級的元素

流程定義屬性:這裡是指jpdl中process元素承載的一些配置資訊

節點相關: 節點的屬性

節點的出弧和入弧

新增節點

刪除節點

弧線相關: 弧的屬性

弧的源節點、目的節點

新增弧刪除弧

擴充套件後的公升級模式

每次部署都進行版本公升級(jbpm現有的策略)

每次部署都不進行版本公升級

每次部署只有新增和刪除節點的情況下版本公升級(預設策略)

使用者自定義公升級策略,使用者實現我們定義的介面,執行時進行**注入,我們將最新的流程和待部署的流程相關資訊傳給介面,使用者最後返回是否進行公升級即可

擴充套件後公升級模式的配置

我們需要新引入乙個配置流程版本公升級策略的xml(後續也會用於流程例項遷移策略的配置),同時我們也需要一流程版本公升級的管理類,對於這個類的例項化,我們既可以採用jbpm現有的ioc方式,在流程引擎初始化的時候讀取配置檔案,也可以在流程部署的時候動態的讀取配置檔案;

前者的好處是,配置檔案只需要讀取一次,後者需要每次部署流程都讀取,而且管理類是延遲例項化,並且例項化後會進行全域性快取,相對來說效率還好點吧,但是實現起來比較繁瑣.,同時修改了流程版本公升級策略不能即時生效,需要重啟流程引擎

JBPM流程部署之流程版本公升級

jbpm流程部署之流程版本公升級 流程定義是根據流程定義描述語言 jpdl 對現實業務需求的抽象,是對現實業務需求的高度抽象化 現實中對於同乙個流程定義,很少會一成不變,很多時候隨著時間的流逝,我們的業務流程有少許的變化,那麼我們就需要對流程進行一些改變,這個時候就會涉及到流程的版本公升級的問題。今...

JBPM流程部署之流程例項遷移

jbpm流程部署之流程例項遷移 前面我們已經學習了jbpm的流程版本公升級,流程版本公升級給我們帶來了乙個新的問題,那就是流程例項遷移 那麼什麼是流程例項的遷移呢?流程例項的遷移就是在流程發布的時候進行了版本公升級,這個時候如果我們讓已經執行的同乙個流程的例項,按照新版本的流程定義來流轉。流程例項的...

JBPM流程部署之流程例項遷移

jbpm流程部署之流程例項遷移 前面我們已經學習了jbpm的流程版本公升級,流程版本公升級給我們帶來了乙個新的問題,那就是流程例項遷移 那麼什麼是流程例項的遷移呢?流程例項的遷移就是在流程發布的時候進行了版本公升級,這個時候如果我們讓已經執行的同乙個流程的例項,按照新版本的流程定義來流轉。流程例項的...