사용자가 crm에서 작업 상태를 설정하면 인시던트와 관련된 모든 작업을 확인하도록 플러그인을 만들고 있습니다. 작업이 열리지 않으면 사건을 닫아야합니다.CRM 2011 PLUGIN - PostTaskSetState
프로필을 사용하여 플러그인을 디버깅 할 때 제대로 작동하지만 아무 일도 일어나지 않습니다.
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);
}
}
}
누군가 나를 도울 수 있습니까? 감사합니다. .
디버거를 연결하면 올바르게 작동합니다. – Daryl
네, 잘 작동합니다. –
추적 로그에 오류가 있습니까? 어쩌면 디버거에서 디버깅하려면 다른 사용자로 실행 중입니까? – Daryl