父規則文件
在決策集編輯器(qì)中,點擊工具欄的配置按鈕,在彈出菜單中選擇父規則文件可(kě)以為(wèi)當前決策集定義一個(gè)或多(duō)個(gè)父規則文件,如下圖所示:
可(kě)以看到,在彈出的父規則文件窗口中,我們可(kě)以選擇一個(gè)或一個(gè)以上(shàng)的決策集文件作(zuò)為(wèi)當前決策集文件的父規則文件。
如果為(wèi)某個(gè)決策集文件指定了父規則文件,那(nà)麽這個(gè)決策集文件在運行(xíng)時(shí),會(huì)将指定的父規則文件中所有(yǒu)的規則加載并運行(xíng),同樣,如果父規則文件也指定的父規則文件,這樣文件中定義的規則也會(huì)被加載運行(xíng),依次類推。
在規則文件的父子定義當中,引擎還(hái)提供了規則覆蓋功能。在子規則文件中,如果需要覆蓋其父規則文件中定義的某個(gè)特定的規則,那(nà)麽隻需要在子規則文件中定義一個(gè)同名的規則,這樣就可(kě)以将其父規則文件中對應的同名規則覆蓋,引擎運行(xíng)時(shí)隻會(huì)運行(xíng)子規則文件中對應的規則,而不會(huì)運行(xíng)父規則中同名規則。
父子規則文件繼承覆蓋如下圖所示:
在上(shàng)圖當中,如果規則文件A繼承了父規則文件2,父規則文件2又繼承了父規則文件1,那(nà)麽在規則文件A中就會(huì)自動将父規則文件1和(hé)父規則文件2中定義的規則A、B、C、D繼承下來(lái),同時(shí)如果在規則文件A中也定義了一個(gè)規則D,那(nà)麽将會(huì)覆蓋父規則文件2中的規則D。
需要注意的是,當其他決策集引用父規則文件并調用父規則文件中的執行(xíng)組時(shí),如果需要對這個(gè)決策集測試,需要将決策集和(hé)父規則文件都加入到知識包中進行(xíng)快速測試。