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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.02.2009, 16:28   #11  
Bakai Madybaev is offline
Bakai Madybaev
Участник
 
201 / 16 (1) ++
Регистрация: 22.04.2008
Написал для этих целей следующую функцию:
X++:
public object getObjectsByCondition(string entityName, Dictionary<int, Condition> conditionList, string[] requestAttributeName)
        {
            ColumnSet cols = new ColumnSet();

            cols.Attributes = requestAttributeName;

            ConditionExpression[] condition = new ConditionExpression[conditionList.Count];
            FilterExpression filter = new FilterExpression();

            filter.FilterOperator = LogicalOperator.And;

            for (int i = 0; i < conditionList.Count; i++)
            {
                condition[i] = new ConditionExpression();
                condition[i].AttributeName = conditionList[i].name;
                condition[i].Operator = ConditionOperator.Like;
                condition[i].Values = conditionList[i].values;
            }

            filter.Conditions = condition;

            QueryExpression query = new QueryExpression();

            query.EntityName = entityName;
            query.ColumnSet = cols;
            query.Criteria = filter;

            RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();

            retrieve.Query = query;
            RetrieveMultipleResponse retrieved;
            try
            {
                retrieved = (RetrieveMultipleResponse)service.Execute(retrieve);
            }
            catch (SoapException ex)
            {
                throw new Exception(ex.Detail.InnerText.ToString());
            }
            return retrieved.BusinessEntityCollection;
        }
ИСпользование функции:
X++:
conditionList.Clear();
            conditionList.Add(0, new Condition("itb_itn", new string[] { node.SelectSingleNode("INN").InnerText }));
            conditionList.Add(1, new Condition("new_lead_type", new string[] { "2" }));
            conditionList.Add(2, new Condition("new_address1_country", new string[] { node.SelectSingleNode("Country").InnerText }));
            BusinessEntityCollection companyCollection = (BusinessEntityCollection)getObjectsByCondition(EntityName.lead.ToString(), conditionList, new string[] { "leadid" });
Класс для хранения набора условий для атрибутов:
X++:
            public Condition(string _name, string[] _values)
            {
                name = _name;
                values = _values;
            }
За это сообщение автора поблагодарили: Dissident (1), IgorF (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Имя объекта сущности по id sphinks Dynamics CRM: Разработка 3 05.03.2009 08:40
Создание нового объекта sanych_81 Dynamics CRM: Функционал 9 26.11.2008 17:12
Получение атрибута из другого объекта Казарин Александр Dynamics CRM: Разработка 6 20.10.2008 18:08
Получить id объекта вызвавшего PlugIn sergeyjb Dynamics CRM: Разработка 5 09.10.2008 14:17
Создание объекта сущности из другого объекта! SnSS Dynamics CRM: Разработка 5 29.05.2008 13:38

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:25.