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