工作流数据模式-交互模式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 外部环境从流程执行环境拉数据

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