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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.01.2009, 09:43   #1  
sergeyjb is offline
sergeyjb
Участник
Аватар для sergeyjb
 
68 / 12 (1) ++
Регистрация: 01.10.2008
Выбрать организации без возможных сделок
Как расширенным поиском выбрать все организации с которыми не связана ни одна возможная сделка?

Если подключаю связанный объект "возможная сделка" в расширенном, то он тут же как Inner Join пересечение организаций и сделок делает, и уже на это пересечение все остальные условия накладывает.
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара
Старый 28.01.2009, 10:11   #2  
Артем 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
Я только через одно место придумал:
1. создаем маркетинговый список и добавляем в него все организации.
2. потом через поиск удаляем из него все организации которые связаны со сделками.

Замечу, что на Расширенном поиске свет клином не сошелся... MS использует в том числе поисковые запросы, которые нельзя открыть через этот инструмент. Взять хотя бы "Организации без заказов за последние 6 мес." Подобные запросы вы можете добавить программно. Подозреваю, что даже вполне поддерживаемым способом.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: sergeyjb (1).
Старый 28.01.2009, 10:20   #3  
Lazarus is offline
Lazarus
Участник
Аватар для Lazarus
 
76 / 11 (1) +
Регистрация: 19.03.2008
Адрес: Самара
Да, Артем, отчет "Организации без заказов" подходит, только способа создать маркетинговый список из данных отчета, похоже, не существует. В это все и упирается.

А решение с удалением из списка организаций со сделками -- самое оно!
Старый 28.01.2009, 10:22   #4  
sergeyjb is offline
sergeyjb
Участник
Аватар для sergeyjb
 
68 / 12 (1) ++
Регистрация: 01.10.2008
А программно добавлять поисковый запрос это как? Тем более поддерживаемым способом?
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара
Старый 28.01.2009, 10:29   #5  
Артем 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
Есть классы SavedQuery и UserQuery. По сути одно и тоже, отличаются только типом владения - организация или пользователь. У них есть атрибуты:
fetchxml сам запрос, который вы для простоты можете программно конвертировать из QueryExpression
iscustomizable - судя по всему будет ли запрос доступен для редактирования через меню настроек и Расширенном поиске.
Собственно вот. Мне лень, а вы попробуйте создать что-то похожее.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: a33ik (1).
Старый 28.01.2009, 10:35   #6  
Артем 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
Цитата:
Сообщение от Lazarus Посмотреть сообщение
Да, Артем, отчет "Организации без заказов" подходит, только способа создать маркетинговый список из данных отчета, похоже, не существует.
Это если делать список из запроса! Можно же просто выбрать такое представление, выбрать "Другие действия" -> "добавить в маркетинговый список". Жаль только все так не уторкать, только выбранные. Впрочем, проблема победима простым скриптом, плюс ISV. Могу подсказать, если надо.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 19.02.2009, 23:43   #7  
Савран Роман is offline
Савран Роман
Участник
 
58 / 17 (1) ++
Регистрация: 19.02.2009
Адрес: Киев, Украина
Запрос с NOT EXISTS
Ни fetchxml ни QueryExpression не поддерживают запросов которые используют NOT EXISTS (в аналоге SQL) поэтому реализовать запрос как в сабже стандартными методами (расширенный поиск, fetchxml, QueryExpression) не удастся.

В подтверждение - форма Бекуса-Наура для fetchxml с сайта Майкрософт :
http://msdn.microsoft.com/en-us/library/aa476315.aspx
Максимум на что он способен - аутер и иннер джоин + фильтры по атрибутам.
Также можно посмотреть http://msdn.microsoft.com/en-us/library/ms936574.aspx - там описано как работают джоины.

Единственное что можно в таком случае посоветовать для программной реализации - поле-индикатор, которое обращается в 1 при создании возможной сделки, но это ИМХО гемор

Последний раз редактировалось Савран Роман; 20.02.2009 в 00:32.
Старый 20.02.2009, 13:09   #8  
Артем 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   #9  
Савран Роман 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   #10  
Савран Роман 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).
Старый 20.02.2009, 14:00   #11  
Артем 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
Думаю их возможности эквивалентны. Есть даже сообщения для преобразования одного типа запроса в другой:
FetchXmlToQueryExpressionRequest
QueryExpressionToFetchXmlRequest
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Дочерние организации (Бизнес-партнеры) 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, время: 09:54.