使用 Power Platform 跨 Dataverse 环境同步数据

此参考体系结构演示如何在 Power Platform 中使用Power Automate和数据流在两个 Dataverse 环境之间同步主数据。 它演示了一对一同步模式,其中一个环境充当权威源,另一个环境接收数据。

Tip

本文提供了一个示例方案和通用示例体系结构,演示如何在一个 Dataverse 环境中维护主数据并同步到另一个环境。 可以针对许多不同的场景和行业修改体系结构示例。

体系结构示意图

使用 Power Automate 云端流和 Power Platform 数据流,将主数据从主要 Dataverse 环境同步到辅助 Dataverse 环境的示意图。

Workflow

以下步骤描述了示例体系结构图中显示的工作流:

  1. 通过 Power Automate 进行事件驱动的同步

    • 在主 Dataverse 环境中执行的 CRUD(创建、读取、更新、删除)操作会触发 Power Automate 流。

    • 事件驱动的同步使用两步流链:

      1. 云流将 HTTP POST 发送到已发布的终结点。
      2. 订阅者云端流由 Webhook 触发,处理有效负载,并在辅助 Dataverse 环境中准实时地应用更新。
    • 终结点已参数化,用于应用程序生命周期管理(ALM),安全组管理访问权限。

  2. 通过数据流批量同步

    • 辅助 Dataverse 环境包含数据流。

    • 每个数据流连接到主 Dataverse 环境作为其数据源。

    • 数据流按固定计划运行(例如,夜间或成功运行另一个数据流之后)或按需运行(例如,初始设置)。

    • Upsert 通过使用备用键执行,以避免出现重复。 此方法更新现有数据,并在不存在匹配项时插入新记录。

    • 状态字段通过专用的“同步状态”列进行管理。 Power Automate 流会相应地更新实际状态字段。 此流在数据流之后运行,并且是必需的,因为数据流无法更改行状态或删除主 Dataverse 环境中已删除(缺少)的记录。

  3. 错误处理和对帐

    • 辅助环境中的夜间数据流会更正任何缺少或失败的事件驱动更新。

    • 数据质量问题可能需要手动干预(例如缺少密钥)。

Components

  • Microsoft Dataverse:支持双环境要求。

  • Power Platform 的数据流:非常适合批量操作,例如初始数据填充和同步。 将批量提取、转换和加载 (ETL) 用于在辅助环境中配置的计划同步。

  • Power Automate云流:提供快速、针对特定记录的更新,并弥补数据流的局限性。 云流可以在另一个数据流成功完成时触发数据流(例如,当一个表包含指向另一个表的查找字段,并且引用的记录必须已存在于辅助 Dataverse 环境中时),在数据流失败时发送错误消息,更新记录状态,并删除记录。

  • 安全组和服务帐户:提供访问管理和所有权。

方案详细信息

该体系结构设计用于一对一关系:一个单一的主数据管理(MDM)环境连接到另一个单一的环境。 一个主环境必须与多个其他环境同步的方案需要更具可缩放性或分布式解决方案。

业务问题

此解决方案解决了在两个不同的 Dataverse 环境之间同步多个表的挑战。 主环境充当权威的数据源,而辅助环境包含必须填充和更新的现有主数据表。

当辅助系统的表已存在且需要行级别安全性时,使用虚拟表是不可行的。

示例用例

休闲酒店组织在专用 Dataverse 环境中管理其核心主数据,如酒店和房间库存。 主要环境包括一个模型驱动的应用程序,主数据管理团队专门使用它来维护准确且最新的操作信息。

同一组织中的一个单独的部门负责多个财务和和解过程。 为了简化这些流程,该部门希望在独立的 Dataverse 环境中构建自己的模型驱动应用。 但是,其应用程序仍需要访问基础主数据,例如酒店和房间详细信息。

团队拒绝了虚拟表,因为财务团队需要使用严格的行级别安全性管理的部门特定属性来扩充记录。

将财务应用嵌入主 MDM 环境中也不是一个选项。 允许财务创建者或管理员进入 MDM 环境会公开连接器、解决方案、API 权限和敏感数据,这些数据必须仅限于 MDM 开发团队。

这些要求导致组织采用本文中所述的同步体系结构。

创造的价值

当虚拟表不是选项时,此体系结构提供了一个可靠的可维护解决方案,用于在两个 Dataverse 环境之间同步主数据。 直接填充和更新辅助环境中的现有表可确保数据一致性和操作可靠性。

该方法仅使用 Power Platform 组件(如数据流和Power Automate),因此解决方案易于部署、易于管理并避免不必要的复杂性。

由于体系结构是为一对一环境关系定制的,因此可最大程度地减少开销并最大程度地提高透明度。 它非常适合需要简单可靠的主数据同步且无需大规模多环境管理的组织。

Considerations

这些注意事项实现了架构良好的 Power Platform 支柱,这是一组可提高工作负荷质量的指导原则。 有关详细信息,请参阅Microsoft Power Platform 架构最佳实践

Reliability

  • 夜间数据流可确保一致性。

  • 事件驱动的流提供快速更新。

  • 手动监视可检测数据质量问题。

安全性

  • 用于访问控制的服务帐户和安全组。 使用数据流时,不能将服务主体分配为所有者。

  • 用于 ALM 兼容性的参数化 HTTP 终结点。

  • 独立解决方案中的数据流,避免不必要的手动工作。 在专用解决方案中隔离数据流有一个特定原因:在每个部署后,必须手动重新建立数据流连接。 通过将数据流放置在仅在更改数据流时部署的单独解决方案中,可以在部署主解决方案的其他组件时避免不必要的手动工作。

卓越运营

  • 数据流的自动计划和编排。

  • 监控并发出警报以处理同步失败的情况。

性能效率

  • 针对批量操作优化的数据流。

  • 事件驱动的Power Automate流将关键、记录级更新的延迟降到最低。 设计事件驱动流时,请确保操作量和并发性保持在 Power Automate 服务的限制范围内。 高频率 CRUD 活动可能会触发限制,尤其是在流每天执行数以万计操作的情况下。 对于业务关键型或高吞吐量集成,请应用适当的Power Automate许可来提高吞吐量限制,避免意外限流。 此方法可降低升级风险,并确保可预测的性能。

体验优化

  • 需要最少的手动干预。

  • 明确分隔批量同步和事件驱动的同步。

供稿人

Microsoft维护本文。 以下贡献者撰写了本文。

主要作者: