每个条件的DMN表 [英] DMN Table per condition

查看:12
本文介绍了每个条件的DMN表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望利用DMN创建计算,但此计算的规则因国家/地区而异,因此规则USA和Category 1与USA和Category 2的规则不同,加拿大和Category 1的规则也不同。

我不想添加国家/地区类别的列并将其全部保存在同一个表中,因为这将使表变得非常大,而且由于每个表将由不同的用户组维护,因此如果可能的话,将其分开保存会更简单。

有没有办法用DMN对此进行建模?

我知道BPMN可以用来决定调用哪个表,但我很好奇是否只有DMN可以处理这种情况。

提前谢谢

推荐答案

我知道BPMN可以用来决定调用哪个表,但我很好奇是否只有DMN可以处理这种情况。

在您的案例中,最合适的方法指南确实是结合BPMN的力量来协调评估哪个决策服务(DMN)。

在此前提下,您可能有两个单独使用DMN的替代选项。

仅DMN,选项1

您可以为每个DMN模型文件定义一个决策服务,每个文件都对特定的国家/地区进行建模。然后,在主管&DMN模型中,您可以评估所有导入DMN模型的国家/地区的相应决策服务。

专业:

  • 仅限DMN
  • 每个DMN确实可以由一组不同的用户维护
  • 已定义的国别决策服务的可重用性

缺点:

  • 可伸缩性受到选项数量的限制,如果要导入许多特定国家/地区的型号

示例:

此示例实际显示了要选择哪个决策,即:评估所有变体,然后只选择所需的一个。

但您绝对可以重构模型,以便仅调用您想要的导入的决策服务(例如:s.Standard card ds()g.Gold card ds())。

我想展示这个示例,因为它比您的用例稍微广泛一些,但是如前所述,您可以让它更简单。

仅DMN,选项2

您可以使用非DMN标准invoke()函数从给定的DMN模型动态调用所需的DMN模型,前提是调用的DMN模型可由特定平台API解析--即:on Drools是同一KieContainer的一部分,on Kogito是同一Kogito应用程序的一部分。

专业:

  • 仅限DMN
  • 每个DMN确实可以由一组不同的用户维护

缺点:

  • invoke()函数是Drools扩展的内置函数,不是DMN规范的一部分。

示例:

在本例中,Country用于查找模型的名称,该模型包含我们要调用以评估购买年龄的决策表;然后使用扩展的内置函数调用所需的模型,传递所需的输入:

第二个屏幕截图从左到右显示:特定于国家/地区的DMN模型的示例、执行调用的主管DMN模型的示例、针对几个选定国家/地区运行该模型并显示购买年龄的方案测试示例。

我认为这是极少数真正有意义地利用平台集成方面(如invoke()功能)的情况之一,因为引入不同ISO国家/地区变体的249个型号将是天真的。

这篇关于每个条件的DMN表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