您是否已经为DMN规则平台做好了准备?

简介: DMN标准旨在让业务用户无需编程即可实现决策逻辑,通过DRD图表、决策表和FEEL语言简化决策建模。本文介绍了DMN的核心概念,并通过测试题帮助读者评估自身是否适合学习DMN。

      DMN标准主要是为了让主题专家和那些不是程序员的“业务用户”也能轻松使用。DMN保证了不用写代码也能实现可执行的决策逻辑,它通过标准图表(DRD)、标准表格格式(盒装表达式)和对业务人员友好的表达式语言(FEEL)来做到这一点。不过,你可能经常听到有人说这对非程序员来说太难了。其实这不完全对,但确实不是每个业务用户都能做到......就像我们在给很多公司内部的业务用户做DMN培训时看到的,他们都能很快学会DMN的建模方法,并且能把它用到工作中。

要说谁能学会DMN,谁学不会,其实挺难说的。我们以前说过,如果你会用Excel里的“公式”功能,那你就能学会。我们还说过,你需要了解数据类型、表达式和函数这些基本概念。但这听起来可能有点抽象。这里有个简单的测试,看看DMN对你来说有多难。这个测试不需要你已经了解DMN,只需要你能应用一些关于它的知识,就像你在我们的DMN培训中学到的那样。(当然,在培训中,我们会通过实际操作、重复练习和测试来加强这些知识。

DRD

决策需求图描述了决策和支撑决策所需的数据之间的逻辑依赖关系。输入数据(图中的椭圆)是在逻辑执行时提供的值。决策(图中的矩形)包含一个值表达式,这个表达式会根据输入值来计算输出值。决策的输入是由传入的实心箭头连接的决策和输入数据,这叫做信息需求。这些输入是决策值表达式中的变量,只能引用直接信息要求的变量。DRD中的波浪线称为知识源,它代表了决策逻辑的背景信息,而不是信息要求。

图片5.png

问题1.基于该解释,上图中贷款资格预审的值表达式可能引用了哪些变量?

信用评分、负担能力类别

信用评分、负担能力类别、贷款审批指引

信用评分、首付款、购买价格、月收入、贷款利率pct

信用评分、负担能力类别、首付款、购买价格、月收入、贷款利率 pct

决策表

DMN中最熟悉的盒装表达式类型是决策表,如下所示。

图片6.png

以下是它们的工作原理。左侧浅蓝色的列是输入。输入名称下方是其数据类型,其中还可能包括对允许值的约束,例如数值范围或枚举值。右侧深蓝色的列是输出。每个编号的行都是一个决策规则。规则中的输入单元格表示对输入的测试,即true或false。例如,对于规则1的第1列,如果信用评分大于 720,则该单元格为true,否则为false。对于规则 1第2列,如果“负担能力类别为“负担得起”或“勉强负担”,则单元格为真。如果规则中的所有条件单元格都为true,则称该规则匹配,并选择输出列中的表达式作为决策表输出。

如果对于输入值的某种组合,多个规则可能匹配,则称这些规则重叠。在这种情况下,将使用左上角的命中策略代码,此处为A表示Any。命中策略A意味着如果表具有相同的输出值,则它们可能包含重叠的规则。例如,此处的“信用评分610和“负担能力”类别“负担能力”的组合与具有相同输出值的规则6和7匹配。

还有几件事要提。

条件单元格中的数值范围使用规则2-5中的格式。方括号表示包括端点;括号表示排除终结点。例如,规则2测试大于680且小于或等于720的条件。

条件单元格中的连字符表示输入在此规则中无关紧要;默认情况下,该单元格为true。

问题2.信用评分720,负担能力类别“负担不起”的贷款资格预审输出是多少?

a. “可能通过审批”

b. “可能会被批准”

c. “可能通不过审批”

d. null(不匹配)

函数

商业知识模型(BKM)是决策逻辑的单元,表述为建模者定义的函数,这意味着其值表达式引用BKM定义中指定的参数。在DRD中,BKM 连接到一个决策,该决策通过称为知识要求的虚线箭头调用它。在调用中,决策将每个参数的值(称为参数)传递给 BKM,BKM 将这些值插入其值表达式并将结果返回给决策。此外,FEEL表达式语言还提供了大量的内置函数,无需知识需求即可调用。

调用由决策的值表达式定义,如前所述,该值表达式只能引用决策的信息要求。具体而言,它包括将决策输入映射到每个参数的表达式。BKM允许建模者创建可重用的决策逻辑,因为不同的决策(通常在不同的DMN模型中)可以向BKM发送自己的特定参数值。

下面您会看到一个名为贷款摊销公式的BKM,它给出了固定利率住房贷款的每月还款额及其文件。在 BKM 定义中,参数名称和数据类型用括号括起来,括号下方是 BKM 的值表达式。该 BKM 的第二个参数是以小数(而不是百分比)表示的贷款年利率。这个公式只是算术,但它很复杂且难以记住,非常适合 BKM。如果你有BKM,你不需要知道如何派生它;您只需要了解其参数即可。

图片7.png

DRD显示按决定调用BKM贷款摊销公式 每月付款如下所示。输入数据贷款利率pct 是以百分比表示的年贷款利率。

图片8.png

调用表达式的格式为BKM name(arg1, arg2, arg3),其中 arg1、arg2 和 arg3 是每个BKM参数值的表达式。顺序必须与BKM定义中的参数顺序匹配。

问题3.BKM的参数是什么?

a. 贷款金额、贷款利率、贷款期限

b. 贷款金额、贷款利率 pct、贷款期限

c. p、r、n

d. 本金、利率、月数

问题4.什么是调用表达式?

a. 贷款摊销公式(贷款金额、贷款利率、贷款期限)

b. 按揭贷款(p,r,n)

c. 按揭贷款(p,r/100,n)

d. 贷款摊销公式(贷款金额、贷款利率 pct/100、贷款期限)

答案

你写下了你对这四个问题的答案吗?如果没有,请立即返回并执行此操作。以下是答案。

问题1.正确答案是 a. 信用评分,负担能力类别。决策的价值表达可能仅引用其直接信息要求,而其中只有两个。

问题2.正确答案是 c.“可能通不过审批”。信用评分 720 适用于规则 2、3 和 7。 负担能力类别“负担不起”适用于规则 6 和 7。因此,唯一匹配的规则是规则 7,“可能通不过审批”。

问题3.正确答案是 c. p, r, n。BKM的参数列在BKM定义的括号中。

问题4.正确答案是d.贷款摊销公式(贷款金额,贷款利率pct/100,贷款期限)。表达式以 BKM 名称开头,而不是以决策名称开头。由于贷款利率pct是百分比,因此必须将其除以100才能将其转换为小数,即参数r的格式。

你准备好用DMN了吗?

那么,你怎么看这四个问题呢?如果你都搞定了,那肯定没问题。就算你漏了一个,但只是些小细节,而且你明白了解释,那也行。否则,如果上面的话你还是觉得云里雾里的,可能DMN不太适合你。在我们的DMN培训里,我们会一遍遍地讲,还会让你亲自用这个工具,但你得先弄懂基础。对,得有点数学知识(不过就一点点)。

相关文章
|
3月前
|
人工智能 自然语言处理 供应链
风险控制规则引擎:从敏捷开发工具到管理逻辑的承载者
Together规则引擎助力国产低代码平台升级,打造管理逻辑数字化核心。通过封装审批、风控、定价等业务规则,实现流程智能化、决策可追溯,填补国产系统在管理逻辑标准化与治理能力上的短板,推动低代码平台从“界面工具”向“企业决策中枢”跃升,迈向国际先进水平。
|
JavaScript 开发者
解释 Vue 的组件化开发模式及其优势。
解释 Vue 的组件化开发模式及其优势。
395 0
|
3月前
|
人工智能 自然语言处理 安全
代码静态扫描工具集成与实践
代码静态扫描工具(Static Application Security Testing, SAST)是在不运行代码的情况下,通过分析源代码或二进制代码来发现潜在安全漏洞、代码缺陷和质量问题的工具
465 4
|
3月前
|
存储 SQL 机器学习/深度学习
一文辨析:数据仓库、数据湖、湖仓一体
本文深入解析数据仓库、数据湖与湖仓一体的技术原理与适用场景。数据仓库结构严谨、查询高效,适合处理结构化数据;数据湖灵活开放,支持多模态数据,但治理难度高;湖仓一体融合两者优势,实现低成本存储与高效分析,适合大规模数据场景。文章结合企业实际需求,探讨如何选择合适的数据架构,并提供湖仓一体的落地迁移策略,助力企业提升数据价值。
一文辨析:数据仓库、数据湖、湖仓一体
|
3月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
174 6
|
3月前
|
Cloud Native 安全 Java
Go语言深度解析:从入门到精通的完整指南
🌟 蒋星熠Jaxonic,执着的星际旅人,用Go语言编写代码诗篇。🚀 Go语言以简洁、高效、并发为核心,助力云计算与微服务革新。📚 本文详解Go语法、并发模型、性能优化与实战案例,助你掌握现代编程精髓。🌌 从goroutine到channel,从内存优化到高并发架构,全面解析Go的强大力量。🔧 实战构建高性能Web服务,展现Go在云原生时代的无限可能。✨ 附技术对比、最佳实践与生态全景,带你踏上Go语言的星辰征途。#Go语言 #并发编程 #云原生 #性能优化
|
3月前
|
安全 JavaScript 前端开发
安全漏洞检测集成及实践:SAST/DAST工具集成指南
通过合理集成和配置SAST/DAST工具,可以显著提升应用程序的安全性,并在开发早期发现和修复漏洞,降低安全风险和维护成本
341 4
|
3月前
|
存储 Java 开发工具
【Git】零基础入门:配置与初始操作实战指南
本文聚焦 Git 的“从 0 到 1”配置与基础操作,旨在帮助 Java 开发者快速掌握环境搭建、用户配置、仓库初始化、代码提交、版本回退等核心技能。内容设计上避免涉及复杂的分支策略或高级命令,以实用为导向,适合零基础入门者系统学习,为后续参与企业级项目开发奠定版本控制基础。
|
3月前
|
存储 人工智能 自然语言处理
从零搭建RAG应用:跳过LangChain,掌握文本分块、向量检索、指代消解等核心技术实现
本文详解如何从零搭建RAG(检索增强生成)应用,跳过LangChain等框架,深入掌握文本解析、分块、向量检索、对话记忆、指代消解等核心技术,提升系统可控性与优化能力。
394 0
从零搭建RAG应用:跳过LangChain,掌握文本分块、向量检索、指代消解等核心技术实现
|
3月前
|
安全 搜索推荐 机器人
风险规则引擎-RPA 作为自动化依赖业务决策流程的强大工具
机器人流程自动化(RPA)是一种通过软件“机器人”自动执行重复性任务的技术,能大幅提升工作效率。它适用于财务、电商等领域的标准化流程,如账单处理和退货管理。然而,RPA在复杂决策场景中存在局限,需结合决策模型(DMN)和业务规则管理系统(BRMS)实现流程与决策的协同自动化,从而增强灵活性与业务价值。