簡體   English   中英

在Dynamics 365 XRM Tooling SDK中查詢已刪除的實體

[英]Query for deleted entities in Dynamics 365 XRM Tooling SDK

我正在編寫一個通用集成,需要使用Dynamics 365 for Customer Engagement中的數據庫作為記錄系統。 我將不時地對其進行輪詢,以便在其他輔助系統中保持數據最新。 當然,我可以通過檢查“modifiedon”屬性來更改記錄。 我可以建立一個查詢,說“給我自上次詢問以來已經改變的所有記錄”。 但是,自上次詢問以來,能夠知道哪些記錄已被刪除也是最佳的。 我與Salesforce有類似的集成,這對於SalesForce API來說是微不足道的,但我看不到如何使用Dynamics 365 API。

似乎對我來說唯一的選擇可能是在我的集成中保留所有記錄主鍵的列表,並在每個輪詢上下載CRM中存在的所有記錄,然后根據他們的缺席自行找出刪除的記錄。 但這非常難看且效率低下。

任何想法或建議?

MS為此目的引入了變更跟蹤

Dynamics 365客戶參與客戶參與中的更改跟蹤功能提供了一種通過檢測自數據最初提取或上次同步以來已更改的數據來以高效方式保持數據同步的方法。

以下示例web api請求

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"
        }
    ]
}

示例:使用更改跟蹤與外部系統同步數據

我想為這個問題做出貢獻,這個問題給了我很好的建議。 雖然官方Dynamics文檔中沒有詳細記錄,也未提及解釋更改跟蹤的位置,但Soap API中也提供了這一強大功能:

我希望這可以幫助別人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM