Dataverse 触发器

已完成

使用 Power Automate,您可以构建包含触发器和多个操作的自动化云工作流。 触发器是指启动云端流的一个事件。 Dataverse 连接器支持四个触发器,允许基于 Dataverse 数据事件启动流。

Dataverse 连接器上的触发器如下:

  • 添加、修改或删除行时 - 使用本触发器以在 Dataverse 表中添加、修改或删除行时启动流。 例如,向项目表添加新行时,系统应运行一个流。

  • 执行操作时 - 当 Dataverse 操作完成时触发本触发器。 因此,系统会触发您定义的自定义业务事件的流。 例如,您可以创建一个 EmployeeOnboarded 事件,然后使用它来触发流。

  • 在业务流程流中运行流步骤时 - 借助本触发器,您可以在有人在单击业务流程流步骤中选择运行流按钮时启动流。 例如,在使用业务流程流的 Microsoft Power Apps 模型驱动应用中,您可以创建一个步骤来启动流以获得经理的审批。

  • 选择行时 - 当 Power Apps 模型驱动应用中的用户选择一行并运行流时,本触发器将启动流。

每个触发器中都包含您需要设置的不同选项。 某些触发器提供高级选项,可以对触发器的行为提供额外控制。 本主题的其余部分重点介绍了您可以设置的一些常见选项。

添加、修改或删除行时

要使用添加、修改或删除行时触发器,您需要在触发器上设置更改类型、表和范围选项。 所有其他配置为可选项。

更改类型

使用更改类型触发器设置想要触发流的一个或多个数据行事件。 例如,您可以选择在添加、修改或删除行或组合执行这些操作时运行流。 这些数据行事件会在 Dataverse 环境中发生行更改后触发流。

如果添加或修改更改类型,则当前的 Dataverse 表格行可作为输出,供您在动态内容区域的后续步骤中使用。 如果要删除更改类型,则仅可使用 Dataverse 行的行 ID。

如果要在多个更改类型上触发流,而且需要基于类型的条件逻辑,则可以使用以下表达式获取触发流的更改类型。 SdkMessage 属性包含创建、更新或删除。

triggerBody()?['SdkMessage'] 

如果对一行完成多次更新,则即使行列值未发生任何更改,您的流也可能会在每次更新时触发。 出现这种情况的原因是您多次更新了该行。 流中的逻辑必须考虑这个因素。

表名

您可以从完整列表中选择表名,也可以通过键入表名来筛选列表。 表名不按字母顺序显示,因此在包含大量表的环境中使用筛选器会很有帮助。

范围

您必须在创建 Dataverse 表时指定行所有权的类型。 行可以归组织所有,也可以归用户或团队所有。

您可以使用范围选项根据正在修改的行归谁所有来指定哪些行有资格触发流。 如果表行所有权归组织,则范围的唯一选项是组织。 对于支持用户或团队所有权的表,您可以选择以下任一范围选项:

  • 组织 - 这是默认选项。 任何拥有并修改行的用户都可以触发您的流。 此外,任何修改组织拥有的表的用户都可以触发您的流。

  • 用户 - 此选项限制最大;仅在修改后的行归您所有时,您的流才会运行。

  • 业务单位 - 如果修改后的行归您的业务单位中的任何用户所有,此选项将触发您的流。 例如,假设您所在的营销业务单位中包含 16 个用户。 每当这 16 个用户中的任何一个完成操作时,如果修改后的行归业务单位中的任何其他用户所有,他们就可以触发您的流。

  • 上:下级业务部门 - 此选项包括所有下级业务部门用户,用于确定哪些操作可以触发您的流。 因此,如果营销业务单位中包含营销 - 美国和营销 - 欧洲、中东和非洲两个下级业务单位,包括这些用户的系统会确定您的流是否应当运行。

组织和用户是最常见的配置。 如果要为所有用户创建流,则组织范围是最佳选择。 如果要创建个人自动化并希望尽量减少其他用户输入的随机或不相关数据,则用户范围是最佳选择。

您可以将范围设置为包含多于自己有权读取的数据行,但您的流只会针对自己有权读取的行触发。

除所需选项外,触发器还提供以下高级选项以进行进一步修改:

  • 选择列

  • 筛选行

  • 延迟截止时间

  • 运行身份

选择列

仅当您将更改类型设置为包括已修改的行时,选择列选项才适用。 如果提供的表列列表包含在修改数据行中,您的流就会运行。

此选项是减少流运行的实用功能。 例如,如果只想在联系人表的名和姓列处于修改状态时运行流,则可以将选择列选项设置为:

firstname,lastname

如果您的流打算稍后使用更新行操作更新触发流的行上的列,则此功能也非常关键。 为避免无限循环,请不要将更新的列包含在选择列选项中。

筛选行

使用筛选行选项可根据行列的值筛选触发流的行。 例如,您可以筛选“项目”表行,使结果中仅包含超出预算的行。 虽然向流操作添加条件检查可以完成相同任务,但其效率低于使用筛选行表达式。

您可以使用 OData 表达式指定筛选行。 仅当在 Dataverse 中保存更改后,系统评估表达式为 true 时,该流才会运行。

contoso_amountoverbudget gt 10000

本模块稍后将在查询数据主题中探索常见的 OData 表达式。

延迟截止时间

您可以使用延迟截止时间指定延迟触发器评估的特定时间。 通过使用 OData 样式的时间戳,可以将流触发器延迟到特定的 UTC 时间。

与标准延迟截止时间操作 相比,使用此选项的一个关键优势是此触发器的 Dataverse 延迟截止时间属性永不过期,允许流运行等待很长时间。

运行身份

通过使用运行身份选项,您可以设置流中要使用流所有者以外的用户上下文执行的所有 Dataverse 操作。 流所有者必须拥有代表其他用户执行操作 Dataverse 特权。 默认情况下,委托安全角色包含此特权,但您可以将其添加到任何安全角色。

您可以使用以下选项设置运行身份功能:

  • 流所有者 - 创建流的用户。

  • 行所有者 - 拥有触发流的 Dataverse 行的用户。 如果行归团队所有,则此选项会回退到以流所有者身份运行。

  • 修改用户 - 在 Dataverse 行上执行操作的用户,导致流触发或修改。

对于每个想要以其他用户身份运行的 Dataverse 操作,在设置选项卡上选择使用调用程序的连接

请考虑以下示例。 John 要创建一个流,将任务添加到新的项目表行。 如果 Mary 要创建新的项目行,流就会运行并且系统也会添加新任务。 之后,John 可以查看这些新添加的任务。

如果 John 将运行方式选项更改为修改用户,然后将任务的添加行功能更改为使用调用程序的连接,则任务行会将创建者显示为 Mary 而不是 John。