Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 MDX запрос работает в 2008 но не работает в 2016  [new]
vovaa
Member

Откуда:
Сообщений: 198
Здравствуйте! Если кто-то сталкивался или знает в чем может быть причина пожалуйста помогите, подскажите.

Если совсем кратко - то один и тот же mdx запрос в вресии SSAS 2008 работает а в 2016 версии нет. Выдается вот такая ошибка :

Ошибка выполнения управляемой хранимой процедуры DATEADD: Microsoft::AnalysisServices::AdomdServer::AdomdException.
В рекурсивных вычислениях глубокой вложенности невозможен вызов хранимой процедуры CLR.


Если детально то мы используем SSAS как источник для отчетов Tableau. Tableau сам генерирует mdx запросы исходя из своих алгоритмов и мы на это никак влиять не можем. Плюс в Tableau можно с помощью изменения default data type атрибута измерения отвечающего за время на тип Date использовать его не как список значений а как относительный фильтр по дате - то есть выбирать либо период с помощью фильтра с двумя ползунками либо сделать фильтр типа "последние N дней, месяцев и т.п."

Вобщем все работало отлично на 2008, на 2016 при использовании этих фильтров по датам В КОМБИНАЦИИ с какими-то друшими фильтрами по атрибутам других измерений выдается выше приведенная ошибка.

Вот пример запроса :


WITH
MEMBER [Measures].[LEVEL INSTANCE none:Filter Date:qk - lev00] AS
'CASE WHEN IsEmpty([Timeline].[Filter Date].CurrentMember.MemberValue) OR [Timeline].[Filter Date].CurrentMember.MemberValue = null THEN null ELSE CDate([Timeline].[Filter Date].CurrentMember.MemberValue) END',
SOLVE_ORDER = 127
SELECT
{[Measures].[Headcount]} DIMENSION PROPERTIES [MEMBER_UNIQUE_NAME],[MEMBER_CAPTION] ON COLUMNS,
NON EMPTY CROSSJOIN(
Union(
[Business Unit Active Structure].[Structure].[Level 02].AllMembers,
Union(
{[Business Unit Active Structure].[Structure].&[{6A63A0B7-196C-4CE2-A832-A65E00E872D2}]:[Business Unit Active Structure].[Structure].&[{C306AD38-A43D-4060-BD30-A5B601659E34}]},
{[Business Unit Active Structure].[Structure].&[{43B1622C-0768-4FE4-A977-C35E2D45FBB2}],
[Business Unit Active Structure].[Structure].&[{213AA134-4E0F-43AF-9BD8-6692DD11561C}],
[Business Unit Active Structure].[Structure].&[{6B7CBC6E-FB12-456A-8FB2-9D4A01086D2C}],
[Business Unit Active Structure].[Structure].&[{9B229016-036C-4983-BAF1-9D4A010C4C3B}]})),
[Timeline].[Financial Years].[Financial Month].AllMembers) DIMENSION PROPERTIES [MEMBER_UNIQUE_NAME],[MEMBER_CAPTION] ON ROWS
FROM [Personnel]
WHERE
StripCalculatedMembers(CROSSJOIN(
{[Business Unit Active Structure].[LXTDGT].&[Yes]},
Filter(
[Timeline].[Filter Date].[Filter Date].AllMembers,
DATEADD("m",-4,DATEADD("m",DATEDIFF("m",CDate(36526),NOW()),CDate(36526))) <= [Measures].[LEVEL INSTANCE none:Filter Date:qk - lev00] AND [Measures].[LEVEL INSTANCE none:Filter Date:qk - lev00] < DATEADD("m",1,DATEADD("m",DATEDIFF("m",CDate(36526),NOW()),CDate(36526))))))


Видно что в WHERE как раз идет фильтрация по датам. Причем если убрать из WHERE условие {[Business Unit Active Structure].[LXTDGT].&[Yes]} все работает.

Но дело даже не в том что при убирании каких-то условий из запроса он работает. Дело в том что в 2008 версии все работает! Что такого сделали в SSAS 2016 что теперь не работает нифига?

Спасибо за помощь.
18 июл 17, 17:46    [20655126]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить