第 55 章 创建指导规则模板
您可以使用指导规则模板来定义规则结构,其中包含与数据表中定义的实际值对应的占位符值(模板键)。指导规则模板是单独定义使用相同结构的多种指导规则集的有效替代方案。
流程
-
在 Business Central 中,进入 Menu
Design Projects,然后点击项目名称。 -
点 Add Asset
Datacenter Rule Template。 - 输入 说明性规则模板名称 并选择相应的 软件包。您指定的软件包必须是分配所需数据对象或将被分配的软件包。
单击 Ok 以创建规则模板。
新的指导规则模板现在列在 Project Explorer 的关键规则 面板中。
- 点 Data Objects 选项卡,并确认您的规则所需的所有数据对象都已列出。如果没有,点 New item 从其他软件包导入数据对象,或者在软件包中 创建数据对象。
所有数据对象都就位后,返回到 Model 选项卡,并使用窗口右侧的按钮来添加和定义规则模板的 WHEN (condition)和 theN (action)部分,基于可用的数据对象。对于每个规则的不同字段值,以规则设计器或
@{key}格式使用$key格式的模板密钥,使用自由格式 DRL (如果使用)。图 55.1. 指导规则模板示例
关于模板键的备注模板键是指导规则模板的基本信息。模板键是将模板中启用字段值与您在对应数据表中定义的实际值进行交换,以从同一模板生成不同的规则。对于属于基于该模板的所有规则的规则结构的一部分,您可以使用其他值类型,如 Literal 或 Formula。但是,对于规则之间差异的任何值,请使用带有指定键的 Template key 字段类型。在指导规则模板中没有模板密钥,则模板设计程序中不会生成对应的数据表,模板基本上作为单独的指导规则的功能。
规则模板的 WHEN 部分是执行操作必须满足的条件。例如,如果电信公司根据他们订阅服务的服务(互联网、电话和 TV)收取客户,那么其中一个 WHEN 条件将是
InternetService | 等于 | $hasInternetService。模板键$hasInternetService与模板的数据表中定义的实际布尔值(true或false)进行交换。规则模板的 wordpressN 部分是满足规则条件部分时要执行的操作。例如,如果客户只订阅互联网服务,则删除模板键
$amount的RecurringN 操作会将实际每月数量设置为数据表中为互联网服务收费定义的整数值。- 在定义了规则的所有组件后,点指导规则模板设计器中的 Save 来保存您的更改。
55.1. 在指导规则模板中添加 WHEN 条件 复制链接链接已复制到粘贴板!
规则的 WHEN 部分包含执行操作必须满足的条件。例如,如果电信公司根据他们订阅服务的服务(互联网、电话和 TV)收取客户,那么其中一个 WHEN 条件将是 InternetService | 等于 | $hasInternetService。模板键 $hasInternetService 与模板的数据表中定义的实际布尔值(true 或 false)进行交换。
先决�件
- 您的规则所需的所有数据对象已创建或导入,并在指导规则模板设计器的 Data Objects 选项卡中列出。
流程
在指导规则模板设计器中,点击
WHEN部分右侧的加号图标
。
此时会打开可用 condition 元素的规则窗口中添加一个条件。
图 55.2. 在规则中添加条件
该列表包括指导规则模板设计器的 Data Objects 选项卡中的数据对象、为软件包定义的任何 DSL 对象以及以下标准选项:
- 以下不存在:使用它来指定不能存在 的事实和约束。
- 存在: 使用它来指定必须存在的事实和约束。这个选项仅针对第一个匹配项触发,而不在以后的匹配项上触发。
- 以下任何一个是 true : 使用它来列出所有必须为 true 的事实或约束。
-
from : 使用它来为
规则定义From condition 元素。 -
从 Accumulate : 使用它来为规则定义
Accumulate条件元素。 -
from Collect : 使用它来为规则定义
Collect条件元素。 -
from
Entry Point: 使用它来为模式定义条目点。 -
free form DRL :使用它来插入自由格式 的 DRL 字段,您可以在其中自由定义条件元素,而无需指导规则设计器。对于自由形式的模板密钥,请使用
@{key}格式。
- 选择一个 condition 元素(如 Customer)并单击 Ok。
点指导规则模板设计器中的 condition 元素,为客户窗口使用修改 限制来对字段添加限制、应用多个字段约束、添加新的公式风格表达式、应用表达式编辑器或设置变量名称。
图 55.3. 修改条件
注意变量名称允许您识别指导规则中的其他结构的事实或字段。例如,您可以将 customer 变量设置为
c,然后在单独的Applicant约束中引用c,指定客户是Applicant。c : Customer() Applicant( this == c )选择约束后,窗口会自动关闭。
-
从添加的限制旁的下拉菜单中选择限制(例如,
等于)的运算符。 -
点编辑图标(
)定义字段值。
-
如果这个值因基于此模板的规则而异,请选择 Template key 并在
$key格式添加模板密钥。这允许将字段值与您在对应数据表中定义的实际值进行交换,以从同一模板生成不同的规则。对于不是规则的一部分且是规则模板的一部分的字段值,您可以使用任何其他值类型。 要应用多个字段限制,点条件并在 customer 窗口中的 Modify 约束,从 Multiple field constraint 下拉菜单中选择 All of (And) 或 Any of (Or)。
图 55.4. 添加多个字段约束
- 点指导规则模板设计器中的约束,并进一步定义字段值。
- 在定义了所有条件元素后,点指导规则模板设计器中的 Save 来保存您的工作。