全面解析BPMN、CMMN、DMN与XML

news/2024/9/13 22:36:38/ 标签: xml, Camunda, BPMN, CMMN, DMN
xmlns="http://www.w3.org/2000/svg" style="display: none;">

欢迎来到我的博客,代码的世界里,每一行都是一个故事


在这里插入图片描述

🎏:你只管努力,剩下的交给时间

🏠 :小破站

全面解析BPMNCMMNDMN与XML

    • 前言
    • BPMN(业务流程模型与标记法)
      • 定义与用途
      • 关键元素
        • 核心元素
        • BPMN图示例
    • CMMN(案例管理模型与标记法)
      • 定义与用途
      • 关键元素
        • 核心元素
        • CMMN图示例
    • DMN(决策模型与标记法)
      • 定义与用途
        • DMN的基本概念
        • DMN的用途
      • 关键元素
        • 核心元素
        • DMN图示例
    • XML(可扩展标记语言)
      • 定义与用途
        • XML的基本概念
        • XML的用途
      • BPMNCMMNDMN的XML表示
    • 适用场景
      • BPMN(业务流程模型与标记法)
        • 使用场景
      • CMMN(案例管理模型与标记法)
        • 使用场景
      • DMN(决策模型与标记法)
        • 使用场景
      • XML使用场景
        • XML表示

前言

在现代企业流程管理中,Camunda以其强大的功能和灵活的配置赢得了广泛的关注。作为一名开发者或业务分析师,你是否曾经为理解BPMNCMMNDMN这些复杂的概念而感到困惑?本文将带你一探究竟,揭示这些关键概念在Camunda中的应用,并通过实例和详解,帮助你轻松上手。

BPMN_16">BPMN(业务流程模型与标记法)

定义与用途

BPMN_20">BPMN的基本概念

业务流程模型与标记法(Business Process Model and Notation,简称BPMN)是一种图形化表示法,用于描述业务流程的各个步骤和流程之间的关系。BPMN的目的是为业务分析师、技术开发者和管理人员提供一个通用的语言,帮助他们共同理解和改进业务流程。

BPMN_24">BPMN的用途

BPMN主要用于:

  1. 业务流程建模:通过图形化表示法清晰地描述和设计业务流程。
  2. 沟通和协作:提供一个标准化的表示方法,方便不同部门和角色之间的沟通。
  3. 流程分析和改进:帮助识别业务流程中的瓶颈和优化机会。
  4. 自动化执行:作为流程自动化平台(如Camunda)的输入,使业务流程可以被自动化执行和管理。

关键元素

核心元素

BPMN模型由多种图形元素组成,这些元素可以表示不同类型的任务、事件、网关等。以下是BPMN中的核心元素:

  1. 任务(Task):表示流程中的一个原子工作单元。任务可以细分为多个子类型,如用户任务、服务任务、脚本任务等。

    • 用户任务(User Task):需要人工执行的任务。
    • 服务任务(Service Task):通过自动化服务执行的任务。
  2. 事件(Event):表示流程中的某个事件,事件可以是开始事件、中间事件或结束事件。

    • 开始事件(Start Event):表示流程的开始。
    • 中间事件(Intermediate Event):表示流程中的中间状态或中断点。
    • 结束事件(End Event):表示流程的结束。
  3. 网关(Gateway):用于控制流程路径的分支和汇聚。常见的网关类型包括并行网关、排他网关和事件网关。

    • 并行网关(Parallel Gateway):用于并行分支和汇聚。
    • 排他网关(Exclusive Gateway):用于条件分支,只有一个路径会被选择。
    • 事件网关(Event-based Gateway):基于事件的分支选择。
  4. 流程线(Sequence Flow):表示流程元素之间的连接和执行顺序。

BPMN_58">BPMN图示例
    (开始事件) --> [任务1] --> (并行网关) --> [任务2] --> (结束事件)|--> [任务3] -->|

CMMN_65">CMMN(案例管理模型与标记法)

定义与用途

CMMN_69">CMMN的基本概念

案例管理模型与标记法(Case Management Model and Notation,简称CMMN)是一种图形化表示法,用于建模和管理复杂、动态和不可预见的业务流程。与BPMN侧重于定义结构化、可预测的流程不同,CMMN专注于灵活和非结构化的工作流程,通常这些流程需要根据具体情况动态调整。

CMMN_73">CMMN的用途

CMMN主要用于以下应用场景:

  1. 案例管理:处理需要灵活和自适应的业务流程,如客户服务、保险理赔、法律事务等。
  2. 事件驱动的流程:管理基于事件触发的任务和活动。
  3. 知识密集型流程:处理需要专家判断和知识密集的流程,如医疗诊断、研发项目等。
  4. 长期流程:管理持续时间较长且需要多次人为决策和干预的流程。

关键元素

核心元素

CMMN模型由多种图形元素组成,用于表示不同类型的任务、事件、阶段等。以下是CMMN中的核心元素:

  1. 任务(Task):表示需要完成的工作,可以是手动任务、用户任务、阶段任务等。

    • 用户任务(Human Task):需要人工执行的任务。
    • 过程任务(Process Task):嵌入BPMN流程的任务。
    • 案例任务(Case Task):嵌入另一个CMMN案例的任务。
  2. 事件(Event):表示案例中的某个事件,可以是状态变更事件或外部触发事件。

    • 计划项启动事件(Plan Item Start Event):当计划项启动时触发。
    • 阶段完成事件(Stage Complete Event):当阶段完成时触发。
  3. 阶段(Stage):表示一个包含多个任务和事件的分组,可以嵌套其他阶段或任务。

    • 阶段(Stage):一个包含多个任务、事件和其他元素的分组。
    • 里程碑(Milestone):表示达到某个重要进展的点。
  4. 计划项(Plan Item):表示任务、阶段或里程碑等可以执行的元素。

  5. 案例文件(Case File):表示与案例相关的文档和数据。

  6. 声明(Sentry):用于控制任务、阶段等元素的执行条件,可以是进入或退出条件。

CMMN_110">CMMN图示例
    [案例计划]├── (阶段1)│   ├── [任务1]│   ├── [任务2]│   └── [里程碑1]├── (阶段2)│   ├── [任务3]│   ├── [任务4]│   └── [里程碑2]└── [结束事件]

DMN_125">DMN(决策模型与标记法)

定义与用途

DMN_129">DMN的基本概念

决策模型与标记法(Decision Model and Notation,简称DMN)是一种标准化的图形表示法,用于描述和建模业务决策。DMN的目标是使业务分析师和技术开发者能够协作定义和管理业务规则和决策逻辑,确保决策过程透明、可理解和可执行。

DMN_133">DMN的用途

DMN主要用于:

  1. 决策建模:帮助企业定义和管理复杂的业务规则和决策逻辑。
  2. 自动化决策:将决策模型集成到业务流程中,实现自动化决策。
  3. 业务规则管理:提供一种标准化的方法来记录和维护业务规则。
  4. 分析和优化:通过对决策模型的分析,优化业务决策,提高效率和一致性。

关键元素

核心元素

DMN模型由多种图形元素组成,用于表示决策表、决策节点、输入数据等。以下是DMN中的核心元素:

  1. 决策(Decision):表示一个业务决策节点,定义了决策逻辑。

    • 决策节点(Decision Node):用来表示一个具体的决策过程,包含决策逻辑。
  2. 输入数据(Input Data):表示决策所需的输入信息,可以是外部数据、业务参数等。

  3. 业务知识模型(Business Knowledge Model):表示决策过程中使用的业务知识或规则,通常是复用的逻辑单元。

  4. 知识源(Knowledge Source):表示提供决策依据的信息源,可能是政策、法规、指南等。

  5. 决策表(Decision Table):一种常见的决策逻辑表示方法,通过表格定义不同条件下的决策输出。

    • 规则(Rule):决策表中的每一行表示一个规则,包括条件和对应的行动。
    • 输入条目(Input Entry):决策表中用于判断的条件。
    • 输出条目(Output Entry):决策表中对应条件满足时的输出。
