????????本篇主要講解URule規(guī)則快速測試、仿真測試方法、代碼中調(diào)用URule方法和配置URule restful接口方法及調(diào)用示例。
????????URule提供了方便的測試方法和簡明的調(diào)用API,在代碼調(diào)用前一般先通過URule提供的測試方法進行測試,測試無誤后再進行API調(diào)用。
????????在URule中不能直接調(diào)用規(guī)則文件,在測試和API調(diào)用前,我們需要先將定義好的規(guī)則文件放到知識包中,然后才可以對規(guī)則文件進行調(diào)用。創(chuàng)建知識包方法步驟如下。
????????1.點擊項目列表樹“知識包”節(jié)點打開知識包維護界面,點擊上方“添加包”按鈕,然后在對話框中輸入包ID、包名稱等字段后點擊下方“保存”按鈕

? ? ? ? 2.點擊選中剛添加的知識包記錄,然后點擊右側“添加文件”按鈕

? ? ? ? 3.知識包審核
????????知識包支持“審核”功能,新添加的知識包默認審核狀態(tài)為“未通過”,“未通過”的知識包是無法被調(diào)用的,若要允許被調(diào)用點擊審核按鈕修改審核狀態(tài)即可,如圖


????????5.1)快速測試
????????快速測試是URule提供的測試方法之一,通過快速測試可以快速確定編寫規(guī)則過程中是否存在明顯錯誤。
????????具體使用步驟為:
????????點擊項目列表樹中知識包節(jié)點->打開知識包維護頁面->點擊添加知識包按鈕->點擊添加文件按鈕->點擊審核通過按鈕->點擊快速測試按鈕->輸入客戶必填業(yè)務字段->點擊測試決策流->查看測試結果。
????????執(zhí)行結果:


????????日志信息:


????????5.2)仿真測試
????????仿真測試是URule提供的一個強大測試工具,通過他可以對編寫出的URule規(guī)則進行嚴格的完整的測試。仿真測試需要制定測試方案,并編寫測試用例數(shù)據(jù)和定義預期結果。
????????具體使用步驟為:
????????點擊仿真測試按鈕打開仿真測試頁面->定義測試方案->配置Excel測試模板->下載Excel模板->在Excel模板添加測試用例數(shù)據(jù)->上傳修改后含測試數(shù)據(jù)模板文件->運行測試方案->查看測試報告
????????1. 定義測試方案方法
????????點擊“添加新的測試方案”按鈕,然后輸入方案名稱和描述


? ? ? ? 2.配置Excel測試模板
????????點擊“Excel模板配置與下載”進入配置頁面

? ? ? ? 3.保存并下載Excel模板
????????點擊“展開”并選擇輸入數(shù)據(jù)字段和預期結果字段,然后點擊“保存”按鈕進行保存,再點擊“Excel模板配置與下載”會重新打開配置頁面,然后點擊“下載Excel模板”下載一個模板文件

? ? ? ? 4.在Excel模板添加測試用例數(shù)據(jù)


? ? ? ? 5.上傳修改后含測試方案數(shù)據(jù)模板文件
????????點擊圖中選擇文件按鈕,選擇含測試方案數(shù)據(jù)模板文件,然后點擊“確定”按鈕進行上傳

? ? ? ? 6.運行測試方案
????????先點擊方案右側“運行”圖標,然后點擊對話框中“運行”


????????7.查看測試報告
????????點擊“運行完成,點擊查看報告”,便可以查看到URule根據(jù)測試模板及數(shù)據(jù)生成的測試報告


????????5.3) 代碼調(diào)用
????????1.Java代碼中調(diào)用URule規(guī)則示例代碼如下

????????2.實際業(yè)務當中,我們除了會做單條規(guī)則計算外,還有可能需要運行規(guī)則引擎來處理一大批數(shù)據(jù),這些數(shù)據(jù)可能有幾萬條,幾十萬條,甚至更多。在這種情況下,如果我們還是采用普通的KnowledgeSession在一個線程里處理大批量數(shù)據(jù)的話,那么引擎還是只能在當前線程里運行,這樣就會需要很長的時間才能可能將這幾十萬條甚至更多的數(shù)據(jù)處理完成,在這個時候,為了充分利用服務器較強的CPU性能,我們可以使用BatchSession利用多線程并行處理這些數(shù)據(jù),批量調(diào)用示例如下

? ? ? ? 上面僅列出了單次調(diào)用和批量調(diào)用URule方法,更多更詳細API介紹及使用方法請訪問這篇文章介紹(http://www.bstek.com/resources/doc/13dai-ma-zhong-diao-yong.html)。
? ? ? ? 5.4)接口調(diào)用
????????從2.1.7版本開始,URule Pro中提供了統(tǒng)一的Restful服務調(diào)用接口,通過在知識包上進行簡單的配置,即可實現(xiàn)將業(yè)務規(guī)則計算暴露成Restful接口,對于客戶端來說,調(diào)用接口時,只需要符合要求的JSON格式數(shù)據(jù)即可實現(xiàn)業(yè)務規(guī)則計算,同時Restful接口也會返回統(tǒng)一的JSON格式數(shù)據(jù)作為計算結果輸出。
????????使用方法如下
????????1.調(diào)用前先要配置Restful接口,配置方法為,打開知識包管理頁面,選中某一具體的知識包項目,然后點擊工具欄上的“服務調(diào)用配置”按鈕,如下圖所示:

????????2.配置好輸入、輸出數(shù)據(jù)以及調(diào)用時是否啟用用戶名密碼驗證,然后點擊“確定”按鈕,需要注意的是輸入輸出數(shù)據(jù)必須要都配置好后才能進行保存,不能只配置輸入數(shù)據(jù)不配置輸出數(shù)據(jù),反過來也是一樣。

? ? ? ? 3.再次選擇目標知識包,點擊工具欄上的“服務調(diào)用配置”按鈕,在彈出的窗口中選擇下方的“查看Restful描述”按鈕,就可以看到當前知識包已配置好的Restful服務接口的描述數(shù)據(jù),描述服務的格式為JSON,內(nèi)容如下所示:

? ? ? ? 4.回到服務調(diào)用配置窗口,點擊窗口下方的“Restful服務調(diào)用測試”按鈕,就可以打開當前知識包的服務調(diào)用測試頁面,然后可以使用URuel提供的測試功能進行接口測試,測試結果如下圖,想要了解更多測試功能,請參考官方教程http://www.bstek.com/resources/doc/22fu-wu-bao-lu-yu-diao-yong.html。

? ? ? ? 5.配置并測試好接口之后,調(diào)用方就可以正常使用該接口了,下面為采用RestTemplate調(diào)用該接口的示例及返回結果


????????注意事項:實際應用當中,我們會在應用在外層加上業(yè)務系統(tǒng)的安全管理功能,比如使用系統(tǒng)需要先進行登錄等,這時要保證URule Pro中內(nèi)置的Restful服務可用,那么就需要讓/urule/rest這個URL可匿名訪問,這點非常重要。
????????源碼工程:https://gitee.com/bsdn/urule-demo.git