有时,需要将Common Data Service数据与存储在其他系统中的数据同步和集成。通用数据集成模式包括从外部系统获取数据并将其推送到公共数据服务,从公共数据服务获取数据并将其同步到某些外部数据存储,或使用外部数据更新公共数据服务。您现在可以使用多种新功能,以便更轻松地编写代码来实现这些方案。
在任何情况下,这些新功能都可以根据需要单独使用,但它们共同解决了与外部数据同步和集成数据相关的常见问题。下表介绍了这些新功能。
特征 | 描述 |
---|---|
删除专门的消息 | 公共数据服务具有许多用于更新记录的特定操作的专用消息。在此版本中不推荐使用这些消息,您现在应该只使用它Update 来执行相同的操作。不推荐使用的消息是:- 分配 - SetParentSystemUser - SetParentTeam - SetParentBusinessUnit - SetBusinessEquipment - SetBusinessUnit - SetState 简单地更新记录比使用这些消息简单得多,并且应该简化数据集成和同步方案的开发。更多信息:使用Update执行专门操作 |
备用密钥 | 在公共数据服务的企业部署中,将来自外部企业系统的数据加载到公共数据服务中以便将其呈现给用户是很常见的。这些外部系统通常无法扩展以存储系统同步所需的公共数据服务记录标识符(称为GUID)。常见的解决方案是将自定义属性添加到公共数据服务中的实体,该实体可用于在外部系统中存储相关记录的标识符。 当您构建更新公共数据服务中的记录并为公共数据服务中的相关记录分配引用的数据加载过程时,首先必须进行额外的公共数据服务Web服务调用,以基于此外部标识符检索目标公共数据服务记录。如果自定义属性没有适当的索引,则此查找可能会很慢,而在通用数据服务方案中,每次查找都需要在Internet上进行昂贵的往返。这些额外的往返行程可以将更新每个公共数据服务记录所需的时间增加一个数量级,并且可以大幅降低总体吞吐量。 现在,Web服务操作可以使用一个或多个备用密钥而不是GUID来定位公共数据服务记录。此外,可以使用一个或多个备用密钥指定对相关记录的实体引用。由于备用密钥已编制索引,因此与将自定义属性添加为标识符相比,查找操作显示出更高的性能。如果出现问题,系统将抛出错误并回滚所有更改。更多信息:定义实体的备用密钥 |
更改跟踪 | 当组织需要在外部存储中维护公共数据服务数据时,现在有一种方法可以通过检测自数据最初提取或上次同步以来已更改的数据,以高效的方式保持数据同步。该RetrieveEntityChangesRequest消息被用于检索实体的变化。有关详细信息,请参阅使用更改跟踪与外部系统同步数据。 |
UPSERT | 从外部系统将数据加载到公共数据服务时,您可能不知道公共数据服务中是否已存在记录并且是否应该更新,或者您是否必须创建新记录。使用新的UpsertRequest消息更新记录(如果存在),或者在一次API调用中创建新记录(如果不存在)。更多信息:使用Upsert使用外部数据更新Dynamics 365 |
下表比较了使用和不使用这些新功能同步的复杂性。
之前 | 描述 |
---|---|
对于每条记录: 1。查询公共数据服务以查看该帐户是否存在。如果存在,请获取其帐户ID(例如,ABC123) 2。查询联系人以验证联系人是否存在。如果存在,请获取联系人的电子邮件ID(例如,contact @ company.com)。 3.查询以获取或设置区域ID(例如,NW)。 4.查询以获取用户ID以设置所有者(例如,user @ mycompany.com) 5。更新帐户。 6.通过调用 SetState API 设置帐户的状态。7.通过调用 Assign API 分配所有者。 |
现在,使用新功能,只需要一次调用服务器即可执行与前面所示相同的操作。
后 | 描述 |
---|---|
只需拨打一次电话以验证是否存在具有唯一ID ABC123的帐户,请将主要联系人设置为contact@company.com,将该地区设置为NW,将所有者设置为user@mycompany.com并将状态设置为活动状态。 |
原文网址:https://docs.microsoft.com/zh-cn/powerapps/developer/common-data-service/data-synchronization