Cordys BOP 4平臺開發入門實戰演練——While迴圈流程建模開發及測試

肖永威發表於2015-04-20

關於While迴圈

    Cordys C3版本中,While迴圈解釋如下:

    While迴圈是BPMN組結構,用於一組活動或子流程來執行所滿足的While條件。在每個迴圈體開始,進行測試條件,如果測試結果為“假”是則不執行。因此,這組活動或子流程將執行0或多次。While結構用於執行多次迴圈或根本不執行;也就說,從開始條件是假,將不執行迴圈。當在迴圈體內迭代迴圈,當前迴圈的打破也是下一次迴圈迭代的開始。打破迴圈功能有助於打破或退出迴圈,繼續執行迴圈體後續活動環節。While結構代表圖例如下圖1所示。

    

                          圖1

    While迴圈特點如下:

  • While迴圈的特點類似於Java的While迴圈定義;
  • While迴圈入口節點:節點只有出口,沒有入口;While迴圈結束出口:節點只有入口,沒有出口;
  • While迴圈只有一個入口,可以有多個出口。

    While迴圈可以有如下用途:

  • 按使用者需求流程建模;
  • 可用於回退設計。

While迴圈流程實踐

(1)新建BPM流程

    新建流程,流程命名為TestWhileBPM。

    

                                     圖2

(2)新建While組(Group as While)

    按上圖2所示,第1步,選定多個活動“Actively”,並在選中活動環節上點選滑鼠右鍵,彈出選單;第2步,在選單中選中“Group as”功能;第3步,再在又彈出選單中選中“While”功能。則形成如下圖3所示的分組為While的流程圖活動環節組。

    

                     圖3

    接著,調整流程中活動關聯線,按下圖4所示,拖拽線移除迴圈體到外,變成連線線與While迴圈體關聯。

    

                                   圖4

(3)準備While迴圈實踐XForm表單

    這裡簡單定義一個While測試的Input1輸入框。

    

                          圖5

(4)建立Message傳遞While迴圈條件

    如下圖6所示,建立Message,名稱為While_Msg,其中只有一個元素(Element)為While_Decision。

    

                           圖6

    

                                             圖7

(5)繫結表單傳遞While條件變化

    

                      圖8

(6)配置While迴圈條件

    雙擊或滑鼠郵件While迴圈體,開啟While屬性介面(Properties),編輯屬性內容“General”。

    

                                 圖9

    While屬性內容,主要是設定Select Conditions,其中,需要點選此選項最後的選擇框,彈出如下圖10所示XPath Editor介面,編輯While迴圈條件表示式,最後的XPath為:bpm:while_Msg/bpm:while_Decison/text()=1,表達含義是迴圈判斷條件是1,也就是Start啟動輸入為1或者表單Form輸入為1時,直接跳過或打破迴圈體,其他的直接繼續執行。

    

                                              圖10

    如上圖10所示,從左側的Message map樹中拖拽訊息元素(Element)While_Decision到右側XPath編輯視窗中,進行XPath表示式驗證、測試。

(7)設定啟動Start節點傳入Message

    設定在啟動流程,也就是通過Start節點傳入Message所需要的引數,本案例傳入的是Decision條件。

    

                                    圖11

(8)釋出流程

    直接在流程建模介面釋出流程(Publish to Organization)或者回到Workspace介面釋出流程都可以。

測試流程

(1)測試“Execution/Run”

    

                                        圖12

(2)啟動流程

    輸入Message引數,把PARAMETER替換為“1”。

    
                                      圖13

(3)進入Process Instance Manager(流程例項管理)介面

    在下圖14中選中所進行的測試流程“TestWhileBPM”,點選Waiting列中紅色“1”,彈出圖15所示介面,進行流程Debugger。

    

                                             圖14

    通過下圖15,選中待處理流程例項,點選Open Debugger圖示,進行流程除錯介面。

    

                                               圖15

(4)單步Debug流程

    按下圖16所示,逐個活動環節跟蹤,當前狀態是第一次進入While迴圈體(原因:啟動流程時PARAMETER引數輸入為1)。

    

                                             圖16

    如下圖17所示,介面互動輸入測試條件值。

    第一步:在彈出輸入Form視窗“WhileTest2”,輸入非1值,這裡輸入0;

    第二步:點選此視窗上的對好,完成執行操作;

    第三步:再進行Process Debugger操作,到下一活動環節;

    完成上述操作時,While迴圈體執行完成退出。

    

                                              圖17

(5)完成測試工作

    如下圖18所示,While迴圈體執行兩次迴圈操作。

    

                                圖18

    注意:雖然系統在BPM Service Container裡可以配置死迴圈最高限制,但是也需要防止出現死迴圈問題,因為這樣的迴圈將影響系統的效能。

    由於作者水平有限,歡迎反饋討論。


詳盡操作參見:

 Cordys BOP 4平臺開發入門實戰演練——流程建模開發(BPM) 肖永威 2015.4

相關文章