對預定義值的支持
預定義值功能(néng)是 v4.3.0+
版本新(xīn)增的功能(néng),主要為(wèi)了簡化規則編寫,支持局部參數的定義與使用(yòng),提升用(yòng)戶編寫規則體(tǐ)驗。
使用(yòng)說明
如果想在當前規則文(wén)件中(zhōng)定義一個局部參數,可(kě)以在預定義值列表點擊 "+",添加預定義值。設置局部參數名(míng)稱、類型、以及值的來源。
預定義好的局部參數就可(kě)以在當前的規則文(wén)件中(zhōng)使用(yòng)了。
- 類型:支持基礎類型和引入變量庫的複雜變量。
- 值的來源:支持輸入的靜态值、變量或變量屬性、參數、常量、方法、函數等。
- 源自(from): 指将值的來源的整個一個對象賦值給這個定義的局部參數
- 來自(in): 指值的來源設置的是一個集合,類似于循環規則塊指定循環集合的設置中(zhōng)的指定集合對象的功能(néng),并且可(kě)以直接設置遍曆過濾條件。
- 預定義值列表中(zhōng),前面預定義局部參數,在後面的預定義中(zhōng)可(kě)以使用(yòng)。可(kě)以通過拖拽改變先後順序。
複雜對象的值獲取
對于複雜對象嵌套的情況,使用(yòng)預定義值的方式獲取子對象值,将會變得非常簡單。 定義一個子對象類型的局部參數,值源自(from) 主對象的子對象屬性即可(kě)
集合循環遍曆以及多(duō)循環嵌套的使用(yòng)
在 v4.3.0
以前的版本,循環遍曆一個集合隻能(néng)使用(yòng)循環規則塊進行遍曆集合,具(jù)體(tǐ)可(kě)以參照 設計器使用(yòng)技(jì )巧一文(wén)中(zhōng)的使用(yòng)遍曆集合說明
在 v4.3.0+
版本後,集合的循環遍曆可(kě)以通過預定義值的功能(néng)實現。
- 當值為(wèi) 來自(in) 時,需要指定一個集合對象,類似于循環規則塊指定循環集合的設置中(zhōng)的指定集合對象的功能(néng)。
- 當值為(wèi) 來自(in) 時,指定的是一個變量庫定義的一個變量時,類似于循環規則塊指定變量類型,将從當前工(gōng)作(zuò)區(qū)中(zhōng)找到所有(yǒu)這種類型的變量并組裝(zhuāng)成一個集合進行遍曆。
- 預定義一個 來自(in) 的局部參數,就相當于一個For循環體(tǐ),下面的預定義條目和規則都在這個循環當中(zhōng)。
上图的執行邏輯如下:
類型[String] "一個拼接字符串" = "ANLIN" ; 類型[String] "拼接後員工(gōng)姓名(míng)" = "用(yòng)戶"."姓名(míng)" + "一個拼接字符串" ; 類型[用(yòng)戶明細] "用(yòng)戶的詳細信息" = "用(yòng)戶"."詳細信息" ; For ("标簽" : "用(yòng)戶的詳細信息"."标簽列表" ){ if ("标簽"."是否有(yǒu)效" == "有(yǒu)效"){ 類型[标簽] "标簽信息" = "标簽" ; 類型[String] "默認地址" = [Map]("标簽信息"."描述信息").get("有(yǒu)效") ; //執行規則文(wén)件中(zhōng)的所有(yǒu)規則塊 //UA0001規則塊 if(...){ ... }else{ ... } //UA0002規則塊 if(...){ ... } } }
預定義列表中(zhōng)有(yǒu)多(duō)個 來自(in) 時,就相當于多(duō)個For循環嵌套,這種将大大簡化循環嵌套的編寫過程。
For (item : List ){
For (...){
//執行規則文(wén)件中(zhōng)的所有(yǒu)規則塊
}
}
預定義優先級
當規則文(wén)件中(zhōng)添加了預定義值條目的時候,預定義優先級就生效了,把一個添加了預定義值的規則文(wén)件看成一個整體(tǐ),比如同一個知識包中(zhōng)的多(duō)個添加了預定義值的規則文(wén)件,會根據預定義設置優先級的大小(xiǎo),從高到低執行。