2011-10-25 52 views
2

據我瞭解一個customeraddress,在Dyanimcs CRM帳戶實體連接兩個子customeraddress實體。在帳戶表單中,當您編輯地址信息並單擊保存時,我預計更新將在customeraddress實體上註冊。爲什麼不更新消息防火當我更新從帳戶屏幕

我工作的一個插件,這將有助於在我們的企業sychronize我們的地址,當編輯發生在CRM服務器上,它需要確保其傳播到我們的其他系統。

在寫一些診斷代碼,我寫了一個快速WCF服務器,讓我檢查的實體,因爲他們在執行存在。但是,只有當編輯使用實際的地址表單時,纔會觸發此插件,而不是在編輯帳戶表單時觸發。

public void Execute(IServiceProvider serviceProvider) 
    { 
     if (serviceProvider == null) 
     { 
      throw new ArgumentNullException("serviceProvider"); 
     } 

     // Construct the Local plug-in context. 
     ITracingService localcontext = (ITracingService)serviceProvider.GetService(typeof(ITracingService)); 
     localcontext.Trace(string.Format(CultureInfo.InvariantCulture, "Entered {0}.Execute()", "AuditAddressChange")); 

     IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); 

     var WCFDebug = ChannelFactory<IService1>.CreateChannel(new BasicHttpBinding(), 
      new EndpointAddress("http://localhost:8732/WcfDebug")); 

     try 
     { 
      Entity e = context.InputParameters["Target"] as Entity; 
      if (e != null) 
      { 
       foreach (var attribute in e.Attributes) 
       { 
        WCFDebug.WriteLine(string.Format("{0} ==> {1}", attribute.Key, attribute.Value.ToString())); 
       } 
      } 
     } 
     catch (FaultException<OrganizationServiceFault> e) 
     { 
      localcontext.Trace(string.Format(CultureInfo.InvariantCulture, "Exception: {0}", e.ToString())); 

      // Handle the exception. 
      throw; 
     } 
     finally 
     { 
      localcontext.Trace(string.Format(CultureInfo.InvariantCulture, "Exiting {0}.Execute()", "AuditAddressChange")); 
     } 
    } 

這個插件已註冊在customeradress更新後步驟觸發。

鑑於此插件的正確執行,當編輯從地址表發生,爲什麼沒有當編輯從帳戶形式發生了這起火災?

回答

4

這兩個地址的處理就像它們是帳戶記錄的一部分。內部地址1和地址2字段的數據存儲在兩個客戶地址記錄中。

在用戶的觀點和SDK他們的帳戶記錄的一部分。這就是爲什麼你的插件沒有被觸發。

爲了辦理帳戶中的地址變更(關於地址1和地址2字段),你必須處理的更新,消息帳戶。對於所有其他客戶記錄,您必須處理客戶地址的更新消息。

+0

謝謝。我很害怕這個。你碰巧有鏈接到這方面的文檔? –

+0

@fauxtrot sry。不是atm。給我一些時間,我會盡力爲你找到一些東西 – ccellar

+0

我找不到文件,但你的解釋是合理的。我要+1並標記爲答案。謝謝! –