为表创建业务规则

无需编写代码或创建插件,即可创建业务规则和建议以应用逻辑和验证。业务规则可以提供一个简单的界面来实施和维护快速更改和常用的规则。

重要提示

如果在应用中使用表,则为该表定义的业务规则同时应用于画布应用模型驱动应用。 目前并非所有业务规则操作在画布应用程序上都可用。 详细信息:画布应用程序与模型驱动的应用程序之间的区别

在模型驱动应用中,并非所有业务规则操作都可用于可编辑网格。 对于基于表的视图页面,无法创建建议。 可编辑子网格不支持业务规则。 业务规则不能用于其他类型的数据集控件。

若要定义应用于模型驱动的应用程序中的窗体的业务规则,请参阅创建业务规则以在模型驱动的应用程序窗体中应用逻辑

通过组合条件和操作,可以使用业务规则执行下面的任何操作:

  • 设置列值
  • 清除列值
  • 设置列要求级别
  • 显示或隐藏列
  • 启用或禁用列
  • 验证数据并显示错误消息
  • 根据业务智能创建业务建议。

画布应用程序与模型驱动的应用程序之间的区别

模型驱动应用中的窗体可以使用业务规则中的所有可用操作,但目前并非所有业务规则操作都可用于画布应用。 以下操作在画布应用上提供:

  • 显示或隐藏列
  • 启用或禁用列
  • 根据业务智能创建业务建议。

具有业务规则的列类型支持

业务规则适用于大多数列类型,包括文本、数字、选择、日期、查找、负责人和图像。 但是,业务规则不适用于以下列类型:

  • 选择(多选)
  • 文件
  • 语言

创建业务规则

  1. 登录 Power Apps,然后在左侧导航窗格中选择。 如果项目不在侧面板窗格中,请选择 …更多,然后选择所需项目。

  2. 打开要为其创建业务规则的表(如客户表),然后选择业务规则选项卡。

  3. 选择添加业务规则

    将打开“业务规则”设计器窗口,其中包含一个已经为您创建的条件。 每个规则都从条件开始。 业务规则根据该条件执行一个或多个操作。

    小费

    如果要修改现有业务规则,必须先将其停用,然后才能修改。

  4. 如果需要,在窗口左上角的说明框中添加说明。

  5. 根据需要信息设置范围:

    如果选择此项... 范围将设置为...
    实体 模型驱动应用窗体和服务器
    所有窗体 模型驱动应用窗体
    指定窗体(例如,客户窗体) 仅该模型驱动应用窗体

    小费

    如果您生成画布应用,您必须使用表作为范围。

  6. 添加条件。 若要向业务规则添加更多条件:

    1. 条件组件从组件选项卡拖到设计器中的加号。

      在业务规则中添加条件。

    2. 若要设置条件的属性,请选择设计器窗口中的条件组件,然后在屏幕右侧的属性选项卡中设置属性。 设置属性时,Microsoft Dataverse 在属性选项卡底部创建一个表达式。

    3. 若要向条件添加更多子句(如 AND 或 OR),请选择属性选项卡中的新建创建新规则,然后为该规则设置属性。 在规则逻辑列中,可以指定将新规则添加为 AND 还是 OR。

      为条件添加新规则。

    4. 为条件设置完属性之后,请选择应用

  7. 添加操作。 若要添加操作:

    1. 将一个操作组件从组件选项卡拖到条件组件旁边的加号。 如果希望满足添加时业务规则采取操作,请将该操作拖到复选标记旁边的加号,如果希望不满足条件时业务规则采取操作,请拖到 x 旁边的加号。

      将操作拖放到业务规则。

    2. 若要设置操作的属性,请选择设计器窗口中的操作组件,然后在属性选项卡中设置属性。

    3. 设置完属性之后,请选择应用

  8. 添加业务建议(仅限模型驱动应用)。 若要添加业务建议:

    1. 建议组件从组件选项卡拖到条件组件旁边的加号。 如果希望满足添加时业务规则采取操作,请将建议组件拖到复选标记旁边的加号,如果希望不满足条件时业务规则采取操作,请拖到 x 旁边的加号。

    2. 若要设置建议的属性,请选择设计器窗口中的建议组件,然后在属性选项卡中设置属性。

    3. 若要向建议添加更多操作,请从组件选项卡拖动,然后在属性选项卡中为每个操作设置属性。

      备注

      创建建议时,Dataverse 默认添加单个操作。 若要查看某个建议中的所有操作,请选择建议组件中的详细信息

    4. 设置完属性之后,请选择应用

  9. 若要验证业务规则,请选择操作栏中的验证

  10. 若要保存业务规则,请选择操作栏中的保存

  11. 若要激活业务规则,请在“解决方案资源管理器”窗口中将其选中,然后选择激活。 不能从设计器窗口激活业务规则。

    小费

    在设计器窗口中处理业务规则时,请记住下面的一些技巧:

    • 若要抓取业务规则窗口中所有内容的屏幕截图,请选择操作栏中的屏幕截图。 这非常有用,例如,如果要共享和获取团队成员有关业务规则的注释。
    • 使用迷你地图快速导航到流程的其他部分。 您有超出屏幕的复杂流程时,这非常有用。
    • 向业务规则添加条件、操作和业务建议时,Dataverse 在设计器窗口底部为业务规则构建代码。 此代码是只读的。

