此博客帖子爱游戏ayx双赢彩票介绍为什么您应该如何将DMN模型集成到您的业务流程景观中。

作为一名BPMN建模师,您可能熟悉以下情况。您记录了一个包含决策逻辑的过程,但是即使条件相对简单,您最终得到的是一个过于复杂的图表。

作为一个例子,让我们看一下文件记录产品折扣计算的过程。您希望根据参数客户状态和购买值($)确定折扣。客户状态是通过客户忠诚度(作为积极客户)的忠诚度和过去购买的总价值确定。

Decision-Logic-BPMN

正如您所看到的,即使是这种相当简单的决定也会增加了对过程模型的巨大复杂性。

因此,在纯BPMN上下文中,你可以在复杂性和准确性之间进行权衡:

  • 删除决策逻辑的部分,例如,在文本属性中记录它。
  • 将决策逻辑重构为一个子流程。

然而,这两种方法都远不是最佳的。

如果您将决策逻辑移动到子流程中,您将显著降低原始图的复杂性,但是新的模型仍然很难阅读,并且容易出错。决策逻辑中不断变化的细节往往需要大量的重构。如果您将决策逻辑转换为文本描述,那么您最终会得到非正式的、通常模棱两可的描述,这些描述对您的读者来说很难理解,也不可能自动处理。

这个问题的最佳解决方案是使用决策模型和表示法(DMN)。DMN是一种开放和标准化的建模符号,明确地设计用于建模业务决策。在DMN中,决策逻辑不表示为流程流,而是表示为决策表中的一组规则。每个规则将一组输入值映射到一组输出值,例如,客户状态“Standard”和低于1000欧元的购买值映射到0%的折扣。

DMN图可以无缝集成到BPMN模型中。

让我们看看如何将示例流程的决策逻辑重构为DMN图。

首先,我们对DMN中的决策逻辑进行了重构:

  • 我们模拟输入参数 - 通常表示BPMN.独占网关,例如,购买价值?-作为数据输入元素。
  • 决策逻辑在决策元素的表中定义。决策表中的每个规则表示一个序列流及其后续任务,其遵循独家网关。例如'> = 1000 $?'并将折扣设置为10%'。

要管理复杂性,我们将多个输入参数重构为一个并将复杂的决策分成多个子决策:

分解_dmn.然后我们在我们的BPMN图中从业务规则任务中引用DMN:

bpmn_dmn_diagramm

通过将DMN模型集成到您的业务流程中,您将获得:

  • 清楚地分离过程流程和决策逻辑,
  • 易于阅读和维护的决策模型,
  • 正式和可执行的决策逻辑(例如在Red Hat's中Drools工具)。

有关如何使用DMN的更多信息,请下载我们的白皮书快速指南使用DMN 1.0决策建模。

发布日期:2016年5月10日最后修改日期:2020年12月21日