Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Отчет MSCRM падает из-за количества значений фильтра  [new]
ArghBuzz
Member

Откуда:
Сообщений: 33
Коллеги, привет!
Есть отчет для MSCRM. Создан с помощью BIDS, затем загружен в CRM 2011.
В 2011 срм есть ограничение на 1000 значений в фильтре, у меня их чуть больше (1070).
Отчет валится с ошибкой Invalid argument.

Погуглил и нашел решение в виде добавления в веб конфиги репортинг сервера ключа aspnet:MaxHttpCollectionKeys.
Пруф:
http://sql-ution.com/reports-with-multiselect-parameters-not-working/

Всем помогло, а мне нет. Есть догадки в чем еще может быть проблема?
Менял конфиги и репортинг менеджера и репортинг сервера, перезагружал и IIS и RS - не помогает.
Благодарен за любое мнение или догадку.
7 дек 12, 15:37    [13595382]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
ArghBuzz
В 2011 срм есть ограничение на 1000 значений в фильтре, у меня их чуть больше (1070).

може чет в консерватории подправить ?
7 дек 12, 15:43    [13595453]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
ArghBuzz
Member

Откуда:
Сообщений: 33
Maxx
ArghBuzz
В 2011 срм есть ограничение на 1000 значений в фильтре, у меня их чуть больше (1070).

може чет в консерватории подправить ?

Спасибо за ответ. Что за консерватория?
7 дек 12, 15:44    [13595465]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
ArghBuzz,

например сразу подготовить нормальную выборку..все равно 1070 фильтров не один юзверь не осилит...
Фильтров если больше 5 ,то уже многа..а 1070 ето вообще атас

Думаю,что реально изменяемых у вас штук до 10 максимум
7 дек 12, 15:47    [13595498]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
ArghBuzz
Member

Откуда:
Сообщений: 33
Maxx
ArghBuzz,

например сразу подготовить нормальную выборку..все равно 1070 фильтров не один юзверь не осилит...
Фильтров если больше 5 ,то уже многа..а 1070 ето вообще атас

Думаю,что реально изменяемых у вас штук до 10 максимум


Вы не совсем правильно меня поняли. Фильтров 6. В одном из них предлагается 1070 значений.
Для ясности: Отчет по магазинам партнеров.
Фильтры Регион (родительский), Партнер (дочерний региона), Магазин (дочерний партнера) ну и + даты.
Так вот у меня 1070 магазинов.
7 дек 12, 15:49    [13595528]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
ArghBuzz
Member

Откуда:
Сообщений: 33
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2) (VM)
7 дек 12, 15:58    [13595627]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а как вариант - сделать его по запросу ?
что не по умолчанию вываливалось 1070 значяений,а сразу фильтровалось по Партнеру ? Что уменьшить количество возможных значений ?
7 дек 12, 15:58    [13595629]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
ArghBuzz
Member

Откуда:
Сообщений: 33
Maxx
а как вариант - сделать его по запросу ?
что не по умолчанию вываливалось 1070 значяений,а сразу фильтровалось по Партнеру ? Что уменьшить количество возможных значений ?


Запрос работает хорошо.
И отчет хорошо работает если выбрать столько партнеров, чтоб у них было магазинов меньше 1000.
Пробовал и вообще убрать фильтр магазинов - работает.
Ругань на большое количество значений.
7 дек 12, 16:01    [13595644]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
ArghBuzz
Member

Откуда:
Сообщений: 33
ArghBuzz
Maxx
а как вариант - сделать его по запросу ?
что не по умолчанию вываливалось 1070 значяений,а сразу фильтровалось по Партнеру ? Что уменьшить количество возможных значений ?


Запрос работает хорошо.
И отчет хорошо работает если выбрать столько партнеров, чтоб у них было магазинов меньше 1000.
Пробовал и вообще убрать фильтр магазинов - работает.
Ругань на большое количество значений.


Не верно понял Ваш вопрос.
Сейчас так и есть. Значения не вываливаются сразу по умолчанию, а предлагаются после того как выбран родительский фильтр.
Выбрали 5 партнеров, к примеру, и только затем отображаются все магазины этих 5-ти партнеров для выбора. До выбора значений в родительском фильтре - дочерний не активен.
7 дек 12, 16:03    [13595655]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
ArghBuzz,

