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则直接结束该流程,不走后续逻辑,图形特征:实线圆

相关推荐
RuoyiOffice7 分钟前
超级个体接私活必看:后端+前端+移动端三端一体企业管理系统怎么选(2026)
java·spring boot·vue·uniapp·全栈·企业管理·接私活
king_linlin16 分钟前
算法基础——算法复杂度
c语言·开发语言·数据结构·算法
二十雨辰17 分钟前
[爬虫]-解析
开发语言·python
zzq779723 分钟前
Android 16 API 36 升级后 APP 加固兼容性问题解析
android·开发语言·安全·kotlin·安卓·安全架构
java1234_小锋30 分钟前
【免费】基于Spark实时电商用户行为分析与预测(Java版本+可视化大屏+Kafka+SpringBoot+Vue3) 锋哥原创出品,必属精品
java·spark·kafka·实时电商用户行为分析与预测系统
keyipatience39 分钟前
日志和线程池
java·开发语言
码云数智-园园1 小时前
建站平台有哪些?建站工具怎么选
开发语言
nVisual1 小时前
01-环境监控集成方案
运维·服务器·开发语言·网络·数据库·数据中心布线·综合布线管理软件
此生决int1 小时前
深入理解C++系列(04)——类和对象(下)
开发语言·c++
Yeauty1 小时前
你那条 ffmpeg 命令,一键翻成 Rust builder 代码
开发语言·rust·ffmpeg