DMN_164">DMN图示例
    +------------------+          +---------------------+| 输入数据         |          | 输入数据            || Customer Age     |          | Credit Score        |+--------+---------+          +---------+-----------+|                             |v                             v+--------+-------------------------------+---------+| 决策表                                            || +------------+------------+------------+--------+ || | Age < 18   | Age 18-25  | Age > 25   | Result | || +------------+------------+------------+--------+ || | ...        | ...        | ...        | ...    | |+---------------------------------------------------+|v+----------+---------+| 决策输出           || Credit Eligibility |+--------------------+

XML(可扩展标记语言)

定义与用途

XML的基本概念

可扩展标记语言(Extensible Markup Language,简称XML)是一种标记语言,用于定义和描述数据。XML具有可扩展性和自描述性,能够方便地表示复杂的层次化数据结构。它主要用于数据交换、数据存储以及配置文件等场景。

XML的用途
  1. 数据表示:用于结构化数据的表示,能够以文本形式存储和传输复杂的数据结构。
  2. 数据传输:广泛用于不同系统之间的数据交换,特别是在Web服务和API中。
  3. 配置文件:用于定义应用程序的配置和元数据,例如配置文件、文档格式定义等。
  4. 数据存储:用于存储层次化的数据,如日志文件、文档存储等。

BPMNCMMNDMNXML_203">BPMNCMMNDMN的XML表示

BPMNXML_205">BPMN的XML表示

BPMN模型以XML格式表示,使用<definitions><process>等元素定义业务流程。以下是一个简单的BPMN XML示例:

xml"><?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"id="Definitions_1"targetNamespace="http://bpmn.io/schema/bpmn"><bpmn:process id="Process_1" isExecutable="true"><bpmn:startEvent id="StartEvent_1"/><bpmn:sequenceFlow id="Flow_1" sourceRef="StartEvent_1" targetRef="Task_1"/><bpmn:userTask id="Task_1" name="用户任务"/><bpmn:sequenceFlow id="Flow_2" sourceRef="Task_1" targetRef="EndEvent_1"/><bpmn:endEvent id="EndEvent_1"/></bpmn:process>
</bpmn:definitions>
CMMNXML_226">CMMN的XML表示

CMMN模型同样以XML格式表示,使用<definitions><case>等元素定义案例模型。以下是一个简单的CMMN XML示例:

xml"><?xml version="1.0" encoding="UTF-8"?>
<cmmn:definitions xmlns:cmmn="http://www.omg.org/spec/CMMN/20151109/MODEL"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.omg.org/spec/CMMN/20151109/MODEL CMMN11.xsd"id="Definitions_1"targetNamespace="http://cmmn.io/schema/cmmn"><cmmn:case id="Case_1"><cmmn:casePlanModel id="CasePlanModel_1" name="Case Plan Model"><cmmn:planItem id="PlanItem_1" definitionRef="HumanTask_1"/><cmmn:humanTask id="HumanTask_1" name="用户任务"/><cmmn:planItem id="PlanItem_2" definitionRef="Stage_1"/><cmmn:stage id="Stage_1" name="阶段"><cmmn:planItem id="PlanItem_3" definitionRef="HumanTask_2"/><cmmn:humanTask id="HumanTask_2" name="另一个用户任务"/></cmmn:stage></cmmn:casePlanModel></cmmn:case>
</cmmn:definitions>
DMNXML_251">DMN的XML表示

DMN模型使用<definitions><decision>等元素定义决策模型。以下是一个简单的DMN XML示例:

xml"><?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/DMN/20151101/dmn.xsd"xmlns:dmndi="http://www.omg.org/spec/DMN/20151101/DMNDI/"xmlns:di="http://www.omg.org/spec/DD/20100524/DI"xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"id="definitions_1"name="definitions"namespace="http://camunda.org/schema/1.0/dmn"><decision id="decision_1" name="Customer Eligibility"><decisionTable id="decisionTable_1"><input id="input_1" label="Customer Age"><inputExpression id="inputExpression_1" typeRef="integer"><text>age</text></inputExpression></input><input id="input_2" label="Credit Score"><inputExpression id="inputExpression_2" typeRef="integer"><text>creditScore</text></inputExpression></input><output id="output_1" label="Eligibility" typeRef="string"/><rule id="rule_1"><inputEntry id="inputEntry_1"><text>&lt;18</text></inputEntry><inputEntry id="inputEntry_2"><text>&lt;600</text></inputEntry><outputEntry id="outputEntry_1"><text>Not Eligible</text></outputEntry></rule><rule id="rule_2"><inputEntry id="inputEntry_3"><text>&gt;=18</text></inputEntry><inputEntry id="inputEntry_4"><text>&gt;=600</text></inputEntry><outputEntry id="outputEntry_2"><text>Eligible</text></outputEntry></rule></decisionTable></decision>
</definitions>

适用场景

BPMN_306">BPMN(业务流程模型与标记法)

使用场景
  1. 业务流程自动化:通过BPMN模型定义企业内部的工作流,实现任务的自动化执行。例如,订单处理、审批流程等。
  2. 业务流程优化:通过建模现有流程,分析和识别流程中的瓶颈和低效环节,从而优化和提升业务效率。
  3. 跨部门协作:使用可视化的流程图,明确不同部门的职责和任务,促进跨部门的协作和沟通。
  4. 合规性管理:确保业务流程符合行业法规和公司内部的政策,通过BPMN模型验证和记录流程的合规性。

CMMN_315">CMMN(案例管理模型与标记法)

使用场景
  1. 案例管理:处理个性化和灵活的业务案例,如客户服务请求、医疗病例等,允许根据实际情况动态调整任务和流程。
  2. 知识密集型工作:支持需要大量决策和专业知识的工作流程,例如法律案件、保险理赔等,帮助专家高效管理复杂任务。
  3. 动态任务管理:处理非结构化和动态变化的任务和事件,允许在执行过程中调整任务计划和优先级。

DMN_323">DMN(决策模型与标记法)

使用场景
  1. 业务规则管理:集中管理企业的业务规则,如信用评分、定价策略等,通过DMN模型定义和维护这些规则。
  2. 决策自动化:将决策逻辑嵌入业务流程中,实现自动化决策,减少人为干预,提高决策速度和一致性。
  3. 规则透明化:使业务规则和决策逻辑透明化,便于理解、沟通和维护,确保业务规则的一致性和可追溯性。
  4. 规则模拟和优化:通过模拟不同输入条件和情景,评估和优化决策规则,提高决策的准确性和效率。

XML使用场景

XML表示

XML(可扩展标记语言)在BPMNCMMNDMN中的使用场景主要包括:

  1. 数据表示:XML格式用于定义BPMNCMMNDMN模型的结构和内容。
  2. 数据传输:通过XML文件在不同系统之间传输模型数据,实现模型的共享和集成。
  3. 配置管理:使用XML文件管理和配置BPMNCMMNDMN模型,便于版本控制和模型的部署。
  4. 系统集成:将XML格式的模型文件集成到业务流程管理系统(如Camunda)中,实现自动化执行和管理。

http://www.ppmy.cn/news/1475623.html

相关文章

LabVIEW液压数据采集测试系统

