2011-05-31 48 views
1

我有一個每天運行的應用程序,可以將合同更新從外部源發送到CRM。我使用的過程是:CRM 4.0 Web Services是否強制更新所有實體字段,即使它們沒有更改

  1. 通過SQL查詢從CRM下載所有現有實體。
  2. 所有填充
  3. 值的創建一個合適的CRM實體對象查找外部源相應的條目,並更新變化的領域
  4. 如果任何字段被標記爲被改變了,那麼更新實體回到CRM。

我的問題是:即使值沒有改變,CRM中所有的字段都已更新嗎?還是CRM智能足以只更新具有不同值的字段?

感謝

回答

2

在幕後,我相信微軟CRM是使用SQL更新所有從屬性包是不是空的屬性。您也可以打開選項來覆蓋空值。

這聽起來像一個典型的三角洲過程。我會什麼,我相信是去了解它的兩個最好的方式,我已經看到了微軟CRM給出建議 -

  1. (最有效的)如果您可以連接一些觸發器/插件的外部源將更改實時傳播到包含更改類型(插入/更新/刪除)的臨時數據庫,然後每晚進行一次同步(處理該表(標記具有狀態的受影響記錄)並將每行推入CRM中)。在完成向CRM推送更改後,它可以從暫存數據庫中刪除已標記爲已處理的所有增量行。

  2. (如果實時推送不可用)如果源系統是所有數據的記錄系統,則需要從Microsoft CRM中讀取所有值(可以直接執行此操作,或者將它們加載到臨時數據庫中以節省CRM的負擔)。當你讀取數據時,你應該在記錄上有一個ID來跟蹤它們返回到源數據。將每個值與源數據庫進行比較時,將差異寫入差異類型(插入/更新/刪除)的登臺表中。一旦建立了Delta Staging數據庫,就可以按照與第1部分相同的方式將所有這些記錄處理爲CRM。

相關問題