據我瞭解一個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更新後步驟觸發。
鑑於此插件的正確執行,當編輯從地址表發生,爲什麼沒有當編輯從帳戶形式發生了這起火災?
謝謝。我很害怕這個。你碰巧有鏈接到這方面的文檔? –
@fauxtrot sry。不是atm。給我一些時間,我會盡力爲你找到一些東西 – ccellar
我找不到文件,但你的解釋是合理的。我要+1並標記爲答案。謝謝! –