Camunda快速入门(五):设计一个带DMN业务规则的流程

news2024/12/26 11:30:55

接上一篇文章:Camunda快速入门(四):设计一个带网关的流程

在本节中,您将学习如何使用 BPMN 2.0 业务规则任务DMN 1.3 决策表将决策自动化添加到流程中。

1、将业务规则任务添加到流程

使用 Camunda Modeler 打开Payment Retrieval(付款检索)流程,然后单击“Approve Payment批准付款)”任务节点。在扳手按钮菜单中将活动类型更改为Business Rule Task业务规则任务”。

接下来,在properties面板中将Implementation中的Type更改为DMN,并将Decision Reference更改为approve-payment(注意:approve-payment为dmn模型的ID),这样就把Business Rule Task链接到DMN表,流程执行的时候会执行DMN。为了检索评估结果并将其自动保存为流程中的流程实例变量,我们还需要将结果变量更改为approved(该值为流程变量,可在发起流程或表单里定义,在流程网关里使用),并在属性面板中使用singleEntry作为映射决策结果。

存更改并使用 Camunda Modeler 中的 Deploy按钮部署更新的流程。

2、使用 Camunda Modeler 创建 DMN 表

首先,通过单击“文件”>“新建文件”>“DMN 图”创建新的 DMN 图。

现在,新创建的图表已经添加了一个决策元素。通过单击它来选择它,然后为其指定一个名称 Approve Payment 和一个 ID为approve-payment(决策 ID 必须与 BPMN 流程中的Decision Reference 匹配)。

接下来,通过单击表按钮创建一个新的 DMN 表。

3、指定 DMN 表

首先,指定 DMN 表的输入表达式。在此示例中,我们将根据项目名称决定付款是否获得批准。您的规则还可以使用 FEEL 表达式语言、JUEL 或 Script。如果您愿意,可以阅读有关 DMN 引擎中的表达式的更多信息https://docs.camunda.org/manual/7.19/user-guide/dmn-engine/expressions-and-scripts/

双击输入以配置输入列。输入Item用作标签输入item用作表达式

接下来,设置输出列。填写Approved用作输出列和approved用作输出名称将输出列更改为数据类型为boolean:

让我们通过单击 DMN 表左侧的+加号图标来创建一些规则。

设置后,DMN 表应如下所示:

4、部署 DMN 表

要部署决策表,请单击 Camunda Modeler 中的 Deploy 按钮,为其指定部署名称“Payment Retrieval Decision”,然后点击 Deploy 按钮。

5、使用 Cockpit 验证部署

现在,使用 Cockpit 查看决策表是否已成功部署。转到 http://localhost:8080/camunda/app/cockpit/。使用凭据 demo / demo 登录。导航到“Decisions决策”部分。决策表Approve Payment批准付款”应列为已部署的决策定义。

6、使用 Cockpit 和 Tasklist 进行检查

接下来,使用 Tasklist 启动两个新的流程实例,并验证是否根据您的输入以不同的方式路由流程实例。为此,请转到 http://localhost:8080/camunda/app/tasklist/。使用demo/demo登录。

单击按钮启动流程实例并选择付款流程,使用通用表单添加流程变量item的值为item-xyz,如下所示:

点击“启动”按钮。

转到 http://localhost:8080/camunda/app/cockpit/导航到“决定”部分,查看DMN规则执行情况,发现规则匹配成功了,approved为true,同时流程也自动执行了对应流向。

接下来,再次单击按钮以启动另一个流程实例并选择付款流程,使用通用表单添加流程变量item的值为item-zzz,如下所示:

转到 http://localhost:8080/camunda/app/cockpit/导航到“决定”部分,查看DMN规则执行情况,发现规则匹配成功了,approved为false,流程走向为拒绝付款并结束。

祝贺!您已成功完成 Camunda 平台快速入门。

7、源码和文档

在线体验系统:http://www.yunchengxc.com

完整源代码:https://github.com/camunda/camunda-get-started-quickstart/archive/Step-5.zip

官方文档地址:Leverage business rules (6/6) | docs.camunda.org

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1460493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python学习-if else及比较运算符、while循环结构、random生成随机数模块

五、if else及比较运算符 1、if else语法 if 条件&#xff1a; 如果条件为真&#xff08;Ture&#xff09;执行这里的语句 else: 如果条件为假&#xff08;False&#xff09;执行这里的语句 2、比较运算符 运算符含义<判断左边是否小于右边<判断左边是否小于或等于右…

《nvm 安装》nodejs 版本管理工具

一.前言 如果先于 nvm 安装了 node&#xff0c;一定要先卸载&#xff01; 两种卸载方式&#xff1a; 方式一 控制面板 -> 程序和功能 -> nodejs 删除 方式二 下载的 node 安装包有卸载选项 二. 安装 nvm 下载地址 中找到对应的安装包&#xff0c;我本机使用 window…

关于公司私有gitlab拉去项目中遇到的问题

新进公司都会遇到拉去项目代码问题&#xff0c;新账号新环境&#xff1b;怎么拉去代码才是最有效的呢&#xff1f; 在此某些大神会给你一个地址&#xff1a;一句你自己来取吧&#xff1b;拉下来看看逻辑就行了&#xff1b;这样的人挺不错&#xff1b;会让你陷入无限的BUG循环中…

安卓adb调试备忘录

由于 MAC 的 USB 口全被占用着&#xff0c;采用无线连接刚方便&#xff0c;记录一下&#xff0c;以防忘记~ ADB原理 adb devices -l ## 列出连接的设备adb tcpip [端口号] adb tcpip 6666 # 将当前已连接USB上的Mobile端切换为TCP/IP模式&#xff0c;以6666端口进行监听. adb…

