设为首页 | 收藏本站
18515218668

通过数据类型约束生成更智能的决策表

发表时间:2025-09-02 18:27作者:Together规则引擎
文章附图

决策模型和符号(DMN)是一种有效且标准化的工具,用于在特殊决策表中设计复杂的决策。尽管您(DMN开发人员)已经知道此功能的存在,但您不知道以下几点:Together编辑器中有一个DMN决策表列数据类型约束增强功能,它可以促进和加快决策表的设计和建模。

在本文中,您将了解何时以及如何使用Together规则引擎的这一功能部分。根据DMN规范,我们可以使用数据类型来确定要在盒装表达式中的关联决策表、列或字段中使用的数据结构。除了默认的DMN数据类型(例如String,Number,Boolean)之外,我们还可以创建自定义数据类型来指定其他字段和约束。

我应该在模型中使用约束吗?

我们不会经常在现实世界中应用约束。我们有无限数量的颜色、地点、供应商等。但是,作为DMN开发人员,我们经常会用到限制域。在这里,我们以交通信号灯为例,其中我们需要检查红色和绿色,我们需要对字段进行约束。

Together建模器可以自动同步每个决策表列与所使用数据类型的约束。但是但重要的是要记住,编辑器不会同步您在数据类型和现有决策表中的所有后续更改。现在,让我们看看如何使用这些决策表功能。

如何定义数据类型约束?

所以我们需要数据类型约束。在Together建模器中,我们有一个单独的数据类型选项卡,允许我们管理数据类型。

首先,请设计如下所示的新数据类型:红绿灯颜色

图片5.png

如果我们更精确地看,它只包含两种颜色(红色和绿色),它们是数据类型允许的值。

现在我们已经定义了数据类型,我们可以继续使用DMN建模器来设计交通灯决策。交通灯决策将以所谓的决策要求图(DRD)表示。

设计决策表

关于我们将编写的决策表的逻辑,我们可以将交通灯的颜色(红色或绿色)视为输入:

当红绿灯是红色的时候,不可以通过路口

当红绿灯是绿色的时候,可以通过路口

接下来,我们定义红绿灯含义的数据类型:红绿灯含义

图片6.png

因此,我们有数据类型和两个约束,用于定义哪些是允许的值,在本例中为“不可以通过路口”和“可以通过路口”。您可能已经知道它与“红色”和“绿色”的关系。

接下来,让我们看看DRD。主图将仅包含两个节点,可按如下方式配置:

第一个节点是输入数据(InputData)节点。输入数据节点表示交通灯的颜色。

我们可以根据其业务含义将其类型引用设置为红绿灯颜色。

添加一个新的决策节点,这将帮助我们弄清楚接收到的输入红绿灯颜色的含义。

连接输入数据和决策节点。

决策节点:表示含义。这就是我们的自定义类型:红绿灯含义变得有用的地方!现在,我们应该将决策类型引用设置为类型红绿灯颜色。

此时,我们有两个连接的节点设置了类型,我们还有一共非最重要的事情,定义一个具有列数据类型约束的决策表。

自动生成决策表

DMN编辑器现在能够根据每个节点的信息需求预生成决策表的每一列。通过在自定义数据类型中定义约束,并将表配置为这种数据类型,我们允许编辑器自动抽象哪些信息可以成为决策表的一部分,从而为我们节省了一些额外的时间!然后,唯一的任务就是简单地定义决策表的两行。

请参阅下面的要求结果:

图片7.png

如果您检查列标题详细信息,您会意识到列数据类型约束是自动设置的。只需单击“红绿灯颜色”或“红绿灯含义”单元格并正确检查属性面板。

决策表标头详细信息中的数据类型约束正确配置对于高效的决策表差距分析至关重要。

功能加点:差距分析

假设在设计阶段,我们忘记处理决策表中的一种红绿灯颜色。由于列数据类型约束,DMN建模器现在能够检测到我们缺少一个数据的验证。这发生在后台,当您创作决策时,模型分析正在运行。幸运的是,我们可以放心,DMN建模器可以满足我们的需求,因为它会显示一条消息,警告我们在决策表中忘记处理哪种轻型交通颜色。

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