2011年1月28日 星期五

[BPMN 2.0] 迴圈的使用

一般來說,由於BPMN Notation是unstructure的表示法,因此不像是BPEL語言,會需要像是While這樣的語法來implement迴圈,通常都是用直接拉回去配合上Exclusive OR的Gateway就可以做到效果:

如上圖所示,就是最基本的迴圈。

BPMN也支援Subprocess Loop的方式來執行迴圈,你可以將需要重複多次執行動作的Activity放在一個subprocess之中,就可以不需要自己去implement上面那些變數的初始化或者是Exclusive OR Gateway了。

下面是個範例:

Subprocess展開前


Subprocess展開後



看起來應該比較簡單了吧?
該怎麼設定迴圈的執行次數,內部變數...等資料呢?

Double-click Subprocess,選擇Loop Characteristics的tab,點選Loop


選擇Loop Condition右手邊的那個小icon打開Express Builder


看一下左邊的Variable區,你會發現你的Subprocess "Loop Demo" 中自動有一個loopCounter的變數,簡單的說,這個變數是扮演一般我們 for-loop 中間的 "i" 的角色。

你就可以和寫for-loop迴圈一樣去指定 loopCounter <= count,來定義迴圈的執行條件了!




1 則留言:

wang 提到...

Tim, thank you for sharing.