Cordys BOP 4平臺的子流程與嵌入子流程對比以及子流程建模技術
子流程含義是在某個流程流轉過程中可以建立一個新的流程並執行,結束後可以在此返回父流程。
關於子流程
子流程
子流程是BPMN構件,是在一個流程中的複合的活動。子流程可以分解為一系列更精細的活動。子流程通過父流程例項化。
子流程可以設計成交易的一部分,下面列出三種可能的交易結果:
- 成功完成(Successful completion):流程按順序執行,並且交易執行成功;
- 取消(Cancel):交易內的活動回滾,並且補充特定活動;
- 異常(Exception):出現異常活動不需要回滾,將從錯誤事件繼續流轉。
嵌入子流程
嵌入子流程是BPMN組構件,用於分組屬於特定環境的活動。這有助於通過摺疊一個嵌入的子流程來隱藏活動的複雜性。它也有助於連結超時異常和補償,這是常見的嵌入子流程的所有活動。
注:
當超時事件附上嵌入子流程,所有未完成任務從訊息箱移除。
如果在流程執行期間遇到“終止活動(terminate actively)”,那麼所有未完成任務從收件訊息箱中移除,並且活動置成“廢棄(Obsolete)”。這種狀態從流程例項活動檢視中可見。終止表示嵌入子流程終止,並且流程流轉從下一個活動繼續流轉(在嵌入子流程之後)。嵌入子流程圖例如下圖所示。
圖1-1
子流程與嵌入子流程對比
嵌入子流程不是一個獨立流程,沒有起始事件(Start event)和結束事件(End event),只是流程中的區域性,為了表示簡單才採用嵌入子流程方法。
子流程是一個獨立完成的流程,可供其他正常流程呼叫,有起始事件(Start event)和結束事件(End event)。
子流程建模及使用
第一步:新建流程
在Workspace Documents中新建Business Process Model,如下圖2-1所示空白流程,包括兩個活動環節,流程命名為sub_processA。
圖2-1
對流程進行如下配置,效果如下圖2-2所示。
圖2-2
(1)流程掛接表單
拖拽表單(名稱為TestForEach)到流程活動環節上,如上圖2-2所示,Activity分別命名為“子流程活動1”、“子流程活動2”。
(2)訊息配置(Message map)
圖2-3
建立訊息(Message)名稱為sub_msg,內包含兩個元素(Element)sub_msg_name、sub_msg_data。
(3)訊息繫結到表單
在每個活動環節上,使用“Pre Assignments”繫結輸入訊息元素到表單中Input上,如上圖2-3所示,使用“Post Assignments”繫結表單輸入Input到訊息元素上。
(4)配置流程啟動事件(Start Event)
此處配置是為流程接收父流程傳入引數而設定輸入訊息介面,設定Start屬性(Properties),其中Trigger Type為“Message”,Input Message設定為“bpm:sub_msg”(通過XPath表示式獲得)。
圖2-4
(5)配置流程結束事件(End Event)
此處配置是為流程結束時返回訊息給父流程而設定的輸出訊息介面,設定End屬性,其中End Type為“Message”,Output Message為“bpm:sub_msg”。
注:此處的Message是在Message Map中配置過的內容。
圖2-5
(6)釋出流程
釋出流程,可做為其他流程的子流程來使用。
第二步:新建流程使用子流程
本段第二步內容是講述流程使用子流程方法,以及父子關係的設定。
(1)新建流程
新建流程做為父流程使用,準備使用前面所建的流程。在Business Process Model介面左側,切換選項頁面到Workspace,按下圖2-6所示,拖拽上面新建流程“sub_processA”到圖中。
圖2-6
拖拽到位後,所拖拽圖示變成類似活動環節,再畫上連線線即可,如下圖2-7所示。把後續活動節點命名為主流程活動2,並繫結表單。命名流程為TestSubProcess1。
圖2-7
(2)新建主(父)流程訊息(Message Map)
建立訊息(Message)名稱為main_msg,內包含兩個元素(Element)main_msg_name、main_msg_data。
圖2-8
(3)配置子流程活動環節
子流程活動(sub_processA)屬性定義如下:
General內容如下圖2-9所示,基本儲存預設狀態。
圖2-9
Message沒人如下圖2-10所示,基本保持預設值即可。
圖2-10
(4)訊息繫結到子流程
這裡所說的子流程就是上面拖拽進入流程中“sub_process”流程,按流程活動環節方式配置,使用“Pre Assignments”繫結輸入訊息元素到子流程中Message上,做為子流程的輸入,如上圖2-8所示,main_msg_name對應sub_msg_name、main_msg_data對應main_msg_data。使用“Post Assignments”繫結子流程結束事件訊息輸出主流程訊息元素上。
(5)配置流程啟動事件(Start Event)
此處配置是為流程接收外部傳入引數而設定輸入訊息介面,設定Start屬性(Properties),其中Trigger Type為“Message”,Input Message設定為“bpm:main_msg”(通過XPath表示式獲得)。
(6)其他配置第三步、測試流程
在子流程活動環節上使用For Each迴圈
第一步:新建流程
同“子流程建模及使用”章節的第一步,在此略。
第二步:新建流程使用子流程和For Each迴圈
(1)新建流程
新建流程命名為TestSubProcess2,其中“子流程在主流程1”是名稱為sub_processA流程。按For Each迴圈方法把子流程活動配置成For Each迴圈組構件。
圖3-1
(2)新建主(父)流程訊息(Message Map)
建立訊息(Message)名稱為main_msg,先建迭代元素,命名為main_elem,內包含兩個元素(Element)main_elem_name、main_elem_data。此main_msg訊息承載迭代引數到子流程。
再建立訊息名稱為main_ret_msg,做為接收子流程返回訊息使用,接著在其內部建兩個元素(Element)main_ret_msg_name、main_ret_msg_data。
圖3-2
(3)配置For Each屬性
設定迭代變數Iterator Name為iterator subprocess,選擇條件值Select Condition為bpm:main_msg/bpm:main_elem。(注,此值是通過XPath選擇器獲得)
圖3-3
(4)訊息繫結到子流程
這裡所說的子流程就是上面拖拽進入流程中“sub_process”流程,按流程活動環節方式配置,使用“Pre Assignments”繫結輸入訊息元素到子流程中Message上,做為子流程的輸入,如上圖3-2所示,main_elem_name對應sub_msg_name、main_elem_data對應main_msg_data。
注:輸入訊息是迭代資料,所以main_elem_name實際對應XPath表示式是instance:iterator_subprocess/bpm:main_elem_name/text(),如下圖3-4所示。
圖3-4
(5)繫結子流程返回訊息到主流程
使用“Post Assignments”繫結子流程結束事件訊息輸出主流程訊息元素上,sub_msg_name對應main_ret_msg_name、sub_msg_data對應main_ret_msg_data,如下圖3-5所示。
(7)釋出流程
第三步:測試流程
略。
由於作者水平有限,歡迎反饋討論。
參考:
Cordys BOP 4平臺開發入門實戰演練——For Each流程建模開發 肖永威 2015.4
Cordys BOP 4平臺開發入門實戰演練——流程建模開發(BPM) 肖永威 2015.4
相關文章
- Cordys BOP 4平臺開發入門實戰演練——For Each流程建模開發
- Cordys BOP 4平臺開發入門實戰演練——Until流程建模開發
- Cordys BOP 4平臺開發入門實戰演練——流程建模開發(BPM)
- Cordys BOP 4平臺開發入門實戰演練——會籤流程建模開發
- Cordys BOP 4平臺開發入門實戰演練——While迴圈流程建模開發及測試While
- Cordys BOP4業務流程模型中所使用的常用BPMN構件模型
- 關於鑑權流程的捕獲和冒泡子流程
- (Cordys BOP 4.3)在業務流程模型中使用人工活動模型
- 實時互動平臺流程與技術分析
- Cordys BOP 4.3平臺使用小經驗—資料庫連線管理、匯出流程模型為XPDL資料庫模型
- 《流程引擎原理與實踐》開源電子書
- 如何增強你的電子採購流程?
- Cordys BOP 4 APIs 列表API
- Cordys BOP平臺上角色定義和功能
- Cordys BOP 4平臺開發實戰——MongoDB提供文件服務(1)MongoDB
- 對業務流程建模而不是對實體建模 - poweredbybeard
- OpenHarmony原始碼解析之電話子系統——通話流程原始碼
- openGauss 子事務併發回滾流程最佳化
- 業務流程模型與資料流程圖的比較 - brcommunity模型流程圖Unity
- react和vue的渲染流程對比ReactVue
- 財務關賬流程與IT技術工作
- ERP出入庫進階操作與子流程--開源軟體誕生28
- [技術分析]探討大世界遊戲的製作流程及技術——前期流程篇遊戲
- 紙質文件管理系統加速文件資料電子化流程
- Cordys BOP 4平臺開發入門實戰演練——Webservices開發(高階)Web
- JVM-part1-類載入子系統組成,及流程JVM
- 物流平臺如何與電商平臺進行自動化流程管理
- ERP應收應付進階操作與子流程--開源軟體誕生29
- 3-電子支付技術與系統
- OCR識別的技術流程解析1
- OCR識別的技術流程解析2
- 對話式互動技術原理及流程揭祕
- 清華大學類比電子技術影片教程
- 流程表單平臺優勢明顯,助力企業流程化辦公!
- 探討BPM流程申請活動與退回操作的建模
- 資料庫恢復子系統的常見技術和方案對比(一)資料庫
- 資料庫恢復子系統的常見技術和方案對比(二)資料庫
- 主流程式語言的優勢與劣勢對比