
Hi there all experts.
I am brand new to write crm plugins, but I am trying to do my best.
I have written a plugin on preopration stage , on close message of incident.
I know I should get incident record from incident resolution record.
I can retrieve other fields of incident according to the below code, but I can not get onholdtime field( duration of being on-hold in minute )of incident.
Here is the code I retrieve and display createdon field.
IPluginExecutionContext context = (IPluginExecutionContext)
serviceProvider.GetService(typeof(IPluginExecutionContext));
// Get a reference to the Organization service.
IOrganizationServiceFactory servicefactory =
(IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = servicefactory.CreateOrganizationService(context.UserId);
DateTime actualEnd = DateTime.Now;
if (context.InputParameters.Contains("IncidentResolution"))
{
Entity incidentResolution = (Entity)context.InputParameters["IncidentResolution"];
Guid guid = ((EntityReference)incidentResolution.Attributes["incidentid"]).Id;
if (incidentResolution.Contains("actualend"))
{
actualEnd = (DateTime)incidentResolution.Attributes["actualend"];
}
Entity retrievedIncident = service.Retrieve("incident", guid, new ColumnSet("ms_resolvedatetime", "createdon", "onholdtime"));
DateTime createdOn = (DateTime) retrievedIncident.Attributes["createdon"];
// int onHoldInMinute = (int) retrievedIncident.Attributes["onholdtime"];
retrievedIncident.Attributes["ms_resolvedatetime"] = actualEnd;
throw new
InvalidPluginExecutionException(string.Format("createdon: {0}",
createdOn.ToString()));
It returns the createdon field value via throwing an exception.
But when I uncomment the line :
int onHoldInMinute = (int) retrievedIncident.Attributes["onholdtime"];
I give me this error, with meaning that there is no field with this key/name.
<Message>System.Collections.Generic.KeyNotFoundException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #2D66D0C6</Message>
This message is like the plugin can not find the onholdtime,
what is wrong?