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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.02.2009, 13:09   #1  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Есть такой класс: ConditionExpression. Для него доступен оператор NotIn зачение которого: "Specifies that a given value is not matched to a value in a subquery or a list". Лениво проверять как он работает, но если в качестве значения в него действительно можно передать подзапрос, а не его результат, то это вполне решит проблему... Если, конечно, такой запрос потом удастся конвертировать в Fetch.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 20.02.2009, 13:34   #2  
Савран Роман is offline
Савран Роман
Участник
 
58 / 17 (1) ++
Регистрация: 19.02.2009
Адрес: Киев, Украина
При попытке для NotIn задать подзапрос
"<detail><error>\n <code>0x80040203</code>\n <description>Condition for attribute 'account.accountid': expected argument(s) of type 'System.Guid' but received 'Microsoft.Crm.Sdk.Query.QueryByAttribute'.</description>\n <type>Platform</type>\n</error></detail>"

Собсно сам код :

ColumnSet cs = new ColumnSet();
cs.Attributes = new string[] { "accountid" };

QueryByAttribute qba = new QueryByAttribute();
qba.ColumnSet = cs;
qba.Attributes = new string[] {"name"};
qba.Values = new object[] {"org1"};

ConditionExpression ce = new ConditionExpression();
ce.AttributeName = "accountid";
ce.Operator = ConditionOperator.NotIn;
ce.Values = new object[] { qba };

FilterExpression fe = new FilterExpression();
fe.Conditions = new ConditionExpression[] {ce};

QueryExpression qe = new QueryExpression();
qe.ColumnSet = new AllColumns();
qe.EntityName = EntityName.account.ToString();
qe.Criteria = fe;

crmService.RetrieveMultiple(qe);
Старый 20.02.2009, 13:39   #3  
Савран Роман is offline
Савран Роман
Участник
 
58 / 17 (1) ++
Регистрация: 19.02.2009
Адрес: Киев, Украина
Вырезка из формы бекуса-наура по фетчхмл касательно нот ин(с сайта майрософт) :

condition-Multiple :=
<condition attribute='attribute-name' operator=
(
'in' |
'not-in' |
'between' |
'not-between' )>
Value-Xml *
</condition>

Value-Xml :=
<value>text</value>

Из нее видно, что параметром нот ин может быть только значение, если бы туда можно было бы вставить запрос было бы

Value-Xml :=
<value>( text | FetchXml) </value>

ну или что-то вроде этого

Кстати знает ли кто-то есть ли однозначное соответствие между Квериекспрешн и Фетчхмл?
За это сообщение автора поблагодарили: Артем Enot Грунин (3).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Дочерние организации (Бизнес-партнеры) Bakai Madybaev Dynamics CRM: Функционал 6 09.10.2008 17:40
Нестандартное поле "Организации" William Orbit Dynamics CRM: Администрирование 6 22.04.2008 17:07
Изменение свойств контакта при изменении свойств организации koalex Dynamics CRM: Функционал 6 22.02.2008 09:27
Скрыть lookup без следа Кириллов Борис Dynamics CRM: Разработка 5 25.08.2006 13:12

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

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

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