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

相关推荐
小突突突1 小时前
Spring框架中的单例bean是线程安全的吗?
java·后端·spring
iso少年1 小时前
Go 语言并发编程核心与用法
开发语言·后端·golang
掘金码甲哥2 小时前
云原生算力平台的架构解读
后端
码事漫谈2 小时前
智谱AI从清华实验室到“全球大模型第一股”的六年征程
后端
码事漫谈2 小时前
现代软件开发中常用架构的系统梳理与实践指南
后端
Mr.Entropy2 小时前
JdbcTemplate 性能好,但 Hibernate 生产力高。 如何选择?
java·后端·hibernate
YDS8292 小时前
SpringCloud —— MQ的可靠性保障和延迟消息
后端·spring·spring cloud·rabbitmq
无限大63 小时前
为什么"区块链"不只是比特币?——从加密货币到分布式应用
后端
洛神么么哒3 小时前
freeswitch-初级-01-日志分割
后端
蝎子莱莱爱打怪3 小时前
我的2025年年终总结
java·后端·面试