JVS-rules中的“變量”概念與編程語言中的變量類似,但它們通常在規則系統中處理條件判斷、業務結果複製場景,如下所示:
- 條件判斷:在規則引擎中,規則通常由兩個部分組成:條件和分支。變量用於描述條件部分中的數據和狀態。例如,一個規則可能是:“如果温度超過30度,則執行打開空調的分支”。這裏的“温度”就是一個變量,它描述了一個條件。
- 動作執行:當規則引擎確定某個規則的條件滿足時,與該規則節點執行後續的操作或者跳轉結束節點。變量也可以在動作中使用,以便根據條件的滿足情況來執行相應的操作。
- 上下文信息:變量可以用來在規則執行過程中傳遞上下文信息。這意味着在規則引擎中,變量可以代表各種數據,例如傳感器讀數、用户輸入等。
- 動態性:規則引擎通常允許在運行時動態地修改變量的值或屬性,以便適應不同的場景或條件。
- 作用域:變量可能有不同的作用域,取決於規則引擎的設計。一些規則引擎可能會將變量限制在特定的規則中,而另一些可能允許變量在整個規則集中共享。
- 數據類型:變量可以具有不同的數據類型,例如數值、字符串、布爾判斷值,具體取決於規則引擎的實現。
- 決策支持:規則引擎中的變量用於支持決策過程,使得規則可以根據不同的條件和數據進行靈活的決策。
那麼我們如何理解複合變量與基礎變量呢?
基礎變量
"基礎變量"通常指的是編程中的基本數據類型,也叫做原始數據類型或簡單數據類型。這些基本數據類型是決策中直接支持的最基本的數據類型,它們通常包括數值、字符、布爾值等。
這種類型的變量我們通常可以通過函數加工去做數據轉換例如 y=f(x) ,那麼 y 和 x 都是變量 ,我們可以通過把 x 傳入函數進行加工,然後獲得新的數據,系統中提供了大量函數加工的 方法,如下圖所示:
①:定義的一變量名 :Y
②:定義的變量的説明備註
③:選擇這個變量加工的函數,系統提供了100+的標準函數,這裏可以自定義擴展自己所需要的函數
④:入參列表選擇窗,這裏可以是選擇整個決策的入參、可以選擇外部API輸出的結果,也可選擇系統中已經存在的變量(嵌套使用)
⑤:具體加工Y 的函數配置表達式
按照上述的例子 ,整個過程就是在調用這個決策的時候,業務調用方傳入:(1,2)兩個參數,那麼 X1=1 ,X2=2,在後續的執行過程中 Y=3,可以用於判斷、賦值等多個場景使用。
複合變量
那麼什麼又是複合變量呢?這裏我們可以簡單理解為複合變量可以 想成 一張經過加工後的 數據表(多行數據),這裏複合變量就是通過對一個數據庫的表進行查詢,做了相應的數據過濾,然後獲得的數據結果,那麼這個變量中就表示了多行數據
如上圖所示,這個變量獲取的方式 是來源於數據庫的數據查詢,然後在界面上通過流程化的數據加工(過濾、關聯、轉換等操作),然後把需要的多行數據放如到變量之中。
那麼這種複合變量如何使用呢?
• 我們可以把這種變量作為明細查詢的數據,通過規則的結果值返給業務端,如下圖所示
- 也可以對變量進行嵌套加工,把一個複合變量傳化為一個基礎變量,再用於規則的判斷,系統中提供了對集合操作(複合變量輸出的結果)的函數,如下圖所示,可以將複合變量轉換為基礎變量。
-
複合變量的加工方式,如下圖所示,包括數據數據過濾、多表關聯、數據分組彙總等等各種操作
①:各種數據加工的算子
②:通過流程化、拖拽化的方式,把各種算子鏈接起來,實現各種多行數據的加工處理,包括 數據的增刪改查、數據的跨庫、跨API等各種加工操作
③:對不同算子的具體的配置操作變量使用的總結
基礎變量就是對單一的數據進行加工, 複合變量就是對多行數據進行加工(實現重複、循環的數據加工操作),複合變量可以通過函數加工 轉換為基礎變量。
下一期詳細介紹變量中函數的操作説明
在線demo:http://rules.bctools.cn/
gitee地址:https://gitee.com/software-minister/jvs-rules
往期乾貨回顧
金融信貸風控系統,用jvs規則引擎就夠了
規則引擎(JVS-rules):從應用到場景的全面解析
JVS規則引擎,打造智能自動化決策的利器