定义业务规则 - 简介
业务规则是与 Dataverse 表关联的声明性逻辑和验证,无需编写任何代码。
借助业务规则,您可以:
设置列的值。
更改列的要求级别。
验证数据并显示错误消息。
在模型驱动应用窗体中,更改列的属性。
在模型驱动应用窗体中向用户提供建议。
创建或更新 Dataverse 行时,业务规则定义的逻辑可以应用到模型驱动应用窗体中的客户端和/或服务器端。 应用到客户端意味着,当用户更改字段时,规则会立即应用到应用中。 应用到服务器端则意味着,数据保存到数据库之前,会在事务期间保存行并执行逻辑。
业务规则可以在服务器端运行,因此,规则中的条件和操作适用于由模型驱动应用、画布应用、Power Pages 站点、Power Automate 云端流,或 Dataverse API 更改的 Dataverse 数据。
要确定业务规则的运行位置,您必须指定其范围。
范围
业务规则的范围用于定义应用业务规则逻辑的适用情况。
范围 | 适用范围 |
---|---|
实体(表) | 所有模型驱动主窗体均位于客户端,而数据更改发生在服务器端。 这是创建新业务规则时的默认设置。 |
所有窗体 | 所有模型驱动主窗体和快速创建窗体 |
特定窗体 | 仅特定模型驱动的主窗体 |
提示
要在画布应用中使用业务规则,您应将范围设置为实体。
业务规则和模型驱动应用窗体
业务规则的初始开发目的是替换模型驱动应用窗体中的简单 JavaScript。 在运行时根据用户在其他列中输入或选择的值来操作窗体上的属性和值列是一种常见的要求。
在模型驱动应用窗体上,业务规则可以:
显示或隐藏列
将列设为可编辑或只读
更改列的要求级别
为用户提供建议
设置或清除列中的值
重要提示
业务规则只能对窗体上的表列执行操作,无法更改各个部分或选项卡的属性。
这些操作在以下情况下执行:
窗体已打开。
规则引用的列的值发生更改时。
注意
业务规则不适用于窗体的保存事件。
我应该使用业务规则还是采用 JavaScript 的客户端脚本?
JavaScript 可用于在模型驱动应用窗体中执行可由业务规则完成的许多操作,但客户端脚本的作用远远不止于此:
JavaScript 具有操作各类窗体控件(包括选项卡、部分和子网格)的完全访问权限。 业务规则中的操作仅限于表列。
业务规则只能访问窗体/表上的列,无法访问一对多或多对一关系中的行。 借助客户端脚本,您可以使用 Web API 访问这些关系中的行。
业务规则的公式仅限于两列的简单加法、减法、除法或乘法。
建议仅可用于业务规则。
服务器端业务规则
业务规则的范围设置为“实体”时,系统将在行保存时评估规则的条件。 该逻辑在数据库事务的预操作阶段执行。 显示错误消息的业务规则将阻止保存并回滚数据库事务。
注意
规则在服务器端运行时,将忽略仅适用于模型驱动应用的操作。