2012-08-31 32 views
1

我正在實施一種Web服務,它可以接收信息並需要將它們映射到MS Dynamics CRM上。如何根據文本或標籤在Microsoft CRM 2011中設置OptionSet值?

因此,當涉及到設置OptionSet值時,由於我不是實施CRM的人員,因此我不知道設置了哪些索引。我所知道的只是標籤。那些消耗我服務的人自然也是如此。例如我稱之爲機會溫暖或冷,而不是10033004和10033005.但我仍然需要在商機實體上設置此值。

我發現了this link - 但我認爲它確實是過度殺傷性的,如果這是我可以訪問OptionSet的唯一方法,那就太難過了。

回答

1

這裏有幾個選項。

  1. 使用元數據服務,例如,你的鏈接,我同意這有點矯枉過正,但你可以添加緩存來減少多個服務調用的開銷。如果你真的不知道運行時的價值是什麼,那麼這可能是最好的方法。
  2. 只要硬編碼它,如果你知道在編譯時什麼值將是那麼這可能是最快的選擇。我以前做過這件事,而且通常很好。然而,如果有人改變CRM,這顯然會中斷。
  3. 使用強類型類,這是有效的硬編碼,只是系統爲你做。但是,如果CRM更改,您將重新生成它們。

所以這些都不是我害怕的完美選擇,但他們都完成了工作。


編輯

重新:選項3;我的意思是這裏描述的早期實體:http://msdn.microsoft.com/en-us/library/gg328210.aspx。我不確定他們在這種情況下會有多大的幫助。它們是用來代替實體類的強類型類。例如。 contact.firstname而不是實體[「firstname」]。我想你可能能夠將它們用作元數據的一種形式 - 儘管我從未嘗試過。它也有與選項2相同的問題,當CRM更改時需要更新並編譯。

在這種情況下,我正在轉向選項1並查詢元數據服務,如果您這樣做一次並在處理開始時緩存結果,您將始終獲得最新的信息。此示例顯示如何獲取系統http://msdn.microsoft.com/en-us/library/jj603008中的所有元數據。

+0

謝謝。隨着超過200個實例的變化,選項2對我來說不是真正的切入點。此外,現在,我只能通過逆向工程找出實際值。請詳細說明選項3。你是指CRM實體嗎? – Deroude

+0

我已更新我的帖子檢查編輯 –

相關問題