SSAS MDX: вычисляемый элемент не отображается в Excel - PullRequest
1 голос
/ 01 апреля 2020

Я создал вычисляемый элемент, как описано ниже в SSMS (не VS, поэтому я не развернул его), выбрав команду и выполнив ее. Доступ к этому члену в MDX работает нормально. Но Excel не показывает мне эту меру, и я также не вижу ее в браузере куба. Я ожидаю найти его ниже группы мер.

Вопрос: Что я пропустил?

Дополнительный вопрос: Как я могу поместить эту меру в группу мер?

CREATE MEMBER [Logistics].[Measures].[Printed] AS 
    SUM
    ( 
        {
            (
                [Pick].[Pick Method].&[4]
                , EXCEPT([Pick].[Pick Type].MEMBERS, [Pick].[Pick Type].&[A])
                , EXCEPT([Loc].[Build Zone].MEMBERS, {[Loc].[Build Zone].[All], [Loc].[Build Zone].&[G1], [Loc].[Build Zone].&[G2], [Loc].[Build Zone].&[G3]})
                , EXCEPT([Loc].[Loc Code].MEMBERS, {[Loc].[Loc Code].[All], [Loc].[Loc Code].[EXPRESS]})
            )
        }
        , [Measures].[Nb of Pick lines]
    ) ;

Выполнение этой операции с использованием MDX-SELECT работает в порядке и возвращает разумный результат:

SELECT 
        NON EMPTY
        {
            [Location].[Build Zone].MEMBERS, [Location].[Build].[Tested]
        } ON COLUMNS
            , NON EMPTY {[Calendar].[Calendar Year].[Month].&[2019]&[August].children} ON ROWS  
    FROM [Logistics] ;

1 Ответ

1 голос
/ 03 апреля 2020

В SSMS вы можете создавать только вычисляемые элементы в рамках сеанса, как описано здесь

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

select measures.allmembers on 0
from [Logistics]

вы увидите [Measures].[Printed] member. Но как только вы откроете окно New Query в SSMS для этого куба и снова запустите select measures.allmembers on 0 from [Logistics], вы больше не увидите вычисляемый элемент.

Итак, решение состоит в том, чтобы добавить этот скрипт create member в скрипте вычислений в Visual Studio, как вы упомянули, и для развертывания куба.

Кроме того, чтобы поместить показатель в группу мер или в какую-либо папку под ним, вы можете использовать ASSOCIATED_MEASURE_GROUP и DISPLAY_FOLDER свойства. Так что-то вроде этого:

create member [MyCube].Measures.MyMeasure as 999, ASSOCIATED_MEASURE_GROUP = 'My measure group', DISPLAY_FOLDER = 'My display folder'
...