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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.12.2019, 17:06   #1  
Дмитрий А.А. is offline
Дмитрий А.А.
Участник
Аватар для Дмитрий А.А.
 
173 / 19 (1) ++
Регистрация: 24.07.2015
Адрес: СПб
Работа с QueryExpression
Добрый день.
Dynamics 365.
Столкнулся со следующей проблемой, и не могу понять, как правильно сделать запрос:

Имеется 3 сущности: Отношения договора(клиент + договор + неинтересные реквизиты), Договор (проект + неинтересные реквизиты), Проект
На входе - идентификатор клиента + идентификатор проекта
Требуется найти, если имеются, Договора клиента по данному проекту.

Как я пробовал делать:
через первый QueryExpression получаю список Отношений договоров по клиенту:
X++:
QueryExpression queryRoles = new QueryExpression
                            {
                                EntityName = "new_customer_roles",
                                ColumnSet = new ColumnSet(true),
                                Criteria = new Microsoft.Xrm.Sdk.Query.FilterExpression()
                            };
                            queryRoles.Criteria.AddCondition("new_customer", ConditionOperator.Equal, value);
                            EntityCollection entityListRoles = _orgService.RetrieveMultiple(queryRoles);
в этом моменте все ок, отношения клиентов к договорам достаются без проблем.

затем я пытаюсь получить список Договоров, выбирая Договора по Проектам и пытаясь наложить фильтром найденный список отношений:

X++:
 QueryExpression query = new QueryExpression
                                {
                                    EntityName = "new_ddu",
                                    ColumnSet = new ColumnSet(true),
                                    Criteria = new Microsoft.Xrm.Sdk.Query.FilterExpression()
                                };
                                query.Criteria.AddCondition("new_object", ConditionOperator.Equal, Guid.Parse(flag));
                                //FilterExpression mainFilter = query.Criteria.AddFilter(LogicalOperator.And);
                                //mainFilter.AddCondition("new_object", ConditionOperator.Equal, Guid.Parse(flag));
                                FilterExpression childFilter = query.Criteria.AddFilter(LogicalOperator.Or);
                                //FilterExpression childFilter = mainFilter.AddFilter(LogicalOperator.Or);
                                for (int ind = 0; ind < entityListRoles.Entities.Count; ind++)
                                {
                                    childFilter.AddCondition("new_dduid", ConditionOperator.Equal, ((EntityReference)entityListRoles[ind].Attributes["new_ddu"]).Id);
                                }
                                EntityCollection entityList = _orgService.RetrieveMultiple(query);
Получается, что каждый из фильтров по отдельности отрабатывает, а вместе они дают пустоту...
Буду рад любым советам, которые помогут понять, что не так я делаю.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Маркетинговые списки. Неправильная работа Taker1796 Dynamics CRM: Функционал 9 15.09.2012 22:38
Работа MS Dyn CRM только в IE - как решаете? alou Dynamics CRM: Прочие вопросы 4 20.07.2012 13:23
Все о Microsoft Dynamics CRM: Работа с интересами в Microsoft Dynamics CRM 2011 Blog bot Dynamics CRM: Blogs 0 09.06.2012 00:11
Некорректная работа плагина в Microsoft Dynamics CRM 2011 Online Omalinka Dynamics CRM: Разработка 1 25.02.2011 16:34
Работа с едиными данными DiMoon Dynamics CRM: Администрирование 8 20.03.2008 12:28

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

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

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