设为首页 | 收藏本站
18515218668

DMN中的“命中策略”具体是如何运作的?

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

在DMN(决策模型与表示法)中,“命中策略”(Hit Policy)规定了当决策表中的多条规则与输入数据匹配时,系统应如何产生最终结果。它确保了决策逻辑的确定性和一致性。

2.png

以下是命中策略的具体运作机制:

1.基本呈现方式

l   标识符:命中策略通常由其名称的首字母表示(如U,A,P,F,C,O,R),填写在决策表的特定单元格中(水平表位于左上角,垂直表位于左下角)。

l   默认值:如果未指定,默认命中策略为“唯一”(Unique,U)。

l   基本分类:分为单次命中(返回单条规则的结果)和多次命中(返回多条规则的结果列表或聚合值)两大类。

2.单次命中策略(Single Hit Policies)

这类策略无论有多少条规则匹配,最终只输出一个结果:

l   唯一(Unique,U):最严格的策略。在逻辑上不允许规则重叠,对于任何给定的输入组合,只能有且仅有一条规则被匹配。

l   任意(Any,A):允许多条规则重叠,但所有匹配规则的输出必须完全相同。如果匹配出的输出值不一致,则结果是未定义的。

l   优先级(Priority,P):允许多条规则匹配。系统根据预先定义的“输出值列表”中的顺序,返回输出优先级最高的那条规则。

l   第一(First,F):允许多条规则匹配。系统直接返回在决策表中位置最靠前(按规则行号排序)的第一条匹配规则的结果。

3.多次命中策略(Multiple Hit Policies)

这类策略会收集所有匹配规则的结果:

l   收集(Collect,C):以任意顺序返回所有匹配规则的输出列表。它可以带有聚合算子(Aggregation)来处理列表:

+(Sum):返回所有输出值的总和。

<(Min):返回所有输出中的最小值。

>(Max):返回所有输出中的最大值。

(Count):返回匹配规则的数量。

l   规则顺序(Rule order,R):按照规则在表中定义的先后顺序返回所有匹配结果的列表。

l   输出顺序(Output order,O):按照预定义的“输出值列表”中的优先级顺序返回所有匹配结果的列表。

4.执行运作流程

当一个决策表被调用时,命中策略按以下逻辑执行:

1.规则匹配:将输入值与表中的每一行规则进行比对(匹配过程是无序的)。

2.处理无匹配情况:如果没有规则匹配,则返回默认输出值(Default Output Value);若未定义默认值,则返回null。

3.应用策略:如果存在多个匹配项,根据所选的命中策略字母(如F或R会按规则编号排序,P或O会按值优先级排序)对结果进行筛选、排序或聚合。

4.最终输出:生成最终的单一值或值列表。

总结建议:在设计决策模型时,“唯一(U)”被认为是最规范的实践,因为它消除了歧义;而“第一(F)”和“规则顺序(R)”由于结果依赖于规则在表中的物理位置,在使用时需格外小心,以免因调整行顺序而改变业务逻辑。

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