我正在创建一个插件,当用户在crm中设置任务的状态时,验证与事件关联的所有任务.如果没有打开任务,则应该关闭事件.
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",((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); } } }
有人可以帮帮我吗?
谢谢.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。