AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.08.2011, 13:13   #1  
ShadowXXX is offline
ShadowXXX
Участник
 
11 / 11 (1) +
Регистрация: 01.09.2006
? 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);
Собственно вопросы: корректно ли осуществляю поиск пользователя? Каким ещё способом можно было решить задачу поиска? Какие методы произвольного поиска по сущностям можно использовать в плагинах?

Спасибо.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM DE LA CREME! CRM 4.0 Disaster Recovery Blog bot Dynamics CRM: Blogs 2 26.02.2016 08:23
Microsoft Dynamics CRM Team Blog: Microsoft Dynamics CRM 2011 ~ Online Test Drive Guide Blog bot Dynamics CRM: Blogs 0 05.08.2011 20:13
Все о Microsoft Dynamics CRM: Как установить Microsoft Dynamics CRM 2011 Beta Blog bot Dynamics CRM: Blogs 0 31.10.2010 15:08
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
Microsoft Dynamics CRM Team Blog: List Web Part for Microsoft Dynamics CRM 4.0 Deployment Scenarios Blog bot Dynamics CRM: Blogs 0 30.01.2009 22:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:39.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.