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

相关推荐
码事漫谈6 分钟前
后端开发如何将创新转化为专利?案例、流程与实操指南
后端
小坏讲微服务1 小时前
SpringCloud零基础学全栈,实战企业级项目完整使用
后端·spring·spring cloud
humors2211 小时前
服务端开发案例(不定期更新)
java·数据库·后端·mysql·mybatis·excel
Easonmax4 小时前
用 Rust 打造可复现的 ASCII 艺术渲染器:从像素到字符的完整工程实践
开发语言·后端·rust
百锦再4 小时前
选择Rust的理由:从内存管理到抛弃抽象
android·java·开发语言·后端·python·rust·go
小羊失眠啦.4 小时前
深入解析Rust的所有权系统:告别空指针和数据竞争
开发语言·后端·rust
q***71854 小时前
Spring Boot 集成 MyBatis 全面讲解
spring boot·后端·mybatis
大象席地抽烟5 小时前
使用 Ollama 本地模型与 Spring AI Alibaba
后端
程序员小假5 小时前
SQL 语句左连接右连接内连接如何使用,区别是什么?
java·后端
小坏讲微服务5 小时前
Spring Cloud Alibaba Gateway 集成 Redis 限流的完整配置
数据库·redis·分布式·后端·spring cloud·架构·gateway