2011年2月17日 星期四

[BPMN 2.0] Process平行執行的應用

BPMN 本身支援Parallel Gateway讓開發人員能夠平行處理多個Activity,你可以拉出如下圖所示的Process同步處理MyTask1與MyTask2:


這樣的表示方式很簡單,但是我們有時候會遇到另外一個需求,要怎麼在run-time動態產生多條平行執行的流程?照上圖的作法,必須在design time就設計好執行路徑的數量。

和Loop的情形一樣,我們還是可以使用subprocess的方式來處理。

使用subprocess activity,我們可以簡單拉出下示流程:


Double-click subprocess activity,編輯對話框中的Loop Characteristics Tab


平行執行的時候,記得在Loop Characteristics中選擇 "MultiInstance",並且不要勾選最下方的 "Is Sequential" 選項。

此時的 Loop Cardinality 代表你需要動態幾個平行的instance處理,我在此放入了一個變數parallelCount,你可以自行設計如何取得此數值。