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

肖永威發表於2015-04-12

1、流程建模開始

        在Workspace的專案中,本文專案名稱為:Training_WSApp。在專案中根目錄下建立BPM資料夾,然後滑鼠右鍵,在彈出選單中選擇New ->Business Process Model元件,進行流程建模開發。

        

                                                                                       圖1

        

                                                                                              圖2

2、圖形化建模

        在Business Process Model工作臺上,圖形化、拖拽繪製流程圖。

        

                                                                                                            圖3

        (1)為BPM流程配置表單(新建)

        

                                                                                                        圖4

        注意:釋出表單

        

                                                                                                                                圖5

        在Business Process Model介面中,在其左下角選擇Workspace

        

                                                                                                                                   圖6

        拖拽表單介面BPMTestInterface到各個活動環節中,如下圖所示。

        

                                                                                                             圖7

        在拖拽表單過程中,系統將詢問是否替換環節名稱為表單名稱,在此不做替換,直接點選“否”按鈕即可。

        

                                                                  圖8

        (2)配置流程引數傳遞:Message

        活動環節上有入口、出口引數,在活動環節上把出入參與與表單上的資料項相關聯。

        

                                                                                                           圖9

        (2.1)建立Message Map

        

                                                                                                                      圖10

        (2.2)先建立Message,再建立其Element

        

                                                                                                                            圖11

        (2.3)首先,設定啟動節點傳入Message

        

                                                                                                                                                  圖12

        選擇具體Message

        

                                                                                                                          圖13

        (2.4)環節入口參(Pre Assignments)

        Message輸入、輸出從Source到Target,選中到Assignment。

        

                                                                                                                                  圖14

        結果如下:

        

                                                                圖15

        (2.5)環節出口,出參(Post Assignments),處理提交後,出口把資源傳到流程訊息Message

        領導審批介面中,ns2:***Model_OP,為Output,把介面的值傳到流程的訊息Message中。

        

                                                                                                                                   圖16

        注:所有的流程環節通常都要設定傳遞引數Message,並其上面所承載表單關鍵資料專案對應。

3、除錯、測試流程

        

                                                                                                                                           圖17

        (1)單步跟蹤除錯介面

        

                                                                                                                                       圖18

4、關於Message強調說明、使用

        在專案中,使用統一的Message定義,方法如下:

        (1)匯出已經定義的Message定義XML Schema

        

                                                                                                                                         圖19

        (2)粘出Show XML內容

        (3)在其他BPM裡匯入建立Message

        (4)匯入XML Schema

        

                                                                                                                                                   圖20


5、設定決策環節

        菱形的環節是判斷節點,用於流程分支處理,如下圖所示的分支,領導同意走採購員採購環節,否則走重新修改申請單環節,再審批。

        

                                                                                                                                                圖21

        如上圖21所示,選擇輸入條件:Condition

        

                                                                                                                                           圖22

        通過“Replace Content With Fixed Value”設定,傳遞固定值/特定值。

        


6、Debug測試

        

                                                                                                             圖23

        注:流程例項管理,Process Instance Manager中需要流程描述要清晰些,方便使用流程例項管理。

7、通過XForm表單,啟動流程

        (1)通過XForm介面啟動流程

        新建TestStartBPMXForm,增加“啟動流程”按鈕。

        

                                                                                                               圖24

        

                                                                                                            圖25

        如上圖25所示,新建model(Manager Models中,選擇“+”),model名稱為StartBPMModel。

        

                                                                                      圖26

        (注:上圖中Business Object有誤,應為StartBPMModel)

        (2)寫按鈕處理指令碼程式碼

function start_Click(eventObject)
{
    var req = StartBPM.XMLDocument;
    
    cordys.setNodeText(req,".//*[local-name()='goodsName']",goodsName.getValue());
    
    cordys.setNodeText(req,".//*[local-name()='counts']",counts.getValue());
    cordys.setNodeText(req,".//*[local-name()='price']",price.getValue());
    
    StartBPMModel.setMethodRequest(req);


    StartBPMModel.reset();
    var resp=StartBPMModel.getData();
    var instanceid=cordys.getNodeText(resp,".//*[local-name()='instance_id']");
    InstanceID.setValue(instanceid);   
}

        (3)設定流程例項Model名稱

        在WorkSpace中,選中BPM資料夾下BPMTest2,滑鼠右鍵選單,選擇屬性。獲取Soap

        

                                                                                             圖27

        使用Qualified Name內容,把“.”換成“/”。如下圖28所示,並在介面底部切換Tab頁面到XML頁面。

        

                                              圖28

<xml>
  <xml xmlns="" id="StartBPMModel">
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SOAP:Body>
        <ExecuteProcess xmlns="http://schemas.cordys.com/bpm/execution/1.0" type="">
          <type>definition</type>
          <receiver>BPM/BPMTest2</receiver>
          <message>
            <Test xmlns="http://schemas.cordys.com/default">
              <goodsName xmlns="http://schemas.cordys.com/default">鋼筆</goodsName>
              <counts xmlns="http://schemas.cordys.com/default">10</counts>
              <price xmlns="http://schemas.cordys.com/default">8</price>
            </Test>
          </message>
        </ExecuteProcess>
      </SOAP:Body>
    </SOAP:Envelope>
  </xml>
</xml>

        上面程式碼中<receiver>BPM/BPMTest2</receiver>為流程Soap請求名稱。在Process Instance Manager監控管理中可見此流程例項。

        

                                                                                                                                     圖28

8、測試流程待辦

        

                                                                                                                                    圖29

由於時間有限,不足之處,歡迎討論反饋。


相關文章