本文介紹基於開源規則引擎LiteFlow,如何開發規則設計器,在低程式碼平臺中整合規則引擎,並在專案中實現應用的效果。由於低程式碼平臺使用規則引擎實現了邏輯編排的需求,所以本文中的叫法為“邏輯設計”、“邏輯編排”、“邏輯流引擎”等。
邏輯設計(規則設計),可以將複雜且多變的業務規則從硬編碼中解耦,封裝成獨立、可複用的業務元件,透過視覺化規則設計器按業務需求編排業務元件的執行邏輯,使得業務規則的變更無需修改專案程式碼、不用重啟伺服器就可以線上上環境立即生效,實現靈活應對業務需求變化。比如說訂單價格計算,有折扣、滿減、促銷券、會員等級,不同會員等級在不同促銷場景下(618、雙11等),計算價格的規則是不一樣的,這種需求就可以進行規則編排,面對業務需求快速變化,能夠及時調整應對。
邏輯設計的使用步驟包括:邏輯元件定義和註冊--->邏輯流設計編排--->呼叫邏輯流
1)邏輯元件定義和註冊:將執行邏輯的程式碼註冊成元件,以供後面進行邏輯流的編碼。
2)邏輯流設計編排:透過設計器對元件的執行順序、規則進行編排,形成可執行的邏輯流模型。
3)業務呼叫邏輯流:在表單、流程等擴充套件事件中透過HTTP或者Java API進行邏輯流的呼叫,來執行整個流程。
1.邏輯元件定義和註冊
LiteFlow規則引擎支援多種開發語言開發邏輯元件,包括Java、Groovy、JavaScript等;其中後兩者又屬於指令碼元件,可以進行線上註冊和程式碼編寫。前者則是需要在後端專案中寫程式碼邏輯,並透過註解宣告為一個元件,然後再透過頁面將其給註冊出來。
2.邏輯流視覺化設計編排
邏輯元件開發完成並註冊後,接下來就可以設計邏輯流了,開啟邏輯流設計器(規則設計器),線上視覺化設計邏輯流,可以直接複用註冊的邏輯元件,也可以在設計器裡直接定義邏輯元件。
設計好了邏輯流模型後,可以進行模擬測試,點選模擬測試,彈出模擬測試框。
在進行模擬測試時,可以填寫或修改邏輯流的入參變數。填寫好後點選右下角測試按鈕,即可展示測試結果。
3.業務如何呼叫邏輯流
設計好我們的邏輯流模型後應該怎麼去呼叫,我們目前提供了兩種方式,分別是HTTP呼叫,和在後端程式碼中透過Java介面來呼叫執行。
我們首先來構建一個場景,以購物網站購物下單計算價格為例。通常我們網購時都會有各種優惠,比如滿減、會員折扣、優惠券等等,這些優惠有時候會有有時候沒有,這時我們可以透過邏輯流來編排我們訂單價格計算的邏輯。首先我們要把不同的計算邏輯給獨立成不同的元件。然後透過我們的邏輯流設計器把元件關聯起來。
下面就是我們編排好的邏輯流模型,每個元件都有他們自己的職責,我們可以隨意的更改我們的計算邏輯,比如去除滿減活動,新增520促銷活動的邏輯元件,更換兩個元件的執行順序。
然後在表單按鈕點選事件裡,自定義指令碼透過HTTP服務呼叫邏輯流來計算訂單價格,這樣就實現了業務和邏輯流引擎的整合。如果是後端開發需要呼叫邏輯流,可以直接使用Java API 呼叫。