這是我的問題: 我想要做的就是使用web服務更新Crm 4中的「聯繫人」實體。CrmService.Update方法不適用於某些屬性
這是我的代碼:
CrmService eatupCrmService = CrmInteraction.InitializeCrmService();
contact updatedDelegate = new contact();
CeatupCrmService.Key contactPrimaryKey = new CeatupCrmService.Key();
contactPrimaryKey.Value = delegateId;
updatedDelegate.contactid = contactPrimaryKey;
updatedDelegate.address2_postalcode = delegateDetails.ContactDetailsPhysicalAddressCode;
eatupCrmService.Update(updatedDelegate);
我用InitializeCrmService()
也檢索和它的作品。 當更新address2_postalcode
屬性,我得到以下錯誤:
"Server was unable to process request."
與異常詳細信息\的innerText:
"0x80040216 An unexpected error occurred. Platform".
如果我更改代碼更新另一個屬性,說我嘗試更新mobilephone
屬性 而不是address2_postalcode
它的工作原理沒有任何異常拋出。
只要我嘗試更新address2_postalcode
那麼我就會得到那個錯誤。 Crm中的address2_postalcode
數據類型爲nvarchar
,並且它正在分配的值(delegateDetails.ContactDetailsPhysicalAddressCode
)屬於c#的string
類型。
任何人都知道爲什麼會發生這種情況?
感謝您的答覆。我已經嘗試在更新其「address2_postalcode」屬性之前獲取聯繫人實體,並且我不幸遇到了同樣的錯誤。我做了一個RetrieveMultiple請求來獲取聯繫人(作爲一個動態實體),它也沒有工作。 – Matei
呃......你可以嘗試啓動SQL Profiler來查看當你執行操作時到底發生了什麼。我不能想到其他任何東西...... –
我運行了SQL Profiler,並且在更新SQL語句中找不到字段(address2_postalcode)。如果我嘗試使用「mobilephone」屬性,那麼我可以在profiler中看到它。也許這是某種與Crm web服務有關的序列化問題,我不知道......昨晚嘗試了不同的解決方法,直到23:00,仍然無法正確解決問題。我想可能使用舊的Web服務(「http://crmserver/mscrmservices/2006/CrmServiceWsdl.aspx」),並嘗試以舊的方式更新它:( – Matei