BPMN 中的泳池与泳道简介

在 BPMN(业务流程建模与标记法)中,泳池(Pool)泳道(Lane) 是用于组织和展示流程中不同参与者或角色的图形化工具。它们的主要作用是清晰地划分职责和功能,帮助理解复杂流程中每个步骤的负责人。

  • 泳池(Pool):代表流程中的一个主要参与者或实体,例如一个部门、组织或角色。泳池通常作为一个图形容器,将不同参与者之间的活动分开。通常一个流程图中可以有一个或多个泳池。如果流程涉及多个独立实体(如公司内部和外部的交互),会使用多个泳池;如果只涉及单一组织内部的流程,通常只有一个泳池。
  • 泳道(Lane):是泳池的子划分,用于进一步区分泳池内不同角色或职能的活动。泳道可以水平或垂直排列,通常按角色、部门或功能划分。流程可以在泳池内跨泳道流转,而泳道本身不影响流程逻辑,仅用于可视化区分。

在采购流程示例中,泳池和泳道的作用是直观展示“员工”、“领导”和“财务”三种角色在流程中的职责分配。它们不改变流程的执行逻辑,但通过图形化的方式让流程更清晰易懂。


示例:采购流程的 BPMN XML 文件

以下是一个基于采购流程的 BPMN 2.0 XML 文件示例,展示了如何使用泳池和泳道来建模“员工”、“领导”和“财务”三个角色的活动。假设采购流程包括以下步骤:

  1. 员工提交采购申请。
  2. 领导审批申请。
  3. 财务处理付款。
<?xml version="1.0" encoding="UTF-8"?>

<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"

xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"

targetNamespace="http://www.example.org/procurement">

<process id="ProcurementProcess" name="采购流程" isExecutable="true">

<!-- 泳池定义 -->

<collaboration id="Collaboration">

<participant id="Pool_Procurement" name="采购流程" processRef="ProcurementProcess"/>

</collaboration>

<!-- 泳道定义 -->

<laneSet id="LaneSet_Procurement">

<lane id="Lane_Employee" name="员工">

<flowNodeRef>StartEvent</flowNodeRef>

<flowNodeRef>Task_SubmitRequest</flowNodeRef>

</lane>

<lane id="Lane_Leader" name="领导">

<flowNodeRef>Task_ApproveRequest</flowNodeRef>

</lane>

<lane id="Lane_Finance" name="财务">

<flowNodeRef>Task_ProcessPayment</flowNodeRef>

<flowNodeRef>EndEvent</flowNodeRef>

</lane>

</laneSet>

<!-- 流程节点定义 -->

<startEvent id="StartEvent" name="流程开始"/>

<userTask id="Task_SubmitRequest" name="提交采购申请"/>

<userTask id="Task_ApproveRequest" name="审批采购申请"/>

<userTask id="Task_ProcessPayment" name="处理付款"/>

<endEvent id="EndEvent" name="流程结束"/>

<!-- 流程流转 -->

<sequenceFlow id="Flow_1" sourceRef="StartEvent" targetRef="Task_SubmitRequest"/>

<sequenceFlow id="Flow_2" sourceRef="Task_SubmitRequest" targetRef="Task_ApproveRequest"/>

<sequenceFlow id="Flow_3" sourceRef="Task_ApproveRequest" targetRef="Task_ProcessPayment"/>

<sequenceFlow id="Flow_4" sourceRef="Task_ProcessPayment" targetRef="EndEvent"/>

</process>

<!-- 图形信息(简略,实际中会包含坐标等信息) -->

<bpmndi:BPMNDiagram id="BPMNDiagram_1">

<bpmndi:BPMNPlane bpmnElement="Collaboration">

<bpmndi:BPMNShape id="Pool_Procurement_Di" bpmnElement="Pool_Procurement"/>

<bpmndi:BPMNShape id="Lane_Employee_Di" bpmnElement="Lane_Employee"/>

