连接对象

介绍

BPMN 2.0 中,连接对象 用于定义流程模型中不同元素之间的信息关系和流动。它们连接活动、事件和网关,指导流程流动或传递数据和消息。主要的连接对象包括 sequence flowsmessage flowsassociations

Sequence FlowSequence Flow
Message FlowMessage Flow
AssociationAssociation

Sequence Flow

Sequence Flow 定义了流程中活动、事件和网关的执行顺序。它展示了任务从一个步骤到下一个步骤的逻辑推进。

BPMN Sequence Flow

它表示任务执行的顺序,显示为以箭头结束的直线。可表示条件或默认路径。

  • 示例: 一个 Sequence Flow 将“提交申请”任务连接到“审核申请”任务,表明审核在提交之后进行。
  • Sequence Flow 类型:
    • 常规 Sequence Flow: 活动之间的默认流动。
    • 条件 Sequence Flow: 仅在满足特定条件时才进行的序列流(用小菱形指示)。
    • 默认 Sequence Flow: 如果没有满足条件,则使用的回退路径(起始点用斜线指示)。
  • 使用场景: 使用 Sequence Flow 引导流程逐步推进,确保活动按指定顺序执行。

Message Flow

Message Flow 表示不同参与者或流程之间的通信,通常在它们属于不同池时。用于展示流程之间的信息交换,这些流程可能独立运作。

BPMN Message Flow

Message Flow 连接器展示了不同池之间的通信,或跨部门等组织边界。它不用于链接同一个池内的事件或活动。这个连接器用虚线表示,起始为圆形,结束为开放式箭头。

  • 示例: 一个 Message Flow 连接一池中的“发送发票”任务(代表供应商)到另一池中的“接收发票”任务(代表客户),表明发票在它们之间发送。
  • 使用场景: 使用 Message Flow 描述不同实体或商业参与者(代表为独立的池)之间的通信,例如一家企业发送订单请求到另一家企业。

Association

Association 用于连接工件(例如数据对象、文本注释或组)与流程对象(活动、事件、网关),提供上下文或澄清元素之间的关系。Association 不影响流程的顺序,但用于文档记录和附加细节。

BPMN Association

此元素显示为一个虚线,既没有箭头也没有圆圈,它用于连接事件、活动或网关与工件。

  • 示例: 一个 Association 连接一个“生成报告”任务到一个“报告文档”(一个数据对象),表明该任务生成文档。
  • Association 类型:
    • 常规 Association: 连接任务到数据对象或注释等元素。
    • 方向 Association: 显示数据从任务流出或流入(用箭头指示)。
    • 双向 Association: 指示元素之间的双向关系(用两个箭头指示)。
  • 使用场景: 在不影响流程流的情况下,使用 Association 链接附加信息(如数据对象、文本注释)到任务或事件。

连接对象的关键点

  • Sequence Flow: 定义单个流程(同一个池内)中任务或事件的顺序。用于指定活动流、条件和决策。
  • Message Flow: 表示不同参与者或流程(跨不同池)之间的通信。用于流程交换信息或触发另一个流程中的动作时。
  • Association: 将附加信息如数据、文档或注释链接到活动,提供上下文或解释但不控制流程流动。

示例

设想一个管理客户订单的流程:

  • Sequence Flow: 收到订单后,系统处理订单,然后发送到发货。每个步骤(接收、处理、发货)通过 sequence flows 连接。
  • Message Flow: 订单处理后,一条消息会被发送到外部物流公司进行发货。这一通信通过两个实体之间的 message flow 表现出来。
  • Association: 一个“客户订单”数据对象与“接收订单”任务关联,表示该任务处理订单数据。

总结

  • Sequence Flow: 管理单个流程内活动的顺序。
  • Message Flow: 促进不同实体或池之间的通信。
  • Association: 将数据或注释等工件链接到流程元素,提供额外的上下文。

这些连接对象对定义任务和事件的链接方式、数据在流程中的流动方式以及流程在BPMN模型中相互作用的方式至关重要。