規則引擎教程--規則池

 

在規則開發過程中,往往會遇到某個規則會反覆被使用的情況。因此,我們總是希望能通過某種方式調用這些規則,也就是所能實現規則複用。我們知道在“決策樹”中,不僅可以實現規則的複用,而且還可設置複用規則執行的條件和複用規則間的條件。但是在“決策池”中,會執行“決策池”裏所有的被複用的規則,被複用規則的執行的順序與規則被引用的先後順序是一致的。

 

 

 

我們先創建一個名爲“基本工程2”的規則包,該規則包下的規則,作爲“決策池”的複用規則。

 

右鍵名爲“功能解析”的工程,點擊“新建規則包”,創建一個名爲“基本工程2”規則包。如下圖所示:



 

 

 

 

該規則包中需要在對象庫中,需要定義三個“string”類型變量:aa),bb),cc)。如下圖所示:

 



 

變量“a”“b”“c”都是在“傳入數據”中添加的,然後要在規則包對象庫的“外部調用”添加兩個方法(公式)。按下圖描述的添加:



 

 

 

這些方法是規則引擎封裝的一些常用方法,可以在“外部調用”添加這些常用方法,然後可以在規則調用。

 



 

添加了“字符截取”中“從左截取字符”的方法之後,繼續添加方法。如下圖所示:



 

 

 

點擊了“確認”之後,就在外部調用裏添加了兩個方法。如下圖:

 



 

在變量定義完成之後,然後要在規則包中實現具體規則邏輯。右鍵選擇規則包“基本工程2”添加名爲“b取值”的規則,添加過程如下所示:



 

 



 

規則添加好了之後,我們要在規則中給變量“b”賦值,賦值過程如下圖所示:

 




 
 

 

 

 

 

 

 

確認之後,規則“b賦值”就完成了。我們在規則包“基本工程2”再添加個規則“c取值”,如下圖所示:



 

最後,我們需要在規則中添加規則邏輯,如下圖所示:



 

 

 

在規則包編寫完成之後,我們要保存該規則包。點擊“全部保存”按鈕,如下圖所示:

 



 

點擊“保存全部”保存之後,規則配置器會自動保存該規則包的rpk文件和生成規則包對應的rsc文件,在消息欄可以看到如下信息:



 

 

 

“基本工程2”規則包完成之後,我們再創建一個名爲“決策池”的規則包。在規則包的“決策池”中,將調用“基本工程2”中的規則。

 

 

 

右鍵工程“功能解析”,選擇“新建規則包“,添加個名爲“決策池”的規則包。如下圖所示:



 

 



 

和規則包“基本工程2”一樣,在規則包“決策池”中,我們也需定義三個“string”類型的變量“a”,“b”,“c”。如下圖所示:

 



 

我們在規則包中添加“決策池”,在“決策池”中實現對“基本工程2”中規則的複用,添加“決策池”過程如下圖所示:



 

 

 

 

如果要實現對“基本工程2”中的規則複用,首先要在“決策池”的屬性欄的“所有規則”中找到該規則包,如下所示:

 





 

 

我們將“b取值”和“c取值”拖動到“決策池”之後,我們看到“決策池”如下圖所示:

 

 

 

 

這樣“決策池”就實現了對規則“b取值”、“c取值”複用:規則包“決策池”將會依次執行“b取值”“c取值”中的規則邏輯。

 

 

 

我們在規則邏輯完成之後,要測試規則包正確性。給規則規則包添加個“批量測試”,然後在“批量測試”中添加若干測試用例、期望結果值,最後我們只需比對測試用例的期望結果值與規則包的實際輸出結果值是否相同。若相同,則測試完成,規則包未發現錯誤;若不同,測試不通過。

 

 

 

選擇規則包,選擇“添加批量”,操作步驟如圖所示:

 



 

 



 

“批量測試”添加完成之後,我們要在該“批量測試”下添加測試用例。添加測試用例步驟如下圖所示:

 



 

 

 

按照上述步驟,我們再給“批量測試”添加兩個測試用例。添加完成後,“批量測試”如下圖所示:



 

 

測試用例添加完成之後,我們要保存並編譯規則包,如下圖所示:

 



 

點擊“全部保存”會保存規則包的rpk文件,生成規則包的rsc文件。我們可以在消息欄看到下圖信息:

 



 

最後測試該規則包,在這些測試數據下實際輸出的結果值。測試過程如下所示:

 



 

從上圖中可以發現,所有的期望結果與實際輸出結果相同,規則包測試完成!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章