屬性名 | 類型 | 描述 |
集合類型流程變量來源——流程變量 | 字符串 | 該屬性定義流程變量表達式運行時計算的值類型要求必須是集合類型(java.util.Collection類型或Object[]類型),這個運行時產(chǎn)生的集合類型的值內(nèi)部元素的數(shù)量,決定流程實例在流經(jīng)當(dāng)前節(jié)點時會產(chǎn)生多少條并行的分支流程實例,再配置后面的寫入分支的變量名屬性,將該集合中每個元素取出來,以“寫入分支的變量名”屬性定義的值作為變量名,寫入產(chǎn)生的各個分支當(dāng)中。 |
集合類型流程變量來源——實現(xiàn)類Bean | 字符串 | 該屬性定義的是一個實現(xiàn)了com.bstek.uflo.process.handler.ForeachHandler接口配置在Spring當(dāng)中的bean的ID,這個配置在Spring中的Bean將在運行時調(diào)用其handle方法,可以看到該方法返回的同樣是一個集合類型的值(java.util.Collection類型),同樣這個運行時產(chǎn)生的集合類型的值內(nèi)部元素的數(shù)量,決定流程實例在流經(jīng)當(dāng)前節(jié)點時會產(chǎn)生多少條并行的分支流程實例,再配置后面的寫入分支的變量名屬性,將該集合中每個元素取出來,以“寫入分支的變量名”屬性定義的值作為變量名,寫入產(chǎn)生的各個分支當(dāng)中。 |
寫入分支的變量名 | 字符串 | 在通過“集合類型流程變量來源”產(chǎn)生一個集合類型的值后,引擎將會把該集合中的值拆分成與該集合大小相同量級,再產(chǎn)生與該集合大小數(shù)量相同的并行分支,每個分支都以流程變量形式寫入該集合對應(yīng)的一個元素的值,流程變量的名稱就是這里的屬性定義的值。 |
與分支節(jié)點不同的是,動態(tài)分支節(jié)點下產(chǎn)生的并行分支數(shù)量是由運行時產(chǎn)生的集合類型的值的集合的大小決定,所以動態(tài)分支節(jié)點下有且只會有一條流出的連線,動態(tài)產(chǎn)生的分支將會以這條唯一的分支為模版,動態(tài)產(chǎn)生運行時需要的各個并行分支。動態(tài)分支節(jié)點對于我們大多數(shù)人來說可能是UFLO當(dāng)中最為復(fù)雜的一個節(jié)點了,為了便于大家理解該節(jié)點,這里畫了張示意圖,用于說明動態(tài)分支節(jié)點作用,如下圖所示。
從上圖當(dāng)中可以看到,動態(tài)分支上產(chǎn)生的是一個字符串?dāng)?shù)組類型的集合變量,這個數(shù)組中有三個值,分別是“aaa”、“bbb”和"ccc",同時寫入分支的變量名又定義為"test",這樣在運行時,上圖中在動態(tài)分支與聚合兩節(jié)點之間將會產(chǎn)生三條并行的流程實例,在這三條并行流程實例中分別都有一個名為test的流程變量,這個名為test的流程變量的值在三個不同分支中分別是“aaa”、“bbb”和"ccc",運行時效果示意圖如下所示:
示意圖中向我們清楚的展示了動態(tài)產(chǎn)生的三個并行分支,且每個分支上都有一個名為test的流程變量,它們的值就是集合中三個元素的值。在動態(tài)分支節(jié)點上可添加的流入與流出連線數(shù)量如下表所示:
更多建議: