bpmn 的理解和元素

文章目录

  • 定义
  • [Flow Objects(流程核心元素)](#Flow Objects(流程核心元素))
    • [Event 必须分三类:](#Event 必须分三类:)
    • [Activity(活动):Activity 就是流程中"正在干活的那一段时间"干的事。](#Activity(活动):Activity 就是流程中“正在干活的那一段时间”干的事。)
    • Gateway(网关)
      • [Exclusive Gateway(排他网关,XOR)](#Exclusive Gateway(排他网关,XOR))
      • [Parallel Gateway(并行网关,AND)](#Parallel Gateway(并行网关,AND))
      • [Event-based Gateway(事件网关)](#Event-based Gateway(事件网关))
  • 进阶
    • [边界事件(Boundary Event)](#边界事件(Boundary Event))

定义

BPMN的英文全称是 Business Process Model and Notation(业务流程模型与符号)

Process 是 BPMN 中对"业务流程"的正式定义,它由一组 Flow Elements(事件、活动、网关等)以及它们之间的 Sequence Flow 组成

bash 复制代码
BPMN
 ├─ Flow Objects(流程核心元素)
 │   ├─ Events(事件)
 │   │   → 表示流程的开始、过程中的触发点、以及结束
 │   ├─ Activities(活动)
 │   │   → 实际要做的事情,比如任务或子流程
 │   └─ Gateways(网关)
 │       → 控制流程怎么分支、合并(判断、并行等)
 │
 ├─ Connecting Objects(连接关系)
 │   ├─ Sequence Flow
 │   │   → 箭头,表示流程的执行顺序(先做什么再做什么)
 │   ├─ Message Flow
 │   │   → 不同参与者之间发送消息(只能跨 Pool)
 │   └─ Association
 │       → 仅用于"说明/关联",不影响流程执行
 │
 ├─ Swimlanes(职责划分)
 │   ├─ Pool
 │   │   → 一个参与方/系统/组织,代表一个独立流程
 │   └─ Lane
 │       → Pool 内的职责划分(角色、部门)
 │
 └─ Artifacts(补充信息)
     ├─ Data Object
     │   → 流程中使用或产生的数据
     ├─ Group
     │   → 逻辑分组,仅用于阅读理解
     └─ Annotation
         → 文字说明,给人看的,不影响执行

Flow Objects(流程核心元素)

Flow Objects 一共 三类:

Event(事件)

Activity(活动)

Gateway(网关)

Event 必须分三类:

Start Event(开始事件): 流程从这里开始

Intermediate Event(中间事件): 流程进行中发生的事情

End Event(结束事件): 流程在这里结束,整个流程结束,子流程也会结束

Activity(活动):Activity 就是流程中"正在干活的那一段时间"干的事。

把流程想成一天的时间线:

Event:某个"瞬间"

上班打卡

下班打卡

Activity:两次打卡之间你在干的事

写代码

开会

审批单子

Task:

任务是一种原子活动,在流程模型中不能再被分解为更细的层级

四种最常见 Task:

User Task(用户任务):表示 需要由人来完成的工作,流程引擎负责分配与等待,但不执行实际工作,一定涉及人工,流程会 等待用户完成

Service Task(服务任务): 表示 由某种自动化服务执行的工作,不涉及人工交互,自动执行

Script Task(脚本任务):Script Task 表示 由流程引擎执行的一段脚本逻辑。

Receive Task(接收任务):Receive Task 是一种 等待接收某条消息的任务,在消息到达之前,流程会被阻塞。这是唯一一个"会等待"的 Task

所以:Event 描述"发生了什么",Task 描述"流程做了什么"。

Gateway(网关)

网关不表示任何工作的执行。

Gateway 只做一件事:用于控制顺序流分支与汇聚的节点。

Sequence Flow: 通过条件表达式,限制是否可走

Exclusive Gateway(排他网关,XOR)


流程到达排他网关后,只会选择一条满足条件的 Sequence Flow 继续执行

Parallel Gateway(并行网关,AND)

并行网关(Parallel Gateway)就是:该一起干的事,一起干;该等大家干完,再往下走。

Event-based Gateway(事件网关)

事件网关表示一种分支点,流程走向由"发生的事件"决定,而不是由条件表达式决定。

事件网关表示一种分支点,流程走向由"发生的事件"决定,而不是由条件表达式决定。

多个事件同时被"监听",谁先发生,流程就沿着谁继续,其他分支立即失效。

进阶

边界事件(Boundary Event)

边界事件是一种中间事件,附着在某个活动(Activity)的边界上。

分类:

中断型边界事件(Interrupting):触发后:立刻打断 Activity,后续流程不在执行,顺着边界事件的 Sequence Flow 往下走

非中断型边界事件(Non-interrupting):触发后:Activity 继续执行只是"额外走一条路",图形特征:

虚线圆

例子:

B中status=0则直接结束该流程,不走后续逻辑,图形特征:实线圆

相关推荐
长江&后浪几秒前
防火墙的描述
开发语言·网络·php
counting money4 分钟前
Tomcat 专题:从基础架构到性能调优与 WebSocket 实战
java·websocket·tomcat
观无21 分钟前
若依EasyExcel实现单元格合并
开发语言·前端·javascript
雨晨源码(同名B站)24 分钟前
基于Python的网易云音乐评论数据情感化分析系统 音乐爬虫信息可视化 |SnowNLP评论情感分析
开发语言·hadoop·爬虫·python·信息可视化·毕业设计
我不是疯子是傻子38 分钟前
串口通信数据帧粘包拆包再进化:基于 Qt 的滑动窗口与 CRC 校验实战
开发语言·qt
鱼日先生1 小时前
Dify 企业级实验(04):性能优化实战——长流程从 60 秒到秒回有哪些手段?
人工智能·工作流·dify·ai agent·大模型应用·ai 训练
程序员老陆1 小时前
Qt中实现窗口真全屏(覆盖Windows任务栏)
开发语言·windows·qt
xiaohaiAIgeo1 小时前
【2026年】HG/T 20656-2024化工暖通空调设计规范:新版标准的变化与影响
java·前端·javascript·科普知识
小强库计算机毕业设计1 小时前
基于 Spring Boot + Vue3 的校园管理系统
java·spring boot·后端·项目实战·管理系统·技术分享·校园管理系统实战
霸道流氓气质1 小时前
Java中信号量(Semaphore):从本地到分布式
java·开发语言·分布式