Dmn决策引擎入门知识

本文主要讲解Camunda是如何使用Dmn决策引擎,体验地址:www.jeecgflow.com

Dmn决策表定义

Dmn在线设计

命中策略(Hit Policy)

策略名称 策略描述
Unique 只有一个或者没有规则可以满足。决策表的结果包含满足规则的输出条目。如果超过一个规则满足,那么就违反了唯一命中策略。
Any 多个规则可以满足,然后所有满足的规则都必须有相同的输出
First 多个规则可以满足。决策表结果只包含第一个满足规则的输出
Rule Order 多个规则可以满足。决策表包含所有满足规则的输出,且按照规则在决策表中的顺序排序。
Collect 多个结果满足。决策表以任意顺序包含所有满足条件的输出结果。

集合中命中聚合器(Aggregators for Collect Hit Policy)

标题 描述
Collect(Sum) 所有输出值的求和
Collect(Min) 所有输出值最小的一个
Collect(Max) 所有输出值最大的一个
Collect(Count) 所有输出值的个数

文字表达式(Literal Expression)

这个文字表达式指定了决策的值是如何生成的。这是一个会被DMN引擎执行的表达式。它可以被用作复杂的计算,去调用一个提供了决策逻辑的bean,或者组合输出需求决策的值

xml 复制代码
<literalExpression>
  <text>calendar.getSeason(date)</text>
</literalExpression>

表达式被设置在xml中literalExpression元素内的text元素中

xml 复制代码
<literalExpression expressionLanguage="groovy">
  <text>calendar.getSeason(date)</text>
</literalExpression>

可以通过literalExpression的expressionLanguage属性指定文字表达式的表达式语言。支持的表达式语言详见用户指南

决策需求图

决策需求图(DRG)为决策领域建模,展示相关的最重要的元素和它们的依赖关系。建模的元素是决策(decisions),输入数据(input data),和知识源(knowledge sources)。在线预览需求图

xml 复制代码
<definitions xmlns="https://www.omg.org/spec/DMN/20191111/MODEL/" id="dinnerDecisions" name="Dinner Decisions" namespace="http://camunda.org/schema/1.0/dmn">
  <decision id="dish" name="Dish">
    <!-- ... -->
  </decision>
  <decision id="beverages" name="Beverages">
    <!-- ... -->
  </decision>
</definitions>

在xml中的DRG的表示

参考链接

DMN 决策使用
Business Rule Task 业务规则任务
camunda-dmn

相关推荐
Reart6 小时前
Leetcode 213.打家劫舍2(内含闲谈,打劫真是技术活,好题,716)
后端·算法
触底反弹6 小时前
🔥 RAG 到底是怎么工作的?掰开揉碎了给你讲明白!
javascript·人工智能·后端
techdashen7 小时前
Go 1.26 新增 `bytes.Buffer.Peek`:只看数据,不移动读取位置
开发语言·后端·golang
Reart7 小时前
Leetcode 198.打家劫舍(716)
后端·算法
Java编程爱好者7 小时前
Spring6.0+Boot3.0:秒级启动、万级并发的开发新姿势
后端
YYYing.8 小时前
【C++大型项目之高性能服务器框架 (七) 】Socket与ByteArray模块
服务器·c++·后端·框架·高性能·c/c++
青山木8 小时前
一把 Redis 分布式锁,踩透四个坑:锁争抢、僵尸锁、锁过期、锁丢失
java·数据库·redis·后端
神奇小汤圆8 小时前
雪花算法ID重复了?惨痛教训:请勿轻易造轮子!
后端
Java内核笔记8 小时前
万字避坑!Spring Boot 3.x 升 4.0 最全升级指南(附 Migration Checklist,建议收藏⭐)
java·后端
从零开始的代码生活_8 小时前
C++ list 原理与实践:双向链表、迭代器与简化实现
开发语言·c++·后端·学习·算法·链表·list