第 6 章 在 Business Central 中创建和编辑 DMN 型号


您可以使用 Business Central 中的 DMN 设计器设计 DMN 决策要求图(DRD)并为完整功能 DMN 决策模型定义决策逻辑。Red Hat Decision Manager 为 DMN 1.2 模型提供设计支持,并包括到 FEEL 和 DMN 模型组件的增强和修复,以优化使用红帽决策管理器实施 DMN 决策服务的体验。Red Hat Decision Manager 还为 DMN 1.1、1.2、1.3 和 1.4 模型提供运行时支持,但任何 DMN 1.1 和 1.3 模型(不包含您导入到 Business Central 中的 DMN 1.3 功能),在 DMN 设计程序中打开,并保存将转换为 DMN 1.2 模型。

流程

  1. 在 Business Central 中,前往 Menu Design Projects 并点项目名称。
  2. 在 Business Central 项目中创建或导入 DMN 文件。

    要创建 DMN 文件,点 Add Asset DMN,输入一个参考性 DMN 模型名称,选择适当的 软件包,然后点击 Ok

    要导入现有的 DMN 文件,请单击 Import Asset,输入 DMN 模型名称,选择适当的 软件包,选择 DMN 文件,然后单击确定

    新的 DMN 文件现在在 Project ExplorerDMN 面板中列出,并显示 DMN 决策要求图(DRD)canvas。

    注意

    如果您导入了不包含布局信息的 DMN 文件,则在 DMN 设计器中自动格式化导入的决策要求图(DRD)。点 DMN 设计器中的 Save 保存 DRD 布局。

    如果没有自动格式化导入的 DRD,您可以在 DMN 设计器的右上角选择 Perform Automatic 布局 图标来格式化 DRD。

  3. 在新的或导入的 DMN 决策要求图(DRD)中开始从左侧工具栏中点并拖动其中一个 DMN 节点:

    图 6.1. 添加 DRD 组件

    可用的 DRD 组件如下:

    • 决策 :将此节点用于 DMN 决策,其中一个或多个输入元素根据定义的决策逻辑确定输出。
    • 商业知识模型 :此节点可通过一个或多个决策元素来重复利用功能。具有相同逻辑的决策但依赖于不同的子项数据或子子数据,使用商业知识模型来确定要遵循哪些流程。
    • 知识来源 :将此节点用于对遵循决策或商业知识模型的外部授权、文档、提交或策略。知识源是指参考实际因素而不是可执行的业务规则。
    • 输入数据 :使用此节点获取决策节点或业务知识模型中使用的信息。输入数据通常包括与业务相关的业务级别概念或对象,如在客制策略中使用的 loan Applicationlicant 数据。
    • 文本注解 :使用此节点来解释与输入数据节点、决策节点、业务知识模型或知识来源相关的备注。
    • 决策服务 :此节点包含一组可重用决策,实施为要调用的决策服务。决策服务可用于其他 DMN 模型,并可从外部应用程序或 BPMN 业务流程调用。
  4. 在 DMN 设计器 canvas 中,双击新的 DRD 节点进入信息性节点名称。
  5. 如果节点是决策或商业知识模型,请选择节点以显示节点选项,并点击 Edit 图标打开 DMN 框的表达式设计程序,以定义节点的决策逻辑:

    图 6.2. 打开新决策节点复选框表达式

    图 6.3. 打开新的商业知识模型已选中表达式

    默认情况下,所有商业知识模型都被定义为带有字面意义的 FEEL 表达式、外部 JAVA 或 PMML 函数的嵌套上下文表达式,或任何类型的嵌套式表达式。

    对于决策节点,您可以点击未定义表来选择要使用的已框表达式类型,如方框式的字面表达式、方框式上下文表达式、决策表或其他 DMN 框的表达式。

    图 6.4. 为决策节点选择逻辑类型

    对于业务知识模型,您可以单击左上角的功能单元以选择功能类型,或者右键单击功能价值单元,选择 Clear,然后选择另一个类型的选框表达式。

    图 6.5. 为业务知识模型选择功能或其他逻辑类型

  6. 在选中的表达式设计器中,用于决策节点(任何表达式类型)或业务知识模型(功能表达式),单击适用的表单元格来定义表名称、变量数据类型、变量名称和值、功能参数和绑定,或者 FEEL 表达式包含在决策逻辑中。

    您可以右键单击适用于适用操作的其他操作的单元,如插入或删除表行和列或清除表内容。

    以下是一个决策节点的示例决策表,它根据 loan applicant 的贡献分数确定分数等级:

    图 6.6. 得分评级的决策节点决策表

    以下是业务知识模型的框框功能表达式,它根据主体、兴趣、税务和保险(PITI)计算分流支付:

    图 6.7. PITI 计算业务知识模型功能

  7. 为所选节点定义决策逻辑后,点 Back to "<MODEL_NAME>" 以返回到 DRD 视图。
  8. 对于所选的 DRD 节点,使用可用的连接选项创建并连接到 DRD 中的下一个节点,或者点击新节点并从左工具栏中分离新节点。

    节点类型决定支持哪些连接选项。例如,Input 数据节点 可以使用适用的连接类型连接到决策节点、知识源或文本注解,而 知识源 节点则可连接到任何 DRD 元素。决策 节点只能连接到其他决策或文本注解。

    根据节点类型,有以下连接类型可用:

    • 信息要求 :将此从输入数据节点或决策节点的连接与需要信息的另一种决策节点一起使用。
    • 知识要求 :将此从业务知识模式与决策节点的连接与称为决策逻辑的其他业务知识模型进行联系。
    • 颁发机构要求 :将此从输入数据节点或决策节点与依赖知识来源的连接,或者从知识源到决策节点、业务知识模型或其他知识来源。
    • 关联 :使用此连接从输入数据节点、决策节点、业务知识模型或知识源到文本注解。

    图 6.8. 将分数得分输入连接到分数等级决定

  9. 继续添加和定义决策模型中剩余的 DRD 组件。定期在 DMN 设计器中点 Save 来保存您的工作。

    注意

    当您定期保存 DRD 时,DMN 设计程序会对 DMN 模型执行静态验证,并可能会生成错误消息,直到模型被完全定义为止。在完全定义 DMN 模型后,如果任何错误保留,请相应地对指定问题进行故障排除。

  10. 添加并定义 DRD 的所有组件后,点 Save 保存并验证完成的 DRD。

    要调整 DRD 布局,您可以在 DMN 设计器右上角选择 Perform 自动布局 图标。

    以下是 loan prequalification 决策模型的 DRD 示例:

    图 6.9. 为 loan prequalification 完成 DRD

    以下是使用可重复使用的决策服务处理决策模型的 DRD 示例:

    图 6.10. 使用决策服务进行电话接手处理完成的 DRD

    在 DMN 决策服务节点中,底部片段中的决策节点纳入了来自决策服务之外的输入数据,以达到决策服务节点的主要网段中最终决策。然后,在 DMN 模型的后续决策或商业知识要求中实施来自决策的顶级决策。您可以在其他 DMN 模式下重复使用 DMN 决策服务,以应用具有不同输入数据和不同传出连接的相同决策逻辑。

