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

相关推荐
C+-C资深大佬2 小时前
C++数据类型
开发语言·c++·算法
ID_180079054732 小时前
日本乐天商品详情API接口的请求构造与参数说明
开发语言·python·pandas
派大鑫wink2 小时前
【Day34】Servlet 进阶:会话管理(Cookie vs Session)
java·开发语言·学习方法
多米Domi0112 小时前
0x3f 第35天 电脑硬盘坏了 +二叉树直径,将有序数组转换为二叉搜索树
java·数据结构·python·算法·leetcode·链表
猫天意3 小时前
【深度学习小课堂】| torch | 升维打击还是原位拼接?深度解码 PyTorch 中 stack 与 cat 的几何奥义
开发语言·人工智能·pytorch·深度学习·神经网络·yolo·机器学习
zqmattack3 小时前
SQL优化与索引策略实战指南
java·数据库·sql
crossaspeed3 小时前
Java-线程池(八股)
java·开发语言
带刺的坐椅3 小时前
又一个项级的 Java Multi Agent 开源项目
java·ai·agent·solon·智能体
Voyager_43 小时前
StringRedisTemplate 和 RedisTemplate 的区别是什么?
java·spring boot