2015-06-05 8 views
5

Mam moduł z wymiarem zawierający hierarchii nadrzędny podrzędność i kilka niewidocznych atrybutów. Jedynym sposobem sprawdzania tego wymiaru jest hierarchia nadrzędna-podrzędna.W MDX, w jaki sposób hierarchia została wybrana podczas odwoływania się do elementu Wszyscy?

Mój problem jest następujący jak nazwa MDX został rozwiązany:

[MyDimension].[All].Children 

W tym przypadku jeden z braku atrybutu widzialnym jest wybrana (rozwiązany do: [MyDimension].[MyInvisibleAttributeUsedOnlyForOrdering].[All].Children), co prowadzi do nieoczekiwanych rezultatów.

Problem pojawia się, gdy używana jest funkcja CUBEMEMBER/CUBEVALUE w programie Excel. Ponieważ program Excel nie uwzględnia atrybutów niewidocznych, funkcja autouzupełniania przeskakuje bezpośrednio z [MyDimension] do [MyDimension].[All] bez pytania użytkownika o określenie hierarchii. Gdy inny atrybut jest widoczny, działa dobrze, ponieważ autouzupełnianie programu Excel wymusza na użytkownika wybór jednej z hierarchii, co prowadzi do jednoznacznego [MyDimension].[MyParentChildHierarchy].[All].[MyCorrectMembers].

Jednym z możliwych obejść jest ustawienie wszystkich niewidocznych atrybutów jako nieagregatujących, w ten sposób [MyDimension].[All] ma sens tylko w zakresie mojej hierarchii nadrzędny-podrzędny, ale szukam lepszego i bardziej wszechstronnego rozwiązania.

Z góry dziękuję za rozwiązanie lub wyjaśnienie zachowania SSAS.

+0

Jaką wersję programu Excel używasz (w tym SP)? –

+0

Używamy Excel 2010 SP2 – Ndech

+0

Mam jedno środowisko, które jest podobne (SQL 2008 R2, Excel 2010). Nie mogę odtworzyć Twojego problemu. Czy dzieje się to tylko wtedy, gdy jedyną widoczną hierarchią w PC dim jest hierarchia komputera? Mój ma jeszcze jeden widoczny atrybut. –

Odpowiedz

0

Czy funkcja StripCalculatedMembers pomaga w twojej sytuacji?
Myślę, że może usunąć więcej, niż chcesz usunąć.

MSDN odniesienia jest tutaj: https://msdn.microsoft.com/en-us/library/ms145983.aspx

+0

Obawiam się, że to nie pomoże. Ten wymiar nie ma obliczonego elementu. Tak naprawdę nie chcę usuwać członków, chciałbym, aby Excel używał właściwego atrybutu (mojej macierzystej hierarchii podrzędnej) zamiast jednego z ukrytych atrybutów, gdy odwołuję się do członka [Wszystkich]. Nie wahaj się zapytać, czy moje pytanie pozostaje niejasne. – Ndech

1

Kiedy SSAS odgadnie hierarchii atrybut dla wymiaru, moja obserwacja jest to, że odbywa się pierwszy zdefiniowane w pliku dimension.xml.

Aby zobaczyć/zmienić, który atrybut jest pierwszy (tj. Pierwszy atrybut podrzędny elementu Atrybuty), należy zaimportować bazę danych SSAS do projektu programu Visual Studio, kliknąć prawym przyciskiem myszy wymiar wybierz polecenie Wyświetl kod, a następnie przewiń w dół do elementu Atrybuty. Możesz skopiować/wkleić Atrybut nadrzędny-podrzędny i przenieść go na górę, a wszystkie rzeczy zaczynają się równe, twój MDX powinien zostać rozwiązany przeciwko tej hierarchii atrybutów zamiast (przypuszczalnie) kluczowego atrybutu.

Zakładam, że elementy Hierarchy zachowują się tak samo w kolekcji Hierarchie, ale w rzeczywistości ich nie próbowały.

Nie wiem, czy zadziała w przypadku Excela, ale w ogólnym przypadku MDX jest to technika, której używam od lat, aby mój atrybut P-C był domyślny.

Powiązane problemy