交叉決策表
交叉決策表又叫決策矩陣,是URule Pro中提供的一種特殊類型的決策表。
與普通(tōng)決策表相比,交叉決策表的條件由縱向和(hé)橫向兩個(gè)維度決定,而普通(tōng)決策表的條件隻是由縱向維度決定;但(dàn)在普通(tōng)決策表的動作(zuò)部分可(kě)以是三種類型,分别是賦值、輸出和(hé)執行(xíng)方式,而在交叉決策表中動作(zuò)部分就是縱向和(hé)橫向兩個(gè)維度交叉後的單元格的值,一般來(lái)說,這種交叉後單元格的值都是賦給某個(gè)變量或參數(shù),所以交叉決策表的動作(zuò)基本就一個(gè),那(nà)就是賦值。
下面的這張圖中展示了交叉決策表的整體(tǐ)結構。
在上(shàng)圖中,紫色單元格中5的值由橫向和(hé)縱向兩個(gè)維度的上(shàng)箭頭對應的條件決定,隻有(yǒu)這兩個(gè)維度上(shàng)的條件都滿足了,才會(huì)執行(xíng)将這個(gè)單元格裏的值賦給“客戶.等級”這個(gè)變量。
相比普通(tōng)的決策表,交叉決策表是從橫向和(hé)縱向兩個(gè)維度來(lái)唯一确定一個(gè)值,所以它更加簡單,也更為(wèi)直觀,相同類型的交叉決策表實現的交叉業務規則,如果換成普通(tōng)決策表來(lái)定義,那(nà)将大(dà)大(dà)增加定義的複雜度。
使用交叉決策表
在項目的決策表節點下點擊右鍵菜單,選擇添加交叉決策表項,輸入正确的名稱,即可(kě)創建一個(gè)新的交叉決策表文件,如下圖所示:
接下來(lái),我們需要導入要使用到的在項目中已定義好的變量、參數(shù)、常量或動作(zuò)庫文件,這點和(hé)前面介紹的決策集、普通(tōng)決策表的用法一緻,然後就可(kě)以來(lái)編輯我們的交叉決策表文件。
首先,對于橫向和(hé)縱向的條件部分,在定義時(shí)需要首先選擇橫向一行(xíng)以及縱向一列條件所對應的對應屬性,如下圖所示:
屬性選擇完成後,就可(kě)以為(wèi)條件在單元格上(shàng)點擊右鍵菜單,為(wèi)條件單元格配置具體(tǐ)的條件,如果需要增加行(xíng)列,也是通(tōng)過在條件單元格裏點擊右鍵菜單,添加對應的條件行(xíng)列即可(kě)。如下圖所示:
橫向和(hé)縱向的條件配置完成後,接下來(lái)就可(kě)以配置交叉單元格的值了。交叉單元格的值配置方式比較簡單,點擊單元格中“無”在彈出的菜單裏選擇對應的配置項,完成配置即可(kě),這點與之前介紹的向導式規則完全一緻。
如果某個(gè)條件或交叉單元格的值不再需要了,那(nà)麽可(kě)以在單元格裏點擊右鍵,選擇清空(kōng)即可(kě)。
交叉決策表的屬性與普通(tōng)決策表的屬性完全一樣,所起到的作(zuò)用也一緻,這裏不再贅述。
最後,還(hái)有(yǒu)一個(gè)重要的屬性需要配置,那(nà)就是左上(shàng)方的“選擇交叉單元格值要賦予的對象”,其作(zuò)用就是将橫向和(hé)縱向兩個(gè)維度的條件滿足後的交叉單元格的值賦予的具體(tǐ)對象,這裏我們可(kě)以選擇具體(tǐ)的變量或參數(shù),如下圖所示:
在交叉決策有(yǒu)編輯器(qì)上(shàng)方的工具欄裏,同樣有(yǒu)“導入Excel”按鈕,說明(míng)交叉決策表和(hé)普通(tōng)決策表一樣支持将外部Excel裏的數(shù)據導入到當前交叉決策表中,下面我們就來(lái)看看如何導入。
導入Excel中定義的交叉決策表
交叉決策表支持從外部Excel中導入。Excel可(kě)以按照URule Pro中的要求定義好交叉決策表,然後就可(kě)以直接導入,這樣可(kě)以大(dà)大(dà)減輕交叉決策表定義的工作(zuò)量,大(dà)幅提高(gāo)工作(zuò)效率。比如下面的Excel文件(點擊此處下載此Excel文件):
可(kě)以看到,Excel在定義交叉決策表時(shí)同樣支持橫向和(hé)縱向兩個(gè)維度多(duō)層條件配置,這與交叉決策表功能一緻。在Excel中定義要導入到URule Pro中的交叉決策表時(shí)需要注意以下幾點:
- 交叉表左上(shàng)角單元格一定要合并起來(lái),否則将出現錯誤,如下圖所示:
左上(shàng)角單元格合并後,可(kě)以輸入具體(tǐ)內(nèi)容,這些(xiē)內(nèi)容在導入到後就變成交叉表的表頭,在導入時(shí),URule Pro就是根據這裏的單元格合并情況來(lái)區(qū)分橫縱向條件的,所以正确的合并左上(shàng)角的交叉單元格是定義合法交叉決策表的先決條件。
對于橫縱向條件的第一個(gè)單元格裏,要為(wèi)這個(gè)單元格添加批注,用以說明(míng)該條件行(xíng)或列所綁定的變量或參數(shù)對象,如下圖所示:
需要注意的是,在定義要綁定的參數(shù)或具體(tǐ)變量時(shí),一定要保證該參數(shù)或具體(tǐ)變量能在當前項目中找到,否則将導入失敗。比如上(shàng)圖中的“會(huì)員.是否有(yǒu)房(fáng)”就是一個(gè)變量,這個(gè)變量就需要在項目中定義好。
在定義橫向或縱向條件單元格裏具體(tǐ)內(nèi)容時(shí),可(kě)不寫等于号;比如上(shàng)圖中的橫向列條件都沒有(yǒu)比較符,所以就表示等于。需要特别指出的是,多(duō)條件不支持括号,不能用括号把多(duō)個(gè)條件連接。
對于橫向及縱向條件交叉後單元格的值隻支持字符串、數(shù)字之類簡單值,不支持引用别的參數(shù)、變量或調用方法等複雜類型的值。
如果我們是用決策表來(lái)進行(xíng)賦值操作(zuò),同時(shí)這個(gè)決策表的限制(zhì)條件又比較多(duō),這時(shí)就比較适合采用URule Pro中提供的交叉決策表來(lái)實現,因為(wèi)其從橫向和(hé)縱向兩個(gè)維度來(lái)進行(xíng)條件限制(zhì),所以可(kě)以大(dà)大(dà)簡化決策表的配置,同時(shí)配合外部的Excel導入功能,可(kě)顯著提高(gāo)交叉決策表的配置效率。