swimlane一般是為了task準(zhǔn)備的,任務(wù)總是要分配到某個人頭上的。如果在流程定義文件中任務(wù)沒有指定對應(yīng)的泳道如:,那么就需要在程序代碼中分配相關(guān)的處理人taskInstance.setActorId("jeffen")。如果程序都是這樣來搞那其實(shí)是很麻煩的,而且分配代碼分散到各個地方,很容易出錯。于是引進(jìn)了泳道,我們可以在流程定義文件中統(tǒng)一指定swimlane和處理人的關(guān)系、task和swimlane的關(guān)系,只需要維護(hù)這一個文件就好了,(有點(diǎn)像struts的配置文件)如下:
<
swimlane?name
=
"
banker
"
>
????????
<
assignment?expression
=
"
user(jeffen)
"
/>
</
swimlane
>
......

<
task?name
=
"
bank
"
??swimlane
=
"
banker
"
>
這樣就將任務(wù)實(shí)例和處理人松耦合了,對于多任務(wù)對應(yīng)相同的處理人,這種方式的好處顯而易見。
當(dāng)然還可以在程序中動態(tài)指定處理人,如上taskInstance.setActorId("jeffen"),也可以通過泳道實(shí)例swimlaneInstance.setActorId("jeffen")指定。
|