工作流數據模式-交互模式18種

版權聲明:工作流模式版權歸 Workflow Patterns 組 織 ( http://www.workflowpatterns.com ) 所 有 。 經 Workflow Patterns授權,中文簡體版由辛鵬和榮浩翻譯。未經譯者書面許可,不得將該中文簡體版用於商業目的。

交互模式共有18種,討論工作流系統各組件以及外部環境之間可能存在的數據交互類型。交互模式分爲兩組:內部數據交互和外部數據交互。

內部數據交互有如下6種。

  1. 活動到活動模式:活動之間傳遞數據。
  2. 塊活動到子流程模式:塊活動給子流程傳遞數據。
  3. 子流程到塊活動模式:子流程給塊活動傳遞數據。
  4. 傳遞數據到多實例活動模式:活動傳遞數據給後續多實例活動。
  5. 從多實例活動傳遞數據模式:多實例活動給後續活動傳遞數據。
  6. 流程實例到流程實例模式:流程實例之間傳遞數據。

外部數據交互有如下12種。

  1. 活動推數據到環境模式:活動給外部環境傳遞數據。 1. 活動從環境拉數據模式:活動從外部環境獲取數據。
  2. 環境推數據到活動模式:活動接受並使用外部環境主動傳遞給它的數據。
  3. 環境從活動拉數據模式:活動接受外部環境的數據請求,並傳遞數據給外部環境。
  4. 流程實例推數據到環境模式:流程實例給外部環境傳遞數據。
  5. 流程實例從環境拉數據模式:流程實例從外部環境獲取數據。
  6. 環境推數據到流程實例模式:流程實例接受並使用外部環境主動傳遞給它的數據。
  7. 環境從流程實例拉數據模式:流程實例接受外部環境的數據請求,並傳遞數據給外部環境。
  8. 流程執行環境推數據到環境模式:流程執行環境(流程定義級別的數據)給外部環境傳遞數據。
  9. 流程執行環境從環境拉數據模式:流程執行環境從外部環境獲取數據。
  10. 環境推數據到流程執行環境模式:流程執行環境接受並使用外部環境主動傳遞給它的 數據。
  11. 環境從流程執行環境拉數據模式:流程執行環境接受外部環境的數據請求,並傳遞數據給外部環境。

圖C-24 工作流數據交互模式

活動到活動(WDP_9: Task to Task)

描述
在一個流程實例裏,活動實例能夠給後續的活動實例傳遞數據。

圖C-25 活動到活動的數據交互

應用
後續活動需要使用前續活動所產生的數據。例如,當前活動參與者指定後續活動的參與者、緊急程度和期望完成時間。活動之間的數據交互屬於工作流系統裏最基本的功能,存在兩種主要的實現方式:傳值和共享數據。

傳值:每個活動都有自己的活動變量,使用流程實例變量進行活動變量之間的傳值,如圖C-26 所示。

圖C-26 通過傳值在活動間傳遞數據

共享數據:活動沒有自己的活動變量,直接使用流程實例變量,避免數據的顯式傳遞。這種 實現是最簡單也是最常用的方式,但是當流程實例中存在兩個或以上同時執行的活動實例時,會 存在數據併發操作的問題,如圖C-27所示。

圖C-27 共享流程實例變量

塊活動到子流程(WDP_10: Block Task to Sub-Workflow Decomposition)

描述
在一個流程實例裏,塊活動實例能夠給與之對應的子流程實例傳遞數據。

 圖C-28 塊活動到子流程的數據傳遞

應用

作爲獨立建模的流程模型,子流程在多個流程裏複用。因爲任何複用複用的都是行爲而不 是數據,所以子流程實例的執行上下文需要父流程實例傳遞業務數據或者業務關聯數據進行初 始化。

和活動間的數據交互一樣,存在兩種主要的實現方式:傳值和共享數據。

傳值:我們在塊活動定義裏進行數據映射,將塊活動中的變量與子流程中的變量進行一一映 射,在運行期,父流程實例會將相應的變量傳值到子流程中的對應變量中,子流程實例執行完畢 再將值傳回,如圖C-29所示。

圖C-29 通過傳值給子流程傳遞數據

共享數據:子流程實例直接使用塊活動變量,避免數據的顯式傳遞,如圖C-30所示。

圖C-30 共享塊活動變量

子流程到塊活動(WDP_11: Sub-Workflow Decomposition to Block Task)

描述

在一個流程實例裏,子流程實例能夠給與之對應的塊活動實例傳遞數據。

應用

子流程實例執行結束後給調用其的塊活動實例返回執行結果。

傳遞數據到多實例活動(WDP_12: to Multiple Instance Task)

描述

在一個流程實例裏,前續活動實例能夠給後續多實例活動的每一個工作項傳遞數據。

圖C-31前續活動到多實例活動的數據傳遞

從多實例活動傳遞數據(WDP_13: from Multiple Instance Task)

描述

在一個流程實例裏,多實例活動實例能夠給後續活動實例傳遞數據。

應用

多實例活動的各個工作項彙總執行結果並影響後續活動實例的執行。

流程實例到流程實例(WDP_14: Case to Case)

描述

流程實例在執行過程中能夠給其他正在執行的流程實例傳遞數據。

圖C-32 流程實例之間的數據交互

活動推數據到環境(WDP_15: Task to Environment - Push-Oriented)

描述

活動實例能夠給外部環境傳遞數據,外部環境包括了外部數據倉庫(數據庫)、外部應用和 外部服務等。

圖C-33 活動實例推數據到外部環境

應用

活動從環境拉數據(WDP_16: Environment to Task – Pull-Oriented)

當一個流程實例跨越多個業務系統時,業務系統之間的數據通過工作流系統完成傳遞。

活動實例能夠從外部環境獲取數據。

環境推數據到活動(WDP_17: Environment to Task – Push-Oriented)

描述

活動實例能夠接受並使用外部環境主動傳遞給它的數據。

圖C-35 外部環境推數據到活動實例

環境從活動拉數據(WDP_18: Task to Environment - Pull-Oriented)

描述

活動實例能夠接受外部環境的數據請求,並傳遞數據給外部環境。

圖C-36 外部環境從活動實例拉數據

流程實例推數據到環境(WDP_19: Case to Environment - Push-Oriented)

描述

流程實例能夠給外部環境傳遞數據。

圖C-37 流程實例推數據到外部環境

應用

在對報銷流程進行分析時,我們發現大部分的報銷金額都低於500元,然而這些報銷流程卻 都要經過很多環節,在與客戶確認後,我們將低於500元的報銷限定於部門內部審批即可,由此 整個報銷過程大大加快,同時對公司省下很多辦公成本。

流程實例從環境拉數據(WDP_20: Environment to Case - Pull-Oriented)

描述

流程實例能夠從外部環境獲取數據。

圖C-38 流程實例從外部環境拉數據

環境推數據到流程實例(WDP_21: Environment to Case - Push-Oriented)

描述

流程實例能夠接受並使用外部環境主動傳遞給它的數據。如中間消息事件。

圖C-39 外部環境推數據到流程實例

環境從流程實例拉數據(WDP_22: Case to Environment - Pull-Oriented)

描述

流程實例能夠接受外部環境的數據請求,並傳遞數據給外部環境。

圖C-40 外部環境從流程實例拉數據

流程執行環境推數據到環境(WDP_23: Workflow to Environment - Push-Oriented)

描述

流程執行環境能夠給外部環境傳遞數據。

圖C-41 流程執行環境推數據到外部環境

流程執行環境從環境拉數據(WDP_24: Environment to Workflow - Pull-Oriented)

描述

流程執行環境能夠從外部環境獲取數據。

圖C-42 流程執行環境從外部環境拉數據

環境推數據到流程執行環境(WDP_25: Environment to Workflow - Push-Oriented)

描述

流程執行環境能夠接受並使用外部環境主動傳遞給它的數據。

圖C-43 外部環境推數據到流程執行環境

環境從流程執行環境拉數據(WDP_26: Workflow to Environment - Pull-Oriented)

描述

流程執行環境能夠接受外部環境的數據請求,並傳遞數據給外部環境。

圖C-44 外部環境從流程執行環境拉數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章