6.1. 在 Business Central 的框中定义 DMN 决策逻辑

DMN 中的方框表达式是您用来在决策要求图(DRD)中定义决策节点和商业知识模型的基本逻辑。一些方框的表达式可包含其他框的表达式,但顶级的表达式与单个 DRD 工件的决策逻辑对应。DRD 代表 DMN 决策模型的流,但已框的表达式定义各个节点的实际决策逻辑。DRD 和 boxed 表达式组成一个完整的、功能 DMN 决策模型。

您可以使用 Business Central 中的 DMN 设计器,使用内置的表达式为 DRD 组件定义决策逻辑。

先决条件

  • 在 Business Central 中创建或导入 DMN 文件。

流程

  1. 在 Business Central 中,前往 Menu Design Projects,点项目名称并选择要修改的 DMN 文件。
  2. 在 DMN 设计器 canvas 中,选择您要定义的决定节点或商业知识模型节点,并点击 Edit 图标打开 DMN 框的表达式设计器:

    图 6.11. 打开新决策节点复选框表达式

    图 6.12. 打开新的商业知识模型已选中表达式

    默认情况下,所有商业知识模型都被定义为带有字面意义的 FEEL 表达式、外部 JAVA 或 PMML 函数的嵌套上下文表达式,或任何类型的嵌套式表达式。

    对于决策节点,您可以点击未定义表来选择要使用的已框表达式类型,如方框式的字面表达式、方框式上下文表达式、决策表或其他 DMN 框的表达式。

    图 6.13. 为决策节点选择逻辑类型

    对于业务知识模型节点,您单击左上角的功能单元以选择功能类型,或者右键单击功能价值单元,选择 Clear,然后选择另一个类型的方框。

    图 6.14. 为业务知识模型选择功能或其他逻辑类型

  3. 在本例中,使用决策节点并选择 Decision Table 作为已选的表达式类型。

    DMN 中的图标表是按表格格式显示一个或多个规则的可视化表示。每个规则均由表中的一行组成,包括针对该特定行定义条件(输入)和结果(输出)的列。

  4. 单击 input 列标题,以定义输入条件的名称和数据类型。例如,将输入列命名为 Inventory Score.FICO数字 数据类型。此列指定数字得分值或贷款的范围。
  5. 单击 output 列标题,以定义输出值的名称和数据类型。例如,将输出列命名为 Score Rating and the Data Type 选项,单击 Manage 来转至 Data Types 页面,您可以在其中创建一个分数评级为约束。

    图 6.15. 管理列标题值的数据类型

  6. Data Types 页面上,点 New Data Type 添加新数据类型或点击 Import Data Object 从您要用作 DMN 数据类型的项目中导入现有数据对象。

    如果您从项目中导入数据对象作为 DMN 数据类型,然后更新该对象,您必须重新导入数据对象作为 DMN 数据类型,以在 DMN 模型中应用更改。

    在本例中,单击 New Data Type 并创建 credit _Score_R ating 数据类型 作为字符串

    图 6.16. 添加新数据类型

  7. Add Constraints,从下拉列表中选择 Enumeration,并添加以下限制:

    • "Excellent"
    • "Good"
    • "Fair"
    • "Poor"
    • "bad"

    图 6.17. 在新数据类型中添加限制

    要更改数据类型约束顺序,您可以点击约束行的左侧,并根据需要拖动行:

    图 6.18. 拖动约束以更改约束顺序

    有关指定数据类型的约束类型和语法要求的详情,请查看 Decision Model 和 Notation 规格

  8. OK 保存约束,然后点数据类型右侧的检查标记保存数据类型。
  9. 返回到 credit Score Rating 决策表,单击 credit Score Rating 列标题,并将数据类型设置为这个新的自定义数据类型。
  10. 使用 credit Score.FICO 输入列来定义贡献分数或值范围,并使用 credit Score Rating 列指定在 credit _Score_Rating 数据类型中定义的相应等级 之一。

    右键点击任意值单元插入或删除行(rules)或列(clauses)。

    图 6.19. 得分评级的决策节点决策表

  11. 在定义所有规则后,单击决策表的左上角,以定义规则 Hit PolicyBuiltin Aggregator (仅限 COLLECT hit 策略)。

    hit policy 决定在决定表中的多个规则与提供的输入值匹配时如何到达结果。内置的聚合器决定如何使用 COLLECT hit 策略来聚合规则值。

    图 6.20. 定义决策表点击策略

    以下示例是更加复杂的决策表,该表格决定 loans 金级资格,作为同一 loan prequalification 决策模型中包括的决定节点:

    图 6.21. loan prequalification 的决策表

对于决策表以外的新式表达式类型,您需要遵循这些指南来导航框的表达式表并为决策逻辑定义变量和参数,但根据已框的表达式类型的要求。一些方框式表达式(如方框的字面表达式)可以是单列表,而其他已框的表达式(如功能、上下文和调用表达式)可以是带有其他类型的嵌套式表达式的多列表。

例如,以下方框上下文表达式定义了参数,它们根据主体、兴趣、税收和保险(PITI),它确定 loan applicant 是否可以满足最低制裁支付费用:

图 6.22. 用于前端客户端 PITI 比率的方框上下文表达式

以下方框式函数表达式确定一个月的分流安装,作为商业知识模型确定在方便的决策中,该函数值定义为嵌套上下文表达式:

图 6.23. 在商业知识模式下安装计算的已选式功能表达式

有关每个已选表达式类型的信息和示例,请参阅 第 4.4 节 “框表达式中的 DMN 决策逻辑”

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat