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,來定義迴圈的執行條件了!




[Oracle BPM/SOA 基礎] 第一個BPM流程

現在,我們來做一個簡單的BPM流程吧!

背景設定為一個很簡單的採購流程,使用者上網提出採購申請,之後經過主管同意後,流程會將此採購資料寫入檔案供採購系統抓取,夠簡單吧? 這個簡單流程可以提供各位在一個BPM平台上面的開發是如何進行。

開始之前,請先確定你的BPM開發環境已經完成安裝與設定,你可以參考小弟先前文章完成此步驟。

啟動你的JDeveloper,不管你喜歡與否,這個IDE是Oracle BPM產品流程設計現在唯一的工具,試著熟悉他吧!

新增應用程式專案

選擇 "New Application",會有一彈出的對話框讓你輸入包括Application Name、Directory、package prefix等資訊,特別注意的是JDeveloper是一個general purpose的IDE,所有Oracle產品應用都是透過這IDE開發,所以在BPM專案的開發上面,Application Template記得要選"BPM Applicaiton"。