液压系统是装载机的重要组成部分&#xff0c;通过液压传动和控制实现各项作业功能&#xff0c;如提升、倾斜、转向等。液压系统的性能直接影响装载机的作业效率和稳定性。为了保证装载机液压系统的正常运行和优化设计&#xff0c;需要对其进行数据采集和测试。本文介绍了一套基…

【Linux 配置静态IP】Ubuntu20.04

最近学习网络编程&#xff0c;为了方便学习需要Ubuntu配置静态IP&#xff0c;网上看了好多贴子跟着试了下可以实现&#xff0c;但重启虚拟机后有时就无法连接&#xff0c;总之各种各样问题&#xff1b;相关的配置方法也比较凌乱&#xff0c;有用netplan 或者 ifupdown ,笔者简单…

拓扑学习系列(10)复形COMPLEXES进一步理解学习

定义 1.1&#xff1a;在集合 V 上的一个单纯复合体&#xff08;simplicial complex&#xff09;是满足以下两个要求的非空子集合的集合 K&#xff1a; 对于 V 中的每个顶点 v&#xff0c;单点集合 {v} 属于 K&#xff0c;如果 τ 属于 K 且σ⊂τ&#xff0c;则 σ 也必须属于…

STM32入门开发操作记录(三)——按键控制LED

目录 一、模块化二、LED交替闪烁1. LED.c2. LED.h3. 主函数 三、按键控制LED1. Key.c2. Key.h3. LED.c4. LED.h5. 主函数 一、模块化 前篇介绍了如何向项目添加模块&#xff0c;本篇将进一步介绍模块的编写与封装。随着模块的增加&#xff0c;需要用到Manage Project Items&…

Qt MV架构-代理模型

一、基本概念 代理模型可以将一个模型中的数据进行排序或者过滤&#xff0c;然后提供给视图进行显示。 Qt中提供了QSortFilterProxyModel作为标准的代理模型来完成模型中数据的排序和过滤。 要使用一个代理模型&#xff0c;则只需要为其设置源模型&#xff0c;然后再视图中使…

Spark-RDD和共享变量

概览 每个Spark应用程序都由一个driver program 组成&#xff0c;该驱动程序运行我们编写的main函数&#xff0c;并在集群上执行各种 并行 操作。Spark提供的主要抽象是一个 弹性分布式数据集&#xff08;RDD&#xff09;&#xff0c;它是一个跨集群节点分区的元素集合&#x…

Linux——多线程(五)

1.线程池 1.1初期框架 thread.hpp #include<iostream> #include <string> #include <unistd.h> #include <functional> #include <pthread.h>namespace ThreadModule {using func_t std::function<void()>;class Thread{public:void E…

uniapp vue3微信小程序如何获取dom元素

在网上很多人说可以通过下面两种形式获取到指定dom元素 // 定义ref <div ref"box"></div>//1通过this.$refs获取dom元素 this.$refs.box//2通过ref(null)获取dom元素 let box ref(null)第一种方式在vue2中是可以获取到的&#xff0c;但是在vue3 setup中…

LVS集群(二)

DR模式 LVS三种模式 nat地址转换 DR直接路由模式 tun隧道模式 DR模式的特点&#xff1a; 调度器在整个lvs集群中是最重要的&#xff0c;在nat模式中&#xff0c;负责接收请求&#xff0c;同时根据负载均衡算法转发流量&#xff0c;响应发送给客户端 DR模式&#xff1a;调度…

多头注意力机制详解:多维度的深度学习利器

引言 多头注意力机制是对基础注意力机制的一种扩展&#xff0c;通过引入多个注意力头&#xff0c;每个头独立计算注意力&#xff0c;然后将结果拼接在一起进行线性变换。本文将详细介绍多头注意力机制的原理、应用以及具体实现。 原理 多头注意力机制的核心思想是通过多个注…

ES6 Generator函数的异步应用 (八)

ES6 Generator 函数的异步应用主要通过与 Promise 配合使用来实现。这种模式被称为 “thunk” 模式&#xff0c;它允许你编写看起来是同步的异步代码。 特性&#xff1a; 暂停执行&#xff1a;当 Generator 函数遇到 yield 表达式时&#xff0c;它会暂停执行&#xff0c;等待 …

51单片机3(51单片机最小系统)

一、序言&#xff1a;由前面我们知道&#xff0c;51单片机要工作&#xff0c;光靠一个芯片是不够的&#xff0c;它必须搭配相应的外围电路&#xff0c;我们把能够使51单片机工作的最简单&#xff0c; 最基础的电路统称为51单片机最小系统。 二、最小系统构成&#xff1a;&…

阿里云产品流转

本文主要记述如何使用阿里云对数据进行流转&#xff0c;这里只是以topic流转&#xff08;再发布&#xff09;为例进行说明&#xff0c;可能还会有其他类型的流转&#xff0c;不同服务器的流转也可能会不一样&#xff0c;但应该大致相同。 1 创建设备 具体细节可看&#xff1a;…

centos环境启动/重启java服务脚本优化

centos环境启动/重启java服务脚本优化 引部分命令说明根据端口查询服务进程杀死进程函数脚本接收参数 脚本注意重启文档位置异常 引 在离线环境部署的多个java应用组成的系统&#xff0c;测试阶段需要较为频繁的发布&#xff0c;因资源限制&#xff0c;没有弄devops或CICD那套…

【QT】Qt事件

目录 前置知识 事件概念 常见的事件描述 进入和离开事件 代码示例&#xff1a; 鼠标事件 鼠标点击事件 鼠标释放事件 鼠标双击事件 鼠标滚轮动作 键盘事件 定时器事件 开启定时器事件 窗口相关事件 窗口移动触发事件 窗口大小改变时触发的事件 扩展 前置知识…

Vue3响应系统的作用与实现

副作用函数的执行会直接或间接影响其他函数的执行。一个副作用函数中读取了某个对象的属性&#xff0c;当该属性的值发生改变后&#xff0c;副作用函数自动重新执行&#xff0c;这个对象就是响应式数据。 1 响应式系统的实现 拦截对象的读取和设置操作。当读取某个属性值时&a…

澳门建筑插画:成都亚恒丰创教育科技有限公司

澳门建筑插画&#xff1a;绘就东方之珠的斑斓画卷 在浩瀚的中华大地上&#xff0c;澳门以其独特的地理位置和丰富的历史文化&#xff0c;如同一颗璀璨的明珠镶嵌在南国海疆。这座城市&#xff0c;不仅是东西方文化交融的典范&#xff0c;更是建筑艺术的宝库。当画笔轻触纸面&a…

STM32MP135裸机编程:唯一ID(UID)、设备标识号、设备版本

0 资料准备 1.STM32MP13xx参考手册1 唯一ID&#xff08;UID&#xff09;、设备标识号、设备版本 1.1 寄存器说明 &#xff08;1&#xff09;唯一ID 唯一ID可以用于生成USB序列号或者为其它应用所使用&#xff08;例如程序加密&#xff09;。 &#xff08;2&#xff09;设备…

conda install问题记录

最近想用代码处理sar数据&#xff0c;解放双手。 看重了isce这个处理平台&#xff0c;在安装包的时候遇到了一些问题。 这一步持续了非常久&#xff0c;然后我就果断ctrlc了 后面再次进行尝试&#xff0c;出现一大串报错&#xff0c;不知道是不是依赖项的问题 后面看到说mam…

前端预览图片的两种方式:转Base64预览或转本地blob的URL预览,并再重新转回去

&#x1f9d1;‍&#x1f4bb; 写在开头 点赞 收藏 学会&#x1f923;&#x1f923;&#x1f923; 预览图片 一般情况下&#xff0c;预览图片功能&#xff0c;是后端返回一个图片地址资源&#xff08;字符串&#xff09;给前端&#xff0c;如&#xff1a;ashuai.work/static…