6.2. 在 Business Central 中为 DMN 框表达式创建自定义数据类型
在 Business Central 中的 DMN 框表达式中,数据类型决定在相关表格、列内或已框表达式中使用的数据的结构。您可以使用默认 DMN 数据类型(如 String、Number,布尔值)或创建自定义数据类型来指定要为框式表达式值实施的其他字段和约束。
为已框表达式创建的自定义数据类型可以是简单或结构化的:
-
简单 数据类型仅具有名称和类型分配。示例:
Age(编号)
-
结构化 数据类型包含多个与父数据类型关联的字段。示例:单个类型
Person
,包含字段名称(字符串
)、Age(编号
)、电子邮件(字符串)。
先决条件
- 在 Business Central 中创建或导入 DMN 文件。
流程
-
在 Business Central 中,前往 Menu
Design Projects,点项目名称并选择要修改的 DMN 文件。 - 在 DMN 设计器 Canvas 中,选择您要定义数据类型的决策节点或商业知识模型,并点击 Edit 图标打开 DMN 框式表达式设计程序。
如果已选中的表达式适用于尚未定义的决定节点,请单击 undefined 表来选择要使用的已选框表达式类型,如方框式的字面表达式、关闭上下文表达式、决策表或其他 DMN 框式表达式。
图 6.24. 为决策节点选择逻辑类型
点表标头、列标题或参数字段的单元(取决于您要定义数据类型的表达式类型),然后单击 Manage 以进入可以创建自定义数据类型的 Data Types 页面。
图 6.25. 管理列标题值的数据类型
您还可以通过选择 DMN 设计器右上角的 Properties 图标,为特定决策节点或业务知识模型节点设置和管理自定义数据类型:
图 6.26. 在决策需求图中管理数据类型(DRD)属性
您在 box 表达式中为指定单元定义的数据类型决定了您在该关联表、列或已框表达式中使用的数据的结构。
在这个示例中,DMN 决策表 的贡献列 Score Rating 定义了一组自定义分数等级,以以适用度的贡献分数为基础。
在 Data Types 页面上,点 New Data Type 添加新数据类型或点击 Import Data Object 从您要用作 DMN 数据类型的项目中导入现有数据对象。
如果您从项目中导入数据对象作为 DMN 数据类型,然后更新该对象,您必须重新导入数据对象作为 DMN 数据类型,以在 DMN 模型中应用更改。
在本例中,单击 New Data Type 并创建 credit _Score_R ating 数据类型
作为字符串
:图 6.27. 添加新数据类型
如果数据类型需要项目列表,请启用 List 设置。
点 Add Constraints,从下拉列表中选择 Enumeration,并添加以下限制:
-
"Excellent"
-
"Good"
-
"Fair"
-
"Poor"
-
"bad"
图 6.28. 在新数据类型中添加限制
要更改数据类型约束顺序,您可以点击约束行的左侧,并根据需要拖动行:
图 6.29. 拖动约束以更改约束顺序
有关指定数据类型的约束类型和语法要求的详情,请查看 Decision Model 和 Notation 规格。
-
- 点 OK 保存约束,然后点数据类型右侧的检查标记保存数据类型。
返回 贡献度级别 决策表,点 credit Score Rating 列标题,将数据类型设置为此新的自定义数据类型,并使用您指定的评级限制定义该列的规则值。
图 6.30. 得分评级的决策表
在这种情况的 DMN 决策模型中,贡献性 决策流至以下需要自定义数据类型 的 Loan Pre qualification 决策:
图 6.31. loan prequalification 的决策表
继续本例,返回 Data Types 窗口,单击 New Data Type,然后创建一个 Loan_Qualification 数据类型作为没有限制的
Structure
。保存新的结构化数据类型时,会显示第一个子字段,以便您开始在此父数据类型中定义嵌套数据字段。您可以在框中的表达式中使用这些子字段与父结构化数据类型相关联,如嵌套列标题,或在上下文或功能表达式中嵌套表参数。
对于其他子字段,请选择 Loan_Qualification 数据类型旁边的添加图标:
图 6.32. 使用嵌套字段添加新的结构化数据类型
在本例中,在结构化 Loan_Qualification 数据类型下,添加一个带有
"Qualified"
和"Not Qualified" enumeration
约束的 Qualification 字段,以及没有限制的 Reason 字段。另外,添加简单的 Back_End_Ratio 和 Front_End_Ratio 数据类型(包括"Sufficient"
eInsufficient"
enumeration 约束)。点击您创建的每种数据类型右侧的检查标记保存更改。
图 6.33. 使用限制添加嵌套数据类型
要更改数据类型的顺序或嵌套,您可以点击数据类型行的左侧,并根据需要拖动行:
图 6.34. 拖动数据类型以更改数据类型顺序或嵌套
返回各个列的决策表,单击列标题单元格,将数据类型设置为新的对应的自定义数据类型,然后根据需要定义列所需的规则值,并提供您指定的限制(如果适用)。
图 6.35. loan prequalification 的决策表
对于决策表以外的选择表达式类型,您需要遵循这些指南来导航框的表达式表并根据需要定义自定义数据类型。
例如,以下方框的函数表达式使用自定义 tCandidate
和 tProfile
结构化数据类型来关联数据进行在线持久性兼容性:
图 6.36. 用于在线持久性兼容性的 boxed 功能表达式

图 6.37. 用于在线持久性兼容性的自定义数据类型定义

图 6.38. 具有用于在线持久性兼容性的自定义数据类型的参数定义
