I create a plugin when the user sets the task status in crm, checks all tasks related to the incident. If there are no assignments, the incident should be closed.
When I use a profile to debug a plugin, it works fine, but otherwise nothing happens.
IPluginExecutionContext context = localContext.PluginExecutionContext; IOrganizationService service = localContext.OrganizationService; EntityReference entity = (EntityReference)context.InputParameters["EntityMoniker"]; ColumnSet cols = new ColumnSet(); cols.AllColumns = true; Entity entityComplete = service.Retrieve("task", entity.Id, cols); if (((OptionSetValue)entityComplete.Attributes["statecode"]).Value == 0) //se o status for cancelado ou concluΓdo { if (entityComplete.Attributes.Keys.Contains("regardingobjectid") && ((EntityReference)entityComplete.Attributes["regardingobjectid"]).LogicalName == "incident") { QueryExpression query = new QueryExpression(); query.EntityName = "task"; query.ColumnSet = cols; query.LinkEntities.Add(new LinkEntity("task", "incident", "regardingobjectid", "incidentid", JoinOperator.Inner)); query.Criteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, 0)); query.Criteria.AddCondition(new ConditionExpression("activityid", ConditionOperator.NotEqual, entityComplete.Id)); query.Criteria.AddCondition(new ConditionExpression("regardingobjectid", ConditionOperator.Equal, ((EntityReference)entityComplete.Attributes["regardingobjectid"]).Id)); EntityCollection collection = service.RetrieveMultiple(query); if (collection.Entities.Count == 0) { Entity incident = service.Retrieve("incident", ((EntityReference)entityComplete.Attributes["regardingobjectid"]).Id, cols); SetStateRequest setState = new SetStateRequest(); setState.EntityMoniker = new EntityReference(); setState.EntityMoniker.Id = incident.Id; setState.EntityMoniker.LogicalName = incident.LogicalName; setState.State = new OptionSetValue(1); SetStateResponse setStateResponse = (SetStateResponse)service.Execute(setState); } } }
Can anybody help me? Thanks.
source share