4.2. 在 Business Central 中为 DMN 框表达式创建自定义数据类型
在 Business Central 中的 DMN 框表达式中,数据类型决定了您在框表达式中的关联表、列或字段中使用的数据的结构。您可以使用默认 DMN 数据类型(如字符串、数字、布尔值)或者创建自定义数据类型来指定要为空闲表达式值实施的其他字段和约束。
为框表达式创建的自定义数据类型可以是简单或结构化:
-
简单 的数据类型只有一个名称和类型分配。示例:
期限(数字) -
结构化 数据类型包含多个与父数据类型关联的字段。示例:包含字段名称
(字符串)、的单个类型Age (数字)、电子邮件(字符串)Person。
先决�件
- 在 Business Central 中创建或导入 DMN 文件。
流程
-
在 Business Central 中,进入 Menu
Design Projects,点项目名称,然后选择您要修改的 DMN 文件。 - 在 DMN Designer canvas 中,选择要为其定义数据类型的决策节点或业务知识模型,然后单击 Edit 图标来打开 DMN 框表达式设计程序。
如果框表达式适用于尚未定义的决策节点,请单击未定义表来选择您要使用的框表达式类型,如框的字面表达式、框的上下文表达式、决策表或其他 DMN 框表达式。
图 4.24. 为决策节点选择逻辑类型
点击表标头、列标头或参数字段的单元(取决于您要为其定义数据类型),然后单击 Manage 以进入可用于创建自定义数据类型的数据类型。
图 4.25. 为列标头值管理数据类型
您还可以通过选择 DMN 设计器右上角的 Properties 图标来为指定决策节点或业务知识模型节点设置自定义数据类型:
图 4.26. 在决策要求图(DRD)属性中管理数据类型
您在框表达式中为指定单元定义的数据类型决定了您在该关联表、列或框表达式中使用的数据的结构。
在本例中,对于 DMN 决策表的输出列 Credit Score Rating 定义了一组基于适用信信的信信分数评级的自定义信分数评级。
在 Data Types 页面中,点 New Data Type 来添加新数据类型,或者点击 Import Data Object 从您要用作 DMN 数据类型的项目导入现有数据对象。
如果您从项目导入数据对象作为 DMN 数据类型,然后更新该对象,则必须重新导入数据对象作为 DMN 数据类型,以便在 DMN 模型中应用更改。
在本例中,点 New Data Type 并创建一个 Credit_Score_Rating 数据类型
作为字符串:图 4.27. 添加新数据类型
如果数据类型需要项目列表,请启用 List 设置。
点 Add Constraints,从下拉菜单中选择 Enumeration,并添加以下限制:
-
"Excellent" -
"Good" -
"fair" -
"Poor" -
"Bad"
图 4.28. 在新数据类型中添加限制
要更改数据类型约束的顺序,您可以点约束行左侧的结尾,并根据需要拖动行:
图 4.29. 拖动约束以更改约束顺序
有关指定数据类型的约束类型和语法要求的详情,请参考 决策模型和表示法规格。
-
- 点 OK 保存约束,然后点数据类型右侧的检查标记保存数据类型。
返回到 Credit Score Rating 决策表,点 Credit Score Rating 列标头,将数据类型设置为这个新的自定义数据类型,并使用您指定的 rating 约束定义该列的规则值。
图 4.30. 信用卡分数评级的决策表
在这个情境的 DMN 决策模型中,Loan Pre qualification 决定将决策流化成以下 Loan Prequalification 决定,还需要自定义数据类型:
图 4.31. loan prequalification 的决策表
继续本例,返回到 数据类型 窗口,单击 New Data Type,然后创建一个 Loan_Qualification 数据类型作为无限制的
结构。保存新的结构化数据类型时,会显示第一个子字段,以便您可以开始在此父数据类型中定义嵌套数据字段。您可以在结构化表达式中使用这些子字段与父结构化数据类型关联,如分区表中的嵌套列标头或上下文或功能表达式中的嵌套表参数。
对于额外的子字段,请选择 Loan_Qualification 数据类型旁边的添加图标:
图 4.32. 使用嵌套字段添加新的结构化数据类型
在本例中,在结构化 Loan_Qualification 数据类型下,添加一个带有
"Qualified"和"Not Qualified"枚举约束的 Qualification 字段,以及一个没有限制的 Reason 字段。另外,添加一个简单的 Back_End_Ratio 和 a the the_End_Ratio 数据类型,两者均具有"Sufficient"和"Insufficient"枚举限制。点您创建的每种数据类型右侧的检查标记来保存您的更改。
图 4.33. 使用约束添加嵌套数据类型
要更改数据类型的顺序或嵌套的数据类型,您可以点数据类型行的左侧,并根据需要拖动行:
图 4.34. 拖动数据类型以更改数据类型顺序或嵌套
返回到路由表,对于每列,点列标头单元,将数据类型设置为新的对应的自定义数据类型,并使用您指定的约束为列定义规则值(如果适用)。
图 4.35. loan prequalification 的决策表
对于除路由表以外的框表达式类型,您可以按照类似方式浏览表达式表的指南,并根据需要定义自定义数据类型。
例如,以下框函数表达式使用自定义 tCandidate 和 tProfile 结构化数据类型来关联在线隐藏兼容性的数据:
图 4.36. 在线隐藏兼容性的方框函数表达式
图 4.37. 在线隐藏兼容性的自定义数据类型定义
图 4.38. 带有自定义数据类型的参数定义,以便在线隐藏兼容性