数字孪生与智慧城市:共筑未来城市的科技基石

一、引言 随着科技的飞速发展&#xff0c;数字孪生与智慧城市已成为未来城市建设的两大关键技术。数字孪生为城市提供了一个虚拟的数字镜像&#xff0c;使我们能全面、深入地了解城市的运行状态。而智慧城市则借助先进的信息通信技术&#xff0c;提升城市的智能化水平&#xf…

机器学习基础(三)监督学习的进阶探索

导语&#xff1a;上一节我们深入地探讨监督学习和非监督学习的知识&#xff0c;重点关注它们的理论基础、常用算法及实际应用场景&#xff0c;详情可见&#xff1a; 机器学习基础&#xff08;二&#xff09;监督与非监督学习-CSDN博客文章浏览阅读769次&#xff0c;点赞15次&a…

明御运维审计与风险控制系统漏洞复现

简介 明御运维审计与风险控制系统是安恒信息在多年运维安全管理的理论和实践经验积累的基础上,采用B/S架构,集“身份认证、账户管理、控制权限、日志审计”于一体,支持多种字符终端协议、文件传输协议、图形终端协议、远程应用协议的安全监控与历史查询,具备全方位运维风险…

springboot+vue的飘香水果购物网站(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

JavaScript 设计模式之组合模式

组合模式 在我们日常中肯呢个会将一个表单用这种模式来创建 const Car function () { } Car.prototype.getName function () { throw new Error("需要重写该方法") } Car.prototype.getPrice function () {throw new Error("需要重写该方法") } const…

05_i2c_controller内核模块

01_basicLinux内核模块-CSDN博客文章浏览阅读304次&#xff0c;点赞3次&#xff0c;收藏3次。环境IDubuntuMakefilemodules:clean:basic.creturn 0;运行效果。https://blog.csdn.net/m0_37132481/article/details/136157384i2c_controller.c rootT:/media/sf_D_DRIVE/kmodule/…

书生·浦语大模型实战营第五节课作业

基础作业 本地部署300字的小故事在这里插入图片描述

Easyx的学习1

使用easys的相关函数需要包含头文件#include<easyx.h>或#include<graphics.h>&#xff08;#include<graphics.h>包含了<easyx.h>和一些不推荐使用的函数&#xff09; 目录 窗口创建背景颜色 基本图形绘制 1.点 2.线 3.矩形 圆角矩形 4. 圆形 椭圆…

一文彻底搞懂Java对象什么时候被垃圾器回收

文章目录 1. 简介2. 引用计数法2.1 优点2.2 缺点 3. 可达性分析算法3.1 虚拟机栈&#xff08;栈帧中的本地变量表&#xff09;中引用的对象3.2 方法区中静态属性引用的对象3.3 方法区中常量引用的对象3.4 本地方法栈中 JNI&#xff08;即一般说的 Native 方法&#xff09;引用的…

Day23--learning English

一、积累 1.straw 2.umami | tangy | bland 3.lactose dairy 4.fatigue 5.stumble | curb 6.pore 7.toll 8.arrear 9.robe 10.stylish 11.dash 12.mischief 13.ranch 14.sponsorship 15.podcast 16.villian 17.clutch 18.envision 二、练习 1.牛津原译 1.straw /strɔː/ 1…

ngnix网站服务详解

一 Nginx的简介 1 Nginx&#xff1a; ①Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器&#xff0c;而且支持热部署&#xff0c;几乎可以做到 7 * 24 小时不间断运行&#xff0c;即使运行几个月也不需要重新启动&#xff0c;还能在不间断服务的情况下对软件版本进行热…

11 个适用于 Windows电脑的最佳免费录制屏幕软件(2024)

屏幕录制软件可让您捕获屏幕以与他人共享并创建与产品相关的视频、教程、课程、演示、网络视频等。该软件使您能够从网络摄像头和屏幕录制视频。 11 个适用于 Windows电脑的最佳免费屏幕录像机 以下是精心挑选的顶级屏幕录像机列表&#xff0c;及其受欢迎的功能和网站链接。该…

Spring Boot与Feign:微服务架构下的优雅通信

1. 前言 本文将详细介绍在Spring Boot框架中如何使用Feign进行微服务之间的优雅通信。我们将从Feign的基本原理讲起&#xff0c;然后逐步展开使用Feign的完整流程和步骤&#xff0c;包括代码示例和详细注释。通过本文&#xff0c;读者将能够轻松掌握Feign在Spring Boot微服务架…

为什么发明个红黑树,这么设计的意义是什么?

1、红黑树是一种自平衡二叉树&#xff0c;查找时算法时间复杂度为O(log n)。 2、 假设你计算机里存有十亿个身份证信息&#xff0c;你要用计算机在这些身份证信息里进行增加、删除、查找等操作&#xff0c;应该怎样设计程序实现这些功能&#xff1f; 最简单的笨办法&#xf…

基于JAVA的智慧社区业务综合平台 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 业务类型模块2.2 基础业务模块2.3 预约业务模块2.4 反馈管理模块2.5 社区新闻模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 业务类型表3.2.2 基础业务表3.2.3 预约业务表3.2.4 反馈表3.2.5 社区新闻表 四、系统展…

超详细shell脚本小练...

1 、判断当前磁盘剩余空间是否有30G&#xff0c;如果小于30G&#xff0c;则将报警邮件发送给管理员&#xff0c;每天检查-次磁盘剩余空间。 1.1.安装邮件服务 [rootnode ~]# df -m 文件系统 1M-块 已用 可用 已用% 挂载点 devtmpfs 7…