设为首页 | 收藏本站
18515218668

DMN中的“决策服务”是如何在元模型中定义的?

发表时间:2026-03-31 18:00作者:Together规则引擎
文章附图

在DMN元模型中,决策服务(Decision Service)被定义为一种特殊的“可调用元素”(Invocable),用于封装决策模型中的一部分逻辑并将其暴露为可重用的接口。

3.png

以下是基于元模型规范的具体定义:

1.继承结构

l   父类:DecisionService继承自抽象类Invocable。

l   间接继承:由于继承了Invocable,它也属于DRG Element和Named Element,这意味着它拥有名称(name)、可选的ID、描述和标签等属性。

l   变量绑定:它继承了一个variable(类型为Information Item),该变量用于在决策逻辑中通过名称引用并调用该服务。元模型规定该变量的名称必须与决策服务的名称相同。

2.核心属性与关联(Table17)

决策服务通过四个关键的关联来定义其边界和接口:

l   输出决策(output Decisions):服务被调用时必须返回结果的决策实例列表。一个服务至少要有一个输出决策。

l   封装决策(encapsulated Decisions):包含在服务内部、为计算输出决策所需但不对外直接暴露结果的决策。

l   输入决策(input Decisions):作为服务输入提供的其他决策结果(由服务外部评估)。

l   输入数据(input Data):服务运行所需的外部输入数据实例。

约束条件:元模型要求在定义时,encapsulated Decisions和input Decisions属性中至少必须指定其中之一。

3.语义与结构约束

l   定义位置:决策服务必须定义在Definitions根容器中,其ID在该容器内必须唯一。

l   良构性(Well-formedness):决策服务必须是“良构的”,即它的需求子图(Requirement Subgraph)必须是无环的,不能直接或间接地依赖于自身。

l   需求子图组成:服务的需求子图由服务本身以及其encapsulated Decisions和output Decisions所引用的所有决策的需求子图的并集组成。

4.执行语义简述

在元模型层面,决策服务在FEEL语义中被映射为一个函数(Function)。当该服务被调用时,它会基于提供的输入数据和输入决策,在无状态且无副作用的环境下评估其封装的逻辑,并返回输出决策的结果。

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