決策節點
決策節點就是指在運行時根據為(wèi)其下流出連接配置的條件來決定究竟應該走哪條連接的節點,所以根據這一特性,決策節點下流出連接至少要有(yǒu)兩條,否則決策節點就沒有(yǒu)意義了。
選中(zhōng)決策節點,在其右邊屬性面闆中(zhōng)就可(kě)以看到針對決策節點的配置,如下图所示:
需要重點介紹的是“決策類型”屬性,決策節點的有(yǒu)兩種決策類型,分(fēn)别是"條件"和"百分(fēn)比"。
當選擇決策類型為(wèi)條件時,就會看到如上图所示效果。選擇“條件”類型時,在下面出現的在決策項當中(zhōng),可(kě)以根據當前決策節點下流出連接的數量添加對應的決策項,對于每條決策項,都有(yǒu)兩個屬性,分(fēn)别是"條件腳本"和“流向”,在條件列當中(zhōng),我們可(kě)以編寫具(jù)體(tǐ)的條件,在流向列中(zhōng)選擇當條件列中(zhōng)定義的條件滿足時要流出連線(xiàn)名(míng)稱,所以對于決策節點下流出的連線(xiàn),我們必須要為(wèi)其設置名(míng)稱,否則就無法為(wèi)其定義決策項。
為(wèi)連線(xiàn)定義名(míng)稱,需要首先用(yòng)拖選的方式選中(zhōng)它,然後就可(kě)以在屬性面闆上為(wèi)其定義名(míng)稱。
在條件表格中(zhōng),點擊條件編輯按鈕,就會彈出條件編輯窗口,在這個窗口裏,可(kě)以為(wèi)流轉到該條路徑定義條件。
如果将決策類型改為(wèi)“百分(fēn)比”,則可(kě)以看到如下图所示效果:
如上图所示,一旦将決策類型改為(wèi)“百分(fēn)比”,那麽就可(kě)以為(wèi)每個流向設置流量百分(fēn)比,如上图當中(zhōng),在實際規則流運行時,将有(yǒu)30%走"c1"連線(xiàn),70%走"c0"連線(xiàn)。配置時無論決策節點下有(yǒu)多(duō)少離開連線(xiàn),最終所有(yǒu)的百分(fēn)比加在一起要達到100%, 百分(fēn)比這裏一定要是一個合法的整數,否則會出現錯誤。
百分(fēn)比模式下還有(yǒu)一個名(míng)為(wèi)“作(zuò)用(yòng)範围”的選項,默認值為(wèi)“批處理(lǐ)”,表示“百分(fēn)比”類型的計算有(yǒu)效期為(wèi)當前線(xiàn)程,一旦有(yǒu)新(xīn)線(xiàn)程開啓,那麽這個百分(fēn)比的值将開始重新(xīn)計算;如果将“作(zuò)用(yòng)範围”改為(wèi)“每次調用(yòng)”,那麽生效就不再局限于當前線(xiàn)程,每次調用(yòng)在經過這個決策節點時都會根據百分(fēn)比進行分(fēn)流計算。
值得注意的時,當選擇決策類型為(wèi)“條件”,在運行時,當決策流流轉到當前節點時,如果決策項中(zhōng)定義的各個條件都不滿足,那麽規則流到此就結束了,相反,如果有(yǒu)多(duō)個決策項滿足時,那麽系統将取第一條滿足條件的決策項對應的流向連線(xiàn)進行向下流轉,而不會選擇所有(yǒu)滿足條件的連線(xiàn)向下流轉。
需要注意的是,百分(fēn)比類型的“批處理(lǐ)”作(zuò)用(yòng)範围下決策方式,必須要在代碼中(zhōng)通過批處理(lǐ)的方式執行才會生效,必須要使用(yòng)後面章節裏介紹的BatchSession來一次性處理(lǐ)一批數據,或者一個KnowledgeSession一次性處理(lǐ)一批數據,否則規則流永遠(yuǎn)都隻會走默認的百分(fēn)比占比最高的那條路徑。 當然如果百分(fēn)比類型的作(zuò)用(yòng)範围改為(wèi)“每次調用(yòng)”,那麽規則的每次調用(yòng)都會根據百分(fēn)比來計算分(fēn)流。
決策節點出入連接線(xiàn)下如下表所示:
流入的連接線(xiàn) | 流出的連接線(xiàn) |
---|---|
1~n | 1~n |