设为首页 | 收藏本站
18515218668

解读DMN盒装调用

发表时间:2026-04-04 17:59作者:Together规则引擎
文章附图

在DMN中,盒装调用(boxed invocation)是一种专门的表格表示法,用于定义决策或另一个业务知识模型(BKM)如何调用BKM或决策服务。它充当参数绑定的视觉容器,使逻辑重用比等效的文本表达式更易于理解。

7.png

以下是其结构、语义和用途的详细说明:

1.视觉符号与结构

盒装调用表现为一个分为几个部分的框:

l   标题(被调用元素名称):顶部的框包含被调用的BKM或决策服务的名称。

l   绑定行:在标题下方,调用列出了一个或多个“绑定”行。

l   参数列(左侧):每一行的左侧框包含被调用函数的形式参数(formal parameter)的名称。

l   绑定表达式列(右侧):参数右侧是一个绑定表达式(其本身可以是任何盒装表达式)。在执行函数时,该表达式的值将赋给相应的参数。

2.执行语义

l   映射到FEEL:在形式上,盒装调用等同于使用具名参数的FEEL函数调用。例如,调用名为"Calculation"且带有参数p1和p2的表格被解释为Calculation(p1:expression1,p2:expression2)。

l   作用域(Scope):绑定表达式的评估发生在调用元素(例如包含该调用的决策)的作用域内。

l   要求:盒装语法要求至少显示一个参数。如果函数没有参数,则必须使用标准文本语法进行调用(例如functionName())。

3.元模型定义

在DMN元模型中,调用(Invocation)是Expression的一个具体专门化:

l   它包含一个calledFunction(一个必须评估为函数的表达式,通常是命名BKM的文字表达式)。

l   它由零个或多个binding实例组成。

l   每个binding将一个formalParameter(一个InformationItem)与一个bindingFormula(一个Expression)关联起来。

4.在决策建模中的角色

盒装调用主要用于:

l   促进重用性:允许在多个决策中重用封装在BKM中的逻辑,而无需重复逻辑本身。

l   简化复杂决策:当决策逻辑仅由调用BKM组成时,盒装调用提供了一种清晰、标准的方法将输入映射到BKM的参数。

l   支持外部逻辑:它们可用于将数据传递给外部定义的函数,例如使用Java、PMML或ONNX实现的函数。

示例:在贷款申请模型中,“资格(Eligibility)”决策可能会使用盒装调用来调用“资格规则”BKM,将“申请人年龄”输入数据绑定到BKM逻辑所需的“年龄”参数。

文章分类: DMN建模
分享到:
精选文章
公众号
关于我们
联系方式
让您的业务更自动化、智能化!
联系邮箱:   zhangyi@rongtek.com      wangyilong@rongtek.com
咨询热线:185 1521 8668        183 3562 2627
电话:010-8200081