示例:为超过 30 天的任务创建业务规则

此业务规则示例创建一个条件,当任务超过 30 天时触发任务说明字段中的消息。

  1. 登录 Power Apps,然后在左侧导航窗格中选择。 如果项目不在侧面板窗格中,请选择 …更多,然后选择所需项目。
  2. 打开任务表,然后选择业务规则区域。
  3. 选择添加业务规则
  4. 在业务流程流画布上选择新建条件,然后输入或选择以下属性:
    • Display name任务超过 30 天
    • Entity任务
    • Rule 1
      • Source实体
      • Field创建时间
      • 运算符+
      • Type
      • Days30
    • Condition Expression(自动创建):(创建时间大于 [创建时间 + 30])
  5. 选择应用
  6. 选择添加>添加显示错误消息
  7. 显示错误消息属性选项卡中,输入以下属性:
    • Display Name任务超过 30 天
    • Entity任务
    • 错误消息
      • Field说明
      • Message这个任务超过 30 天!
  8. 选择应用
  9. 选择保存

本地化业务规则中使用的错误消息

如果为组织配置了多种语言,则需要将设置的错误消息本地化。 每次设置消息时,系统会生成一个标签。 如果您导出组织中的翻译,就可以添加消息的本地化版本,然后将这些标签重新导入到 Dataverse 中,从而使使用非基本语言的用户可以查看经过翻译的消息。

常见问题

本部分介绍了在使用业务规则时可能出现的常见问题。

统一接口应用程序不支持复合属性

使用复合属性的操作或条件在基于统一接口的应用程序中不受支持。 也可以对构成复合属性的属性使用操作或条件。 例如,不使用全名 (fullname) 属性,而是使用 (firstname) 和 (lastname) 属性。

单个表上的大量业务规则会影响性能

表上的新业务规则或现有业务规则在激活规则时可能会导致性能下降。 Power Platform 现在对于单个表最多支持 150 个业务规则。 超过 150 个业务规则后,性能可能会下降。 此限制包括客户端 (JavaScript) 和服务器端(作为同步插件生成的 XAML)业务规则。 为了避免 Dataverse 出现性能问题,我们建议您不要为单个表创建超过 150 个业务规则。

窗体的业务规则是否未触发?

由于窗体中不包含业务规则内应用的字段,所以可能不执行业务规则。

  1. 打开解决方案资源管理器。 展开所需实体,然后选择窗体

  2. 打开所需窗体,然后在窗体设计器功能区上选择业务规则

  3. 在窗体设计器中,打开业务规则。

  4. 在业务规则设计器中,选择每个条件和操作以验证每个条件和操作中引用的所有字段。

    实体中存在业务规则内引用的字段。

  5. 验证窗体中是否也包含业务规则内引用的每个字段。 如果不包含,则将缺少的字段添加到窗体。

    窗体中的客户名称字段。

DateOnly 列的 UTC 时区

当您使用 DateOnly 列配置业务规则时,默认情况下,无论用户设置的时区如何,日期都采用 UTC 时区。 如果您希望 DateOnly 值与本地时间设置一致,这可能会导致意外的结果。

建议的处理:独立于时区的设置 - 要使 DateOnly 列独立于时区,并按照业务规则(例如 UTC)中的配置显示日期,您可以启用独立于时区的设置。 有关配置日期处理设置的更多信息,请访问指定日期和时间列的行为

常见问题 (FAQ)

业务规则能否解锁只读窗体上的字段?

  • 可以,业务规则可以解锁只读窗体上的字段,并可以编辑只读窗体上的操作。

如何排查不工作的业务规则的问题?

业务规则是否响应 onLoad 脚本进行的更改?

  • 否,它们会在 onload 脚本执行之前执行。

当我更新业务规则时,它是否针对所有现有记录执行?

  • 否。 业务规则在客户端上运行。 例如,它们在用户打开窗体以及该打开窗体上的字段值更改时运行。 它们不在 Dataverse 内执行。

另请参见

在 Microsoft Dataverse 中应用业务逻辑