低代碼開發(fā)重要工具:jvs-rules 規(guī)則引擎功能介紹(一)(java規(guī)則引擎 drools)
JVS規(guī)則引擎變量管理
變量在規(guī)則引擎中的作用
- 數(shù)據(jù)存儲和共享:變量配置允許在規(guī)則引擎中存儲和訪問數(shù)據(jù)。通過定義變量,可以將數(shù)據(jù)存儲在規(guī)則引擎中,使其可供規(guī)則和決策過程使用。這樣可以消除重復數(shù)據(jù)存儲的需求,提高數(shù)據(jù)的共享和重用性。
- 決策邏輯的簡化:通過使用變量,可以將規(guī)則引擎中的決策邏輯抽象為更具可讀性和可維護性的形式。變量可以用于存儲和操作不同類型的數(shù)據(jù),如數(shù)字、字符串、日期等。通過使用變量,可以使規(guī)則的編寫和維護更加簡單,減少重復的代碼,并提高規(guī)則的可讀性和可維護性。
- 動態(tài)性和靈活性:變量配置允許在規(guī)則引擎中動態(tài)設置和更新變量的值。這樣,當系統(tǒng)中的數(shù)據(jù)或環(huán)境發(fā)生變化時,可以實時更新變量的值,從而影響決策過程的結(jié)果。通過改變變量的值,可以靈活地調(diào)整規(guī)則的行為,而不需要修改底層的規(guī)則邏輯。
- 與外部系統(tǒng)的集成:變量配置使規(guī)則引擎能夠與外部系統(tǒng)進行集成。變量可以用于存儲和傳遞與外部系統(tǒng)交互所需的數(shù)據(jù),如數(shù)據(jù)庫查詢結(jié)果、API調(diào)用返回值等。通過與外部系統(tǒng)的集成,規(guī)則引擎可以獲取外部數(shù)據(jù)并將其用于決策過程,從而提高決策的準確性和實時性。
- 可管理性和可維護性:通過變量配置,規(guī)則引擎中的數(shù)據(jù)和邏輯被分離開來,提高了系統(tǒng)的可管理性和可維護性。變量配置使得對數(shù)據(jù)和邏輯的修改更加簡單和集中化。通過集中管理變量,可以減少代碼的冗余性,降低錯誤的風險,并簡化對規(guī)則引擎的修改和擴展。
函數(shù)式編程實現(xiàn)變量加工
函數(shù)式編程是一種編程方法,它以類似 Excel 表格的方式進行數(shù)據(jù)處理和計算。它的特點是使用公式和函數(shù)來描述數(shù)據(jù)之間的關(guān)系和計算邏輯。
在函數(shù)式編程中,數(shù)據(jù)被組織成表格的形式,每列代表一個數(shù)據(jù)字段或變量,每行代表一個數(shù)據(jù)記錄??梢酝ㄟ^公式和函數(shù)將不同的數(shù)據(jù)字段進行計算和操作,生成新的計算結(jié)果。
以下是類 Excel 的函數(shù)式編程的特點和優(yōu)勢:
- 公式和函數(shù):類 Excel 的函數(shù)式編程使用公式和函數(shù)來表示數(shù)據(jù)之間的關(guān)系和計算邏輯??梢栽谧兞康呐渲眠^程中,引用其他入?yún)⒒蛘咦兞康闹担⑦M行各種計算、邏輯操作和數(shù)據(jù)轉(zhuǎn)換。
- 數(shù)據(jù)引用和依賴:函數(shù)式編程中,公式和函數(shù)可以引用其他數(shù)據(jù)的值,形成數(shù)據(jù)的引用和依賴關(guān)系。當被引用的單元格的值發(fā)生變化時,依賴于它的公式和函數(shù)會自動更新計算結(jié)果。
- 數(shù)據(jù)處理和轉(zhuǎn)換:通過公式和函數(shù),可以進行各種數(shù)據(jù)處理和轉(zhuǎn)換操作,例如數(shù)值計算、邏輯判斷、文本處理、日期操作等。這使得數(shù)據(jù)的加工和轉(zhuǎn)換變得簡單和靈活。
- 可視化展示:函數(shù)式編程通常提供可視化的界面來展示數(shù)據(jù)和公式的計算結(jié)果。開發(fā)者可以直觀地查看和分析數(shù)據(jù),觀察公式和函數(shù)的計算過程。
規(guī)則變量的作用范圍
在規(guī)則引擎中,全局變量和局部變量是兩種不同的變量類型,它們在作用范圍和生命周期上有所區(qū)別。
- 全局變量:全局變量是在規(guī)則引擎中定義的具有全局作用域的變量。它們可以在規(guī)則引擎的任何規(guī)則、決策或操作中被訪問和使用。全局變量通常用于存儲在整個規(guī)則引擎中共享和重復使用的數(shù)據(jù)。例如,全局變量可以用于存儲系統(tǒng)配置參數(shù)、全局計數(shù)器、共享的業(yè)務規(guī)則等。全局變量的生命周期通常與規(guī)則引擎的生命周期相同,它們在規(guī)則引擎啟動時創(chuàng)建,直到規(guī)則引擎關(guān)閉時銷毀。
- 局部變量:局部變量是在規(guī)則引擎中定義的具有局部作用域的變量。它們僅在定義它們的規(guī)則、決策或操作內(nèi)部可見和使用。局部變量通常用于存儲在特定規(guī)則或決策中臨時需要使用的數(shù)據(jù)。例如,局部變量可以用于存儲臨時計算結(jié)果、中間狀態(tài)的值或特定規(guī)則的輸入?yún)?shù)。局部變量的生命周期通常在規(guī)則或決策執(zhí)行期間有效,它們在規(guī)則或決策執(zhí)行完畢后被銷毀。
全局變量和局部變量的選擇取決于變量的作用范圍和需求。全局變量適用于在整個規(guī)則引擎中共享和重復使用的數(shù)據(jù),具有更廣泛的可見性和持久性。局部變量適用于在特定規(guī)則或決策中臨時使用的數(shù)據(jù),具有更短暫的生命周期和較小的作用范圍。正確地使用全局變量和局部變量可以提高規(guī)則引擎的性能、可讀性和維護性,同時滿足不同場景下的數(shù)據(jù)存儲和訪問需求。
變量列表展示
如圖所示,變量列表將系統(tǒng)中所有的變量界面化展示,可以通過編輯與設計對變量修改。
變量編輯
變量編輯包括變量名稱,變量的說明
變量設計器上圖所示,采用函數(shù)式編程,通過函數(shù)將左側(cè)的數(shù)據(jù)進行加工映射,生成業(yè)務場景中所需要的數(shù)據(jù)。其中函數(shù)列表中包括7大類型的函數(shù),基本上包括日常常用的一些函數(shù)方法;函數(shù)編輯區(qū)是通過偽代碼的形式實現(xiàn)的具體變量場景需求,使用的方式是類似與excel的操作方式,點擊左側(cè)函數(shù),系統(tǒng)會自動將函數(shù)引入到編輯區(qū),在右選對應接口,對應輸出的字段,成為編輯區(qū)內(nèi)函數(shù)的入?yún)ⅰ?/p>
函數(shù)引用
函數(shù)支持常用的各類函數(shù),鼠標懸空時,將顯示函數(shù)的具體說明,點擊函數(shù)時,系統(tǒng)自動將對應函數(shù)引入到變量編輯區(qū)內(nèi)容
變量的創(chuàng)建
點擊數(shù)據(jù)源,選擇對應的數(shù)據(jù)接口,或者不同的數(shù)據(jù)來源,不同場景下,左側(cè)可以選擇的數(shù)據(jù)來源有差異,根據(jù)場景的上下文系統(tǒng)自動進行判斷。
變量的配置
a、選擇數(shù)據(jù)來源,如圖所示,數(shù)據(jù)來源往往是我們經(jīng)??吹降臄?shù)據(jù)公司,每個數(shù)據(jù)公司采用相同的加密認證方式,提供多個不同的數(shù)據(jù)接口。
b、選擇對應的接口名稱
c、選擇對應的接口出參,這里的輸出數(shù)據(jù)多數(shù)以json形式存在,界面上做了解析,使用的時候可以直接選擇對應子節(jié)點的出參作為輸入變量。
d、系統(tǒng)展示篩選出來待使用的原始數(shù)據(jù),這些數(shù)據(jù)可以直接作為函數(shù)的入?yún)?/p>
e、可以引用已經(jīng)配置過的變量
變量的測試
點擊測試,系統(tǒng)展示測試界面
測試界面如圖:
輸入測試數(shù)據(jù)后,直接可以展示測試結(jié)果。
在線demo:http://jvs-rules.bctools.cn/
基礎框架開源地址:https://gitee.com/software-minister/jvs