【问题标题】:Query for deleted entities in Dynamics 365 XRM Tooling SDK在 Dynamics 365 XRM Tooling SDK 中查询已删除的实体
【发布时间】:2019-06-03 11:16:22
【问题描述】:

我正在编写一个通用集成,它需要使用 Dynamics 365 for Customer Engagement 中的数据库作为记录系统。我将不时对其进行轮询,以使其他辅助系统中的数据保持最新。当然,通过检查“modifiedon”属性,我可以知道记录何时更改。我可以构建一个查询,说“给我自从我上次询问以来发生变化的所有记录”。但是,最好能够知道自从我上次询问以来哪些记录已被删除。我与 Salesforce 进行了类似的集成,这对 SalesForce API 来说是微不足道的,但我不知道如何使用 Dynamics 365 API。

看来,对我来说唯一的选择可能是在我的集成中保留所有记录主键的列表,并在每次轮询时下载 CRM 中存在的所有记录,然后我自己找出删除的那些不存在的记录.不过,这很丑陋且效率低下。

有什么想法或建议吗?

【问题讨论】:

  • 当您说实体时,您的意思是记录,对吗? CRM 中没有软删除,总是硬删除。
  • 我的意思是“记录”而不是“实体”。对了谢谢。将更新原始问题。

标签: dynamics-crm dynamics-365 dynamics-crm-365 dynamics-crm-webapi xrmtoolbox


【解决方案1】:

MS 为此引入了change tracking

Dynamics 365 for Customer Engagement Customer Engagement 中的更改跟踪功能提供了一种方法,通过检测自最初提取或上次同步数据以来发生了哪些数据更改,从而以高性能方式保持数据同步。

下面的sample web api request

GET [Organization URI]/org1/api/data/v9.0/accounts?$select=name,accountnumber,telephone1,fax HTTP/1.1
Prefer: odata.track-changes

响应将具有带有 delta 令牌的 delta 链接:

"@odata.deltaLink": "[Organization URI]/api/data/v9.0/accounts?$select=name,accountnumber,telephone1,fax&$deltatoken=919042%2108%2f22%2f2017%2008%3a10%3a44"

当您使用上述 URI 时,您可以获得包括已删除条目在内的更改。

{
          "@odata.context":"[Organization URI]/data/v9.0/$metadata#accounts(name,telephone1,fax)/$delta",
          "@odata.deltaLink":"[Organization URI]/api/data/v9.0/accounts?$select=name,telephone1,fax&$deltatoken=919058%2108%2f22%2f2017%2008%3a21%3a20",
"value":
    [
        {
            "@odata.etag":"W/\"915244\"",
            "name":"Monte Orton",
            "telephone1":"555000",
            "fax":"10101",
            "accountid":"60c4e274-0d87-e711-80e5-00155db19e6d"
        },
        {
            "@odata.context":"[Organization URI]/api/data/v9.0/$metadata#accounts/$deletedEntity",
            "id":"2e451703-c686-e711-80e5-00155db19e6d",
            "reason":"deleted"
        }
    ]
}

Sample: Synchronize data with external systems using change tracking

【讨论】:

    【解决方案2】:

    我想为这个问题做出贡献,它为我的方向提供了极好的建议。 尽管官方 Dynamics 文档中的文档记录很差,并且没有提及更改跟踪的解释,但 Soap API 中也提供了这个强大的功能:

    我希望这对某人有所帮助。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2017-02-22
    • 1970-01-01
    相关资源
    最近更新 更多