決策樹(shù)又稱(chēng)為規(guī)則樹(shù),是URule Pro規(guī)則引擎中提供的另外一種構(gòu)建規(guī)則的方式,它以一棵躺倒的樹(shù)形結(jié)構(gòu)來(lái)表現(xiàn)規(guī)則(之所以將其躺倒是為了節(jié)省空間,否則一棵稍微大點(diǎn)的樹(shù)將會(huì)占用很大的頁(yè)面空間),決策樹(shù)表現(xiàn)業(yè)務(wù)規(guī)則更為形象,實(shí)際上,無(wú)論是決策樹(shù)、決策表還是評(píng)分卡,都可以通過(guò)決策集來(lái)實(shí)現(xiàn),只是,對(duì)于某些業(yè)務(wù)規(guī)則來(lái)說(shuō),通過(guò)決策樹(shù)或決策表或評(píng)分卡實(shí)現(xiàn)起來(lái)更為形象、快捷。
下圖是一棵定義好的決策樹(shù):
打開(kāi)URule Pro控制臺(tái),在測(cè)試項(xiàng)目的“決策樹(shù)”節(jié)點(diǎn)下右鍵,在彈出菜單中選擇“創(chuàng)建決策樹(shù)”項(xiàng)就可以創(chuàng)建一個(gè)決策樹(shù)文件,如下圖所示:
決策表最上方是工具欄,它同樣需要導(dǎo)入各種庫(kù)文件;中間是屬性設(shè)置區(qū),與決策表一樣只提供四個(gè)屬性,如果定義屬性,那么它們將會(huì)在運(yùn)行時(shí)被附加由決策樹(shù)生成的所有規(guī)則上;最下面就是決策樹(shù)的定義區(qū),默認(rèn)它是一個(gè)根變量節(jié)點(diǎn),是不可刪除的。在URule Pro當(dāng)中有三種類(lèi)型的樹(shù)節(jié)點(diǎn),分別是變量節(jié)點(diǎn)、條件節(jié)點(diǎn)以及動(dòng)作節(jié)點(diǎn)。
變量節(jié)點(diǎn)就是用來(lái)選擇目標(biāo)變量的節(jié)點(diǎn),要操作這里我們需要首先導(dǎo)入需要使用到的變量庫(kù)文件或參數(shù)庫(kù)文件,比如導(dǎo)入我們定義的會(huì)員變量庫(kù),然后就可以選擇具體的會(huì)員變量屬性,如下圖:
定義好變量節(jié)點(diǎn)上要使用的變量后,就可以添加下級(jí)子節(jié)點(diǎn),變量節(jié)點(diǎn)下只能添加條件節(jié)點(diǎn),一個(gè)變量節(jié)點(diǎn)可添加多個(gè)條件節(jié)點(diǎn),每個(gè)條件節(jié)點(diǎn)上配置的條件與當(dāng)前變量節(jié)點(diǎn)構(gòu)成一個(gè)完整的約束條件,條件的定義與向?qū)揭?guī)則中完全相同。如下圖:
條件節(jié)點(diǎn)下可以繼續(xù)添加子條件以進(jìn)一步對(duì)上級(jí)條件進(jìn)行約束或添加動(dòng)作節(jié)點(diǎn)以結(jié)束當(dāng)前條件分支或者再添加若干變量節(jié)點(diǎn)以添加新類(lèi)型的條件約束,如下圖:
一旦某個(gè)條件節(jié)點(diǎn)下添加了動(dòng)作節(jié)點(diǎn),那么就意味著這個(gè)條件分支的結(jié)束,一個(gè)動(dòng)作節(jié)點(diǎn)中可添加多個(gè)動(dòng)作,同樣一個(gè)條件節(jié)點(diǎn)下可以有多個(gè)動(dòng)作節(jié)點(diǎn),動(dòng)作節(jié)點(diǎn)上的動(dòng)作類(lèi)型與動(dòng)作定義方式與向?qū)揭?guī)則中完全相同。
對(duì)于一個(gè)合法的決策樹(shù)來(lái)說(shuō),任何一個(gè)分支都必須要由至少一個(gè)動(dòng)作節(jié)點(diǎn)結(jié)束,否則系統(tǒng)將不允許保存。
實(shí)際上,決策樹(shù)是決策表的另一種表現(xiàn)形式,所以所有的決策表都可以用決策樹(shù)表現(xiàn),反之亦然。下圖當(dāng)中的決策樹(shù)就實(shí)現(xiàn)了在決策表一節(jié)示例中對(duì)應(yīng)的功能:
可以看到,與決策表相同的功能采用決策樹(shù)實(shí)現(xiàn)起來(lái)感覺(jué)體積上要大很多,所以在實(shí)際業(yè)務(wù)當(dāng)中多數(shù)決策樹(shù)都會(huì)轉(zhuǎn)換成決策表來(lái)定義。
將這個(gè)決策樹(shù)文件放到知識(shí)包中進(jìn)行測(cè)試,同樣可以得到正確的結(jié)果。
更多建議: