2013-12-22 53 views
1

我一直在研究如何從MS Dynamics CRM 2011/3在線實例中提取數據,以便我可以在目標數據庫中複製整個CRM實體。從MS Dynamics CRM提取數據時如何獲得快照一致性?

我看了組織Web服務的RetrieveAll RetrieveAll操作。這些能夠從單個CRM實體(實體類型)提取數據。

另外還有FetchXML接口,可以使用一個複雜的查詢,從多個實體中檢索數據。

當沒有用戶或通過Web服務進行數據更改時,我可能會用不安靜的時間從數據中提取數據,以獲取數據的一致快照。

如果我能夠訪問SQL Server數據庫直接我就能夠設置事務隔離級別和事務中提取所有數據,並得到一致的數據視圖。

我覺得FetchXML會給我一個一致的快照,但只能通過每次調用它查詢的數據。

我可以使用FetchXML查詢所有我想複製,在一個單一的呼叫,然後renormalise數據,具有一定的ETL代碼,我的目標數據庫的實體。該查詢雖然不好(複雜且可能性不高,並影響系統性能)。

所以,基本上我的問題是這樣的:如果我依次從各實體提取,並且數據庫正在改變,而我解壓,我非常希望得到不一致的數據,我的目標數據庫中設置。

如何獲得一致的數據快照以訪問?

回答

1

您可以通過支持門戶與支持部門聯繫並請求數據庫備份。然後,您可以通過Deployment Manager將該數據庫恢復到您的本地安裝。

編輯

下面您的意見後,我提出一個「推」的模式,而不是「拉」模式。您需要在您對CRM Online感興趣的所有實體上創建創建/更新/刪除插件。這些插件會將這些更新推送到您的數據庫(可能通過您自己的Web服務)。由於這些插件在事務內部發生,如果您的Web服務引發錯誤,您可以取消CRM中的源操作,從而保證事務一致性。

一旦你得到這些插件運行起來,你可以做一個一次性的出口和你的插件將保持最新從那裏。

+0

雖然我想每天運行extrat進程。外部流程真的沒有辦法讓CRM數據庫的一致快照從中讀取嗎? –

+0

@ user976212您正在描述像Scribe這樣的公司如何保持在線crm數據庫的在線副本同步。如果訂閱第三方服務不是一種選擇,您將不得不復制它們的功能(這可能但更容易購買) – keerz

+0

我沒有描述保持同步的副本。我正在描述一個讀取一致的CRM數據快照。複製工具(至少RSSBus,我試圖找出Scribe)似乎並沒有提供一致的數據,因爲它們依次從每個實體中提取數據,並且如果CRM數據庫正在更改,您將獲得不一致的數據視圖在目標數據庫中。 RSSBus正在爲我着想。看起來很瘋狂,在CRM Online中這是不可能的。 –