<bpmndi:BPMNShape id="Lane_Leader_Di" bpmnElement="Lane_Leader"/>

<bpmndi:BPMNShape id="Lane_Finance_Di" bpmnElement="Lane_Finance"/>

</bpmndi:BPMNPlane>

</bpmndi:BPMNDiagram>

</definitions>

XML 文件解释

  1. 泳池(Pool)
    • 在 XML 中,泳池通过 <participant> 元素定义,id="Pool_Procurement" 表示这是一个名为“采购流程”的泳池,关联到具体的流程定义 processRef="ProcurementProcess"。
    • 在本例中,只有一个泳池,表示整个流程发生在同一组织内部。如果需要表示多个组织(如公司与供应商之间的交互),可以定义多个 <participant>。
  2. 泳道(Lane)
    • 泳道通过 <laneSet> 和 <lane> 元素定义。每个泳道对应一个角色:Lane_Employee(员工)、Lane_Leader(领导)、Lane_Finance(财务)。
    • 每个 <lane> 使用 <flowNodeRef> 指定该泳道包含的流程节点。例如,Lane_Employee 包含“流程开始”和“提交采购申请”两个节点。
  3. 流程节点与流转
    • 流程节点包括开始事件(<startEvent>)、用户任务(<userTask>)和结束事件(<endEvent>),分别对应流程的各个步骤。
    • <sequenceFlow> 定义节点之间的流转顺序,例如从“提交采购申请”到“审批采购申请”。
  4. 图形信息
    • <bpmndi:BPMNDiagram> 部分定义了流程图的图形化展示信息(如泳池和泳道的布局)。实际中会包含坐标和尺寸信息,这里为简洁起见省略。

泳池与泳道在采购流程中的实际用途

通过上述 XML 和采购流程示例,泳池和泳道的实际用途可以总结如下:

  1. 职责清晰化
    • 泳道将流程按角色(员工、领导、财务)划分,每个泳道内的活动明确由对应角色负责。例如,员工负责“提交采购申请”,领导负责“审批”,财务负责“处理付款”。这种划分让流程的责任归属一目了然。
  2. 可视化复杂流程
    • 在复杂的流程中,涉及多个角色或部门时,泳道通过图形化的方式将不同角色的任务分隔开,避免流程图显得杂乱。例如,在采购流程中,泳道直观展示了任务如何从员工流转到领导,再到财务。
  3. 跨部门协作
    • 如果采购流程涉及外部实体(如供应商),可以使用多个泳池来表示不同组织之间的交互。每个泳池内的泳道再细分角色。例如,一个泳池表示公司内部,包含员工、领导、财务泳道;另一个泳池表示供应商,包含其内部角色。
  4. 不影响流程逻辑
    • 泳池和泳道仅用于可视化组织,不影响流程的执行逻辑。无论是否使用泳道,流程的流转顺序(由 <sequenceFlow> 定义)保持不变。这使得泳池和泳道成为一种灵活的展示工具,适用于 Activiti/Flowable 等流程引擎。

实际应用场景

在 Activiti 或 Flowable 流程引擎中,泳池和泳道的应用场景包括:

  • 流程设计:在流程建模工具(如 Activiti Designer 或 Flowable Designer)中,泳池和泳道帮助设计者直观地分配任务给不同角色。
  • 流程监控:在流程运行时,泳道可以帮助管理者快速识别每个任务的负责人,便于跟踪和审计。
  • 跨部门流程:对于涉及多个部门的复杂流程(如采购、报销、招聘),泳道可以清晰展示各部门的任务分配。

总结

泳池和泳道在 BPMN 中的核心作用是可视化职责划分。在采购流程中,泳池代表整个流程的容器,泳道则按角色(员工、领导、财务)组织任务,使得流程的责任分配和流转路径更加直观。这种设计不仅便于流程设计和理解,还能提高协作效率,尤其在 Activiti/Flowable 等流程引擎中应用广泛。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