09.08.2011, 13:13 | #1 |
Участник
|
CRM 4.0. Плагин. Как получить пользователя по его Должности?
Вчера решал следующую задачу: при изменении поля Сегмент (типа выпадающий список) в Интересе необходимо его, интерес, назначить пользователю с должностью Главный менеджер (пользователь с такой должностью в системе 1, если их несколько, то берётся первый).
Написал плагин, который вызывается при изменении поля Сегмент. Вот часть его кода: Код: public void Execute(IPluginExecutionContext context) { if(!context.InputParameters.Properties.Contains("Target")) return; if (context.InputParameters.Properties["Target"] is DynamicEntity) {} else return; // Получаем сущность, для которой сработал плагин DynamicEntity entity = (DynamicEntity)context.InputParameters.Properties["Target"]; // Проверяем, что бы сущность была Интересом или Возможной сделкой if ((entity.Name != EntityName.lead.ToString()) && (entity.Name != EntityName.opportunity.ToString())) return; Picklist Anketa = (Picklist)entity.Properties["new_segment"]; Key leadID = (Key)entity.Properties["leadid"]; ICrmService CrmService = context.CreateCrmService(true); IMetadataService CrmMetadata = context.CreateMetadataService(true); ConditionExpression CD = new ConditionExpression(); CD.AttributeName = "title"; CD.Operator = ConditionOperator.Equal; CD.Values = new string[] { "Главный менеджер" }; FilterExpression FE = new FilterExpression(); FE.FilterOperator = LogicalOperator.And; FE.Conditions.Add(CD);// = new ConditionExpression[] {CD}; QueryExpression query = new QueryExpression("systemuser"); query.ColumnSet = new AllColumns(); query.Criteria = FE; RetrieveMultipleRequest RMReq = new RetrieveMultipleRequest(); RMReq.Query = query; RMReq.ReturnDynamicEntities = true; RetrieveMultipleResponse RMRes = (RetrieveMultipleResponse)CrmService.Execute(RMReq); string FN=""; foreach (DynamicEntity BEC in RMRes.BusinessEntityCollection.BusinessEntities) { FN += (BEC.Name +"="+BEC.Properties["fullname"]+ "\n"); } throw new InvalidPluginExecutionException(FN); Спасибо. |
|
|
|