CRM 2013在关闭消息期间更新事件字段

时间:2014-09-09 21:27:05

标签: c# dynamics-crm dynamics-crm-2013

我正在尝试在案例结束时更新特定字段。我将插件注册为关闭消息上的Pre Operation事件。我的注册活动如下。

base.RegisteredEvents.Add(new Tuple<int, string, string, Action<LocalPluginContext>>(20, "Close", "incident", new Action<LocalPluginContext>(ExecutePreCaseCloseFolder)));

并且,在Execute方法中,我有以下代码

Entity incidentResolution = (context.InputParameters != null && context.InputParameters.Contains("IncidentResolution")) ? (Entity)context.InputParameters["IncidentResolution"] : null;

Incident incident = (localContext.OrganizationService.Retrieve("incident", ((EntityReference)incidentResolution["incidentid"]).Id, new Microsoft.Xrm.Sdk.Query.ColumnSet(true))).ToEntity<Incident>();

string documentSetURL = CloseCase(incident);
incident.new_documentSetURL = documentSetURL;

但是,它没有更新该字段。当我关闭一个案例时,我的插件会被触发,我可以调试并看到更新的documentSetURL正在应用于incident.new_documentSetURL。

那么,为什么不更新。

如果我没有错,则预操作是在验证完成之后但在保存值之前。并且,我在保存之前更新了一个值。我的理解不正确吗?

1 个答案:

答案 0 :(得分:0)

关闭事件时,您无法更新事件。因此,您必须在创建IncidentResolution之前更新您的案例。

在您的插件中,您必须更新您检索到的案例:service.Update(incident);。通过这种方式,您可以确保在创建事件解决方案之前更新案例。

看看http://nickhollis.blogspot.pt/2013/04/crm-2011-plugin-to-update-case-incident.html