Skip to content

BPMN 2.0

概述

业务流程建模与标注(Business Process Model and Notation,简称 BPMN)是一种用于业务流程建模的图形化表示法。 BPMN 2.0 是其最新版本,由对象管理组织(OMG)发布,旨在为业务流程的设计、分析、执行和监控提供一种标准化的方法。 通过 BPMN 2.0,业务人员和技术人员可以使用统一的语言进行沟通和协作,从而提高业务流程的效率和透明度。

BPMN 2.0 基本元素

活动(Activities)

  • 任务(Task):任务是 BPMN 中最基本的工作单元,表示一个单一的工作步骤。任务可以进一步分类为:

    • 用户任务(User Task):需要人工执行的任务,通常由用户通过用户界面完成。
    • 服务任务(Service Task):由计算机系统自动执行的任务,如调用Web服务或执行数据库操作。
    • 脚本任务(Script Task):执行预定义脚本的任务,通常用于自动化处理。
    • 手工任务(Manual Task):不需要系统支持的手工任务,如签名或检查。
    • 业务规则任务(Business Rule Task):执行业务规则引擎的任务,通常用于决策支持。
    • 发送任务(Send Task):发送消息的任务,用于通知其他流程或系统。
    • 接收任务(Receive Task):等待消息的任务,通常用于同步不同流程或系统。
  • 子流程(Sub-Process):子流程是包含多个任务的复合活动,可以折叠或展开显示。子流程可以进一步分类为:

    • 嵌入式子流程(Embedded Sub-Process):嵌入在父流程中的子流程,不能独立执行。
    • 调用子流程(Call Activity):引用外部定义的子流程,可以在多个流程中复用。
  • 事务(Transaction):事务是一个需要保证一致性的复合活动,通常涉及多步骤操作,需要全部成功或全部失败。

事件(Events)

  • 开始事件(Start Event):表示流程的开始。可以触发流程启动的事件类型包括:

    • 消息事件(Message Event):接收到消息时触发,通常用于与外部系统或流程的交互。
    • 定时事件(Timer Event):特定时间或周期触发,如每天定时执行的任务。
    • 条件事件(Conditional Event):条件满足时触发,如库存低于某个阈值时触发补货流程。
    • 信号事件(Signal Event):接收到信号时触发,通常用于广播通知多个接收者。
    • 错误事件(Error Event):发生错误时触发,用于异常处理。
  • 中间事件(Intermediate Event):表示流程中的中间事件。可以放置在顺序流上或活动内部,常见类型包括:

    • 捕获事件(Catch Event):等待特定事件发生,如等待消息或信号。
    • 抛出事件(Throw Event):触发特定事件,如发送消息或信号。
  • 结束事件(End Event):表示流程的结束。可以终止流程的事件类型包括:

    • 消息结束事件(Message End Event):发送消息后结束,用于通知其他流程或系统。
    • 错误结束事件(Error End Event):发生错误后结束,用于异常处理。
    • 信号结束事件(Signal End Event):发送信号后结束,用于广播通知多个接收者。

网关(Gateways)

  • 并行网关(Parallel Gateway):用于创建并行分支,所有分支同时执行,常用于需要并行处理的场景。
  • 排他网关(Exclusive Gateway):用于根据条件选择一个分支,满足条件的分支执行,常用于决策点。
  • 包容网关(Inclusive Gateway):用于根据条件选择一个或多个分支,满足条件的分支执行,常用于多选一或多选多的场景。
  • 事件网关(Event-based Gateway):根据事件选择分支,等待某个事件发生后执行对应分支,常用于事件驱动的流程。
  • 复杂网关(Complex Gateway):用于处理复杂的分支逻辑,通常结合多个条件或事件。

数据(Data)

  • 数据对象(Data Object):表示流程中使用或生成的数据,如文档、表单等。
  • 数据存储(Data Store):表示持久化的数据存储,如数据库、文件系统等。
  • 数据输入(Data Input):表示流程的输入数据,通常在开始事件或任务中定义。
  • 数据输出(Data Output):表示流程的输出数据,通常在结束事件或任务中定义。

连接对象(Connecting Objects)

  • 顺序流(Sequence Flow):表示活动之间的顺序,通常用实线表示,箭头指向下一个活动。
  • 消息流(Message Flow):表示不同参与者之间的消息传递,通常用虚线表示,箭头指向消息接收者。
  • 关联(Association):用于连接数据对象和活动,表示数据的输入或输出关系。

BPMN 2.0 扩展元素

  • 泳道(Swimlane):用于划分不同的参与者或角色,帮助明确任务的责任归属。
  • 池(Pool):表示一个参与者或系统,整个池代表一个独立的业务流程,通常用于跨组织的流程建模。
  • 泳道(Lane):表示池内的角色或部门,每个泳道表示一个特定的角色或部门的任务,帮助细化流程责任。

BPMN 2.0 执行语义

BPMN 2.0 不仅定义了图形符号,还定义了这些符号的执行语义:

  • 流程实例:每次流程执行都会创建一个流程实例,代表一次具体的业务操作。
  • 任务执行:任务可以是手工任务、用户任务、服务任务等,每种任务有不同的执行方式,如手工任务需要人工完成,服务任务由系统自动执行。
  • 事件处理:事件可以触发流程的启动、暂停、继续或结束,如开始事件触发流程启动,结束事件终止流程。
  • 网关控制:网关用于控制流程的分支和合并,通过条件或事件决定分支的执行路径,如排他网关根据条件选择一个分支,并行网关同时执行多个分支。

BPMN 2.0 应用场景

BPMN 2.0 可以应用于各种业务流程建模场景:

  • 业务流程自动化:通过 BPMN 2.0 模型进行流程自动化,减少人为干预,提高效率,常用于企业资源规划(ERP)、客户关系管理(CRM)等系统。
  • 流程分析与优化:通过 BPMN 2.0 模型进行流程分析与优化,发现瓶颈和改进点,帮助企业提升业务流程的效率和质量。
  • 跨组织流程协作:通过 BPMN 2.0 模型进行跨组织的流程协作,确保不同组织间的流程无缝衔接,提高协作效率,常用于供应链管理、合作伙伴关系管理等场景。

参考链接https://camunda.com/bpmn/reference/