首页 > 其他分享 >camunda快速入门(五):DMN规则引擎如何使用

camunda快速入门(五):DMN规则引擎如何使用

时间:2024-07-09 09:00:04浏览次数:12  
标签:入门 单击 流程 按钮 DMN 使用 camunda

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

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

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

1-利用业务规则(1)

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

IMG_258

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

2、使用 Camunda Modeler 创建 DMN 表

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

IMG_259

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

4-利用业务规则(1)

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

IMG_261

3、指定 DMN 表

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

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

6-利用业务规则(1)

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

7-利用业务规则(1)

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

20-编辑每一条规则

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

9-利用业务规则(1)

4、部署 DMN 表

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

10-利用业务规则(1)

5、使用 Cockpit 验证部署

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

21-查看规则表部署情况

6、使用 Cockpit 和 Tasklist 进行检查

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

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

12-利用业务规则(1)

点击“启动”按钮。

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

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

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

23-查看规则执行情况

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

7、源码和文档

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

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

官方文档地址:https://docs.camunda.org/get-started/quick-start/decision-automation/

标签:入门,单击,流程,按钮,DMN,使用,camunda
From: https://www.cnblogs.com/hibpm/p/18291032

相关文章

  • C++入门(C语言过渡)
    文章目录前言一、C++关键字二、命名空间三、C++输入&输出四、缺省参数五、函数重载六、引用七、inline八、nullptr总结前言C++是一种通用的、高级的、静态类型的编程语言,它在20世纪80年代由丹尼斯·里奇创建的C语言基础上发展而来。以下是C++发展的一些重要里程碑。......
  • 简易Git命令行入门
    简易的Git命令行入门教程:1.Git全局设置:gitconfig--globaluser.name"demo"gitconfig--globaluser.email"[email protected]"2.创建git仓库:mkdirdemo1cddemo1gitinittouchREADME.mdgitaddREADME.mdgitcommit-m"firstcommit"git......
  • [QT入门]标签控件(QLabel)
    一、概述QLabel是Qt中用于显示文本或图像的控件。它通常被用作标签或显示静态信息的区域。QLabel控件是图形用户界面(GUI)开发中的基础元素之一,广泛应用于各种Qt应用程序中。QLabel控件的灵活性和易用性使其成为开发过程中不可或缺的一部分。二、QLabel控件的基本属性和方法1.......
  • Spring框架(入门到精通一)
    重生之我在CSDN学java第六天(Spring)文章目录重生之我在CSDN学java第六天(Spring)一、Spring的历史1.Spring发展历程2.Spring所属公司二、Spring介绍1.Spring模块介绍核心容器(CoreContainer)AOP及Instrumentation消息(messaging)数据访问/集成Web测试(Test)三、Sp......
  • 基础算法训练题单之排序(从入门到入土)——题解
    A.P1177【模板】排序三种方法:快速排序,归并排序,STL库的sort函数。法一、三:https://www.cnblogs.com/expect-999/p/17594345.html法二:https://www.cnblogs.com/expect-999/p/17599008.htmlB.P1923【深基9.例4】求第k小的数模板题目,直接对数组进行升序排序,如果数组从......
  • Python进阶入门之DataFrame
    引言接上一篇《关于Python中的series详解与应用》。本篇将详细介绍DataFrame,主要包括它的定义、创建方法、常用操作、应用场景以及与其他数据结构的比较。什么是DataFrameDataFrame是Pandas库中的一种二维标签数据结构,可以看作是一种带有行和列标签的表格数据。它既有行索引......
  • C++基础入门语法--代码基础框架
    文章内容概括:了解学习导入头文件、使用usingnamespacestd简化代码、创建程序基础框架、学习使用return(如需要直接复制请到文章最末尾)正文:1.学习导入头文件:    在Dev-C++编辑器中新建文件,在文件的第一行中输入:#include<iostream>    以上代码为C++导入......
  • 软件设计之Java入门视频(13)
    软件设计之Java入门视频(13)视频教程来自B站尚硅谷:尚硅谷Java入门视频教程,宋红康java基础视频相关文件资料(百度网盘)提取密码:8op3idea下载可以关注软件管家公众号学习内容:该视频共分为1-717部分本次内容涉及360-389在写代码时,总是需要来回切换界面来看代码要求......
  • 第二章 MATLAB入门知识 第四节
    ^乘方符号>>9^2 ans=81【+-*/和乘除运算优先级一样】【^比/优先级大】9^1/2 ans=4.5△最基础的MATLAB数值运算的函数:函数名功能计算结果abs求绝对值,也可以用来计算复数的模长abs(1.5) %1.5abs(-1.5) %1.5abs(3+4i) %5floor朝负无穷大四舍五入(......
  • C++ 入门02:控制结构和循环
    往期回顾:C++入门01:初识C++一、前言在上一篇文章学习中,我们了解了C++程序的基本结构、注释、数据类型、变量以及输入输出的基本用法。这一篇,我们将继续深入学习C++的控制结构和循环。二、控制结构和循环2.1、条件语句条件语句是编程中非常重要的一部分,它们允许......