普通(tōng)規則

​ 打開(kāi)決策集編輯器(qì),點擊工具欄上(shàng)“添加規則”按鈕就可(kě)以在下面的工作(zuò)區(qū)裏添加了一個(gè)普通(tōng)的規則,如下圖所示:

​ 一個(gè)普通(tōng)規則主體(tǐ)是由如果、那(nà)麽、否則構成,點擊規則名可(kě)以對規則名進行(xíng)修改,修改完成後鼠标點擊頁簽處離開(kāi)焦點就完成了規則名的修改确認;點擊“添加屬性”鏈接可(kě)以為(wèi)當前規則定義相關屬性。無論是普通(tōng)規則還(hái)是循環規則都支持下面這些(xiē)屬性。

中文屬性名 值類型 描述
優先級 數(shù)字 當有(yǒu)多(duō)個(gè)規則滿足條件時(shí),這個(gè)值用來(lái)決定這些(xiē)滿足條件規則中動作(zuò)的執行(xíng)順序,值越大(dà),執行(xíng)順序越靠前。如不設置這個(gè)值,那(nà)按條件滿足的順序執行(xíng),也就是說如果不配置優先級屬性規則的執行(xíng)順序是不确定的。
生(shēng)效日期 字符串 當規則設置了生(shēng)效日期,表示這個(gè)規則隻有(yǒu)在當前系統日期為(wèi)大(dà)于等于生(shēng)效日期時(shí)才會(huì)生(shēng)效,否則即使條件滿足也不會(huì)觸發當前規則,如不設置,則不會(huì)對規則執行(xíng)産生(shēng)影(yǐng)響。該屬性的值要求是一個(gè)日期格式的字符串,格式為(wèi):yyyy-MM-dd HH:mm:ss
失效日期 字符串 與生(shēng)效日期對應,當規則設置失效日期時(shí),一旦當前系統日期大(dà)于或等于失效日期,即使條件滿足規則也不會(huì)觸發執行(xíng),如不設置,則不會(huì)對規則執行(xíng)産生(shēng)影(yǐng)響。屬性的值要求是一個(gè)日期格式的字符串,格式為(wèi):yyyy-MM-dd HH:mm:ss
是否啓用 布爾值 默認值為(wèi)true,也就是啓用當前規則;如設置為(wèi)false,即使條件滿足規則也不會(huì)觸發執行(xíng),如不設置,則不會(huì)對規則執行(xíng)産生(shēng)影(yǐng)響。
允許調試信息輸出 布爾值 默認為(wèi)false,表示不輸出調試信息,設置為(wèi)true後,規則在執行(xíng)時(shí)會(huì)在控制(zhì)台輸出規則條件的匹配信息、規則動作(zuò)的執行(xíng)信息;如果規則計(jì)算(suàn)過程出現異常,還(hái)會(huì)在控制(zhì)台輸出計(jì)算(suàn)出現異常的位置,以便于我們快速定義規則錯誤位置。需要注意的是,如果項目的urule.debug屬性設置為(wèi)false時(shí),規則的這個(gè)屬性會(huì)被覆蓋,也就是說即使設置為(wèi)true也不會(huì)輸出任何信息。
互斥組 字符串 系統會(huì)自動将此屬性相同的規則劃為(wèi)一組,且這個(gè)組中隻有(yǒu)一個(gè)規則會(huì)執行(xíng),待執行(xíng)的規則如設置了優先級,則優先級最高(gāo)的規則執行(xíng),否則随機;需要注意的是,互斥組屬性僅在當前規則集文件默認模式下有(yǒu)用,在順序模式下互斥組屬性将不起作(zuò)用。
執行(xíng)組 字符串 系統會(huì)自動将此屬性相同的規則劃為(wèi)一組,默認情況下,引擎不會(huì)執行(xíng)這個(gè)組裏的規則,需要我們在定義規則動作(zuò)時(shí)利用系統內(nèi)置的函數(shù)顯示的指定要激活執行(xíng)的執行(xíng)組名,這樣系統才會(huì)嘗試匹配并執行(xíng)組裏的規則。

在使用過程當中,如果一個(gè)規則配置了執行(xíng)組,也配置了互斥組屬性,那(nà)麽這個(gè)規則對應的執行(xíng)組屬性被激活後,其中配置了互斥組屬性的規則将按互斥組屬性執行(xíng)原則執行(xíng)。

在決策集編輯器(qì)工具欄上(shàng)名為(wèi)配置的按鈕菜單下有(yǒu)一個(gè)用于控制(zhì)當前文件中所有(yǒu)向導式規則日志(zhì)輸出的開(kāi)關按鈕,它的默認為(wèi)關閉狀态,如果我們希望打開(kāi)當前文件中所有(yǒu)規則的日志(zhì)輸出功能,那(nà)麽隻需要在這裏将其打開(kāi)即可(kě);當然也可(kě)以通(tōng)過規則中的“允許日志(zhì)輸出”屬性來(lái)單獨設置某個(gè)規則是否輸出日志(zhì),它可(kě)以覆蓋配置按鈕下的日志(zhì)輸出選項。

​ 規則名及屬性定義完成後,接下來(lái)就可(kě)以開(kāi)始配置規則的主體(tǐ)部分,首先是“如果”部分,在如果部分當中可(kě)以添加若幹條件,添加完條件後,就可(kě)以通(tōng)過鼠标點擊以向導方式設置條件,如下圖:

​ 對于一個(gè)具體(tǐ)的條件來(lái)說,我們可(kě)以将其分為(wèi)三個(gè)部分,分别是條件左邊部分、比較操作(zuò)符以及條件右邊部分。條件左邊部分,如上(shàng)圖所示我們可(kě)選擇的有(yǒu)變量、參數(shù)或者方法或函數(shù),當然這相應的需要我們導入相關的變量庫、參數(shù)庫以及方法庫;對于操作(zuò)符目前URule Pro當中提供了下面這些(xiē)操作(zuò)比較符,如下圖所示:

​ 這些(xiē)操作(zuò)比較符基本已涵蓋我們業務當中所有(yǒu)類型的比較操作(zuò)。選擇完比較操作(zuò)符後,我們就可(kě)以來(lái)設置條件右邊部分。條件右邊部分相比左邊,可(kě)選擇的值類型會(huì)更多(duō)一些(xiē),如下圖:

​ 一旦選擇某種類型值之後,我們就可(kě)以進入下一步操作(zuò),同時(shí)在URule Pro當中無論條件左值還(hái)是條件右值都可(kě)以進行(xíng)無限多(duō)級簡單的加、減、乘、除等運算(suàn)操作(zuò),如下圖所示:

注意:上(shàng)圖中諸如 >、<、== 之類的運算(suàn)操作(zuò)返回值為(wèi)一個(gè)布爾(true/false)類型的值,這點與+、-、x、÷、%之類運算(suàn)符産生(shēng)的結果不同。

在URule Pro當中,對于所有(yǒu)的菜單項,通(tōng)過點擊菜單項上(shàng)的配置按鈕,可(kě)以設置菜單項個(gè)數(shù)大(dà)于多(duō)少(shǎo)個(gè)時(shí)出現過濾框,默認是菜單項大(dà)于15個(gè)時(shí)就會(huì)出現,使用時(shí),可(kě)以根據自己的喜好對出現過濾框的時(shí)機進行(xíng)定義。

​ 在配置條件時(shí),需要我們把之前定義好的變量庫文件、參數(shù)庫文件、常量庫文件、動作(zuò)庫文件導入進來(lái)。對于條件來(lái)說,可(kě)以是多(duō)個(gè)條件,也可(kě)以是多(duō)個(gè)複合條件組合,這樣都是通(tōng)過鼠标點擊操作(zuò)完成,這裏就不再贅述。

​ 條件配置完成後,可(kě)以為(wèi)“那(nà)麽”或“否則”部分添加動作(zuò),那(nà)麽部分的動作(zuò)隻有(yǒu)條件滿足時(shí)才會(huì)執行(xíng),如果未配置條件,那(nà)就意味着無條件執行(xíng),也就是說未配置條件會(huì)直接執行(xíng)那(nà)麽部分的動作(zuò);否則部分的動作(zuò)在條件不滿足時(shí)執行(xíng)。不加動作(zuò)意味着什麽也不幹,動作(zuò)可(kě)以有(yǒu)多(duō)個(gè),多(duō)個(gè)動作(zuò)添加完成後可(kě)以通(tōng)過拖曳改變順序。

​ 目前在URule Pro當中支持的動作(zuò)類型有(yǒu)三種,分别是:打印內(nèi)容到控制(zhì)台、變量賦值以及執行(xíng)方法或函數(shù),如下圖所示:

打印內(nèi)容到控制(zhì)台其實就是将我們需要的信息打印輸出到日志(zhì)中,我們可(kě)以在日志(zhì)中看到具體(tǐ)的輸出內(nèi)容,輸出內(nèi)容可(kě)以是一個(gè)普通(tōng)的輸入值,也可(kě)以是一些(xiē)複雜的值類型或它們的加、減、乘、除組合,及添加括号定義算(suàn)術(shù)運行(xíng)優先級。

變量賦值也就是給當前導入的變量庫或參數(shù)庫的值進行(xíng)賦值,值類型可(kě)以是一個(gè)普通(tōng)的輸入值,也可(kě)以是一些(xiē)複雜的值類型或它們的加、減、乘、除組合,及添加括号定義算(suàn)術(shù)運行(xíng)優先級。

​ 最後一種類型的動作(zuò)是執行(xíng)方法或函數(shù),要選擇執行(xíng)的方法或函數(shù),前提是我們必須方法所在的動作(zuò)庫文件導入到當前規則文件當中,否則就看不到要執行(xíng)的方法,一旦選擇執行(xíng)方法後,如果當前方法當中包含參數(shù),那(nà)麽我們也需要選擇相應的值為(wèi)參數(shù)賦值,同樣參數(shù)的值可(kě)以是一個(gè)普通(tōng)的輸入值,也可(kě)以是一些(xiē)複雜的值類型或它們的加、減、乘、除組合。動作(zuò)的具體(tǐ)配置都是基于鼠标點擊操作(zuò)的,比較簡單,這裏不再贅述。

在向導式規則編輯器(qì)中,可(kě)以通(tōng)過鼠标拖曳來(lái)改變那(nà)麽或否則部分的動作(zuò)順序,同時(shí),對于多(duō)個(gè)規則文件,也可(kě)以通(tōng)過懸浮于右上(shàng)方的規則導航以拖曳方式來(lái)改變它們的顯示順序。

results matching ""

    No results matching ""