может ввести еще 1 уровень,типа галочка ALL (и если она активная не выберать магазины на форме ) ?
Хотя по факту -ето уже фантазии на тему ,как конкретно побороть- не знаю,вообще слабо себе представляю что ,кто-то будет что-то искать в 1070 магазинах...когда они выпадут на форму
7 дек 12, 16:13    [13595740]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
ArghBuzz
Member

Откуда:
Сообщений: 33
Вот что в eventviewer'e

Exception information:
Exception type: HttpException
Exception message: The URL-encoded form data is not valid.
at System.Web.HttpRequest.FillInFormCollection()
at System.Web.HttpRequest.get_Form()
at System.Web.HttpRequest.get_HasForm()
at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
at System.Web.UI.Page.DeterminePostBackMode()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Operation is not valid due to the current state of the object.
at System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes, Encoding encoding)
at System.Web.HttpRequest.FillInFormCollection()
7 дек 12, 17:32    [13596286]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
invm
Member

Откуда: Москва
Сообщений: 9833
ArghBuzz,

У вас там в запросе in с перечислением 1070-ти литералов? Тогда учтите:
http://msdn.microsoft.com/en-US/library/ms177682(v=sql.105).aspx
Including an extremely large number of values (many thousands) in an IN clause can consume resources and return errors 8623 or 8632. To work around this problem, store the items in the IN list in a table.

Error 8623:

The query processor ran out of internal resources and could not produce a query plan. This is a rare event and only expected for extremely complex queries or queries that reference a very large number of tables or partitions. Please simplify the query. If you believe you have received this message in error, contact Customer Support Services for more information.

Error 8632:

Internal error: An expression services limit has been reached. Please look for potentially complex expressions in your query, and try to simplify them.
7 дек 12, 18:00    [13596443]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
ArghBuzz
Member

Откуда:
Сообщений: 33
invm
ArghBuzz,

У вас там в запросе in с перечислением 1070-ти литералов? Тогда учтите:
http://msdn.microsoft.com/en-US/library/ms177682(v=sql.105).aspx
Including an extremely large number of values (many thousands) in an IN clause can consume resources and return errors 8623 or 8632. To work around this problem, store the items in the IN list in a table.

Error 8623:

The query processor ran out of internal resources and could not produce a query plan. This is a rare event and only expected for extremely complex queries or queries that reference a very large number of tables or partitions. Please simplify the query. If you believe you have received this message in error, contact Customer Support Services for more information.

Error 8632:

Internal error: An expression services limit has been reached. Please look for potentially complex expressions in your query, and try to simplify them.


Спасибо за ответ.
Запрос для фильтра и правда с использованием IN.
select unitid, name from dbo.Filteredunit
where organizationid in (@Partner)
order by  name


Что посоветуете предпринять?
7 дек 12, 18:35    [13596593]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
invm
Member

Откуда: Москва
Сообщений: 9833
ArghBuzz
Что посоветуете предпринять?
Переписать с использованием временной таблицы или табличной переменной. Ну и не пренебречь советом из 13595740
7 дек 12, 18:42    [13596627]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
ArghBuzz
Member

Откуда:
Сообщений: 33
invm
ArghBuzz
Что посоветуете предпринять?
Переписать с использованием временной таблицы или табличной переменной. Ну и не пренебречь советом из 13595740


Интересная идея насчет временной таблицы, попробую.
А вариант 13595740 не совсем подходит, так как клиент хочет смотреть информацию по всем своим магазинам.
Спасибо.
7 дек 12, 18:45    [13596642]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
ArghBuzz
так как клиент хочет смотреть информацию по всем своим магазинам.

тогда зачем ему их выберать? с формы то.. если есть клиент и уже в процедуре отчета выведите ему инфу о всех его магазинах
7 дек 12, 18:48    [13596661]     Ответить | Цитировать Сообщить модератору
 Re: Отчет MSCRM падает из-за количества значений фильтра  [new]
Crimean
Member

Откуда:
Сообщений: 13147
Maxx,

есть такая категория пользователей. если будет 2 кнопки - "обработать все" и "обработать отмеченные" - 101% будут нажимать "отметить все" + "обработать отмеченные" и никогда наоборот. "я гарантирую это" (ц)
7 дек 12, 21:11    [13597425]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить