參數庫文(wén)件
在規則的條件判斷與計算過程當中(zhōng),難免會用(yòng)到一些臨時的變量來存儲值,這些臨時變量數量和類型都可(kě)能(néng)是不固定的,對于這種類型的臨時變量,URule Pro以參數的形式提供,通過參數庫就可(kě)以定義這些在規則中(zhōng)要使用(yòng)到的臨時變量。
在“庫”節點上右鍵創建一個參數庫文(wén)件,從參數庫文(wén)件編輯器來看,參數因為(wèi)沒有(yǒu)了分(fēn)類,配置要為(wèi)簡單許多(duō),如下图所示:
參數庫在運行時實際上是存儲在HashMap當中(zhōng),這裏的“名(míng)稱”的值将作(zuò)為(wèi)Map的key,“标題”則用(yòng)在規則中(zhōng)顯示使用(yòng),定義參數庫時要保證“名(míng)稱”屬性的唯一性,因為(wèi)它是Map的key值; 同時如果一個規則文(wén)件裏引入多(duō)個參數庫文(wén)件,那麽每個參數庫文(wén)件裏定義的參數的名(míng)稱值也要唯一,否則就會存在相互覆蓋的情況。
參數同樣有(yǒu)“用(yòng)途”屬性,其值也為(wèi)In、Out、InOut三個,作(zuò)用(yòng)與變量庫中(zhōng)變量的“用(yòng)途”相同,這裏不再贅述。
在URule Pro當中(zhōng),對于參數庫中(zhōng)定義的值,規則運行時,如果外部沒有(yǒu)對這些參數進行初始化,那麽引擎會自動為(wèi)部分(fēn)沒有(yǒu)初始化的參數進行初始化。下表中(zhōng)介紹了URule Pro中(zhōng)會自動初始化的數據類型自動初始化後的值。
數據類型 | 初始化值 |
---|---|
Integer | 0 |
Double | 0 |
Float | 0 |
Boolean | false |
List | new ArrayList() |
Set | new HashSet() |
Map | new HashMap() |
如果我們當前項目中(zhōng)已定義好若幹個變量庫文(wén)件,且文(wén)件中(zhōng)都定義了相應的變量對象,那麽在打開參數庫文(wén)件,添加參數時,我們會發現參數的數據類型除了固定的13種數據類型外,還有(yǒu)當前項目中(zhōng)所有(yǒu)變量庫文(wén)件裏定義的變量分(fēn)類值;如果在定義參數時數據類型選擇為(wèi)某個變量的分(fēn)類名(míng),那麽在使用(yòng)這個參數時,除了可(kě)以選擇參數自身,還能(néng)選擇參數對應的變量下的具(jù)體(tǐ)屬性值,如下图所示:
因為(wèi)參數的數據類型可(kě)以指定為(wèi)某個變量類型,所以在設計一些複雜規則的時候就顯得特别有(yǒu)意義,比如我們可(kě)以通過這種方式創建一個新(xīn)的變量對象實例,然後賦值給某個是這個變量數據類型的參數,然後再通過這個參數給這個新(xīn)的對象實例的屬性進行逐個賦值等。
參數庫維護的2種方式
手工(gōng)添加
省略操作(zuò)過程。
Excel導入
省略操作(zuò)過程。
注意事項
自4.3.x開始,參數的集合類型List,可(kě)以通過右鍵來配置集合中(zhōng)對象類型,如下图所示
其它
- 參數同樣有(yǒu)“用(yòng)途”屬性,其值也為(wèi)In、Out、InOut三個,作(zuò)用(yòng)與變量庫中(zhōng)變量的“用(yòng)途”相同
- 其它操作(zuò)同上【變量】章節的描述,這裏不再贅述