2010-10-15 11 views
5

Mam wiele obiektów w mojej kostce SSAS, z których wiele zostało stworzonych, aby były niewidoczne. NpCzytanie metadanych usług analizy SQL

CREATE MEMBER CURRENTCUBE.[Measures].[Latency Backcolor] 
AS CASE 
    WHEN [Average Latency] > [Web Alert] THEN 6384849 
    WHEN [Average Latency] > [Web Warn] THEN 4577517 
    ELSE IIF ([measures].[Query count] > NULL, 14876123, null) 
END, VISIBLE = 0; 

który nie widoczne i:

CREATE MEMBER CURRENTCUBE.[Measures].[Average Latency] 
AS IIF ([Measures].[Query Count] > 0, [Measures].[Total Ms]/[Measures].[Query Count], null), 
     FORMAT_STRING = "#,##0.00000;-#,##0.00000", 
     BACK_COLOR = [Latency Backcolor], 
     VISIBLE = 1, 
     DISPLAY_FOLDER = 'Overall', 
     ASSOCIATED_MEASURE_GROUP = 'Fact Raw FD'; 

które jest.

Próbowałem dwóch metod przesłuchania kostki. Po pierwsze, używając przestrzeni nazw Microsoft.AnalysisServices.AdomdClient. Na przykład:

using Microsoft.AnalysisServices.AdomdClient; 

var _connection = new AdomdConnection 
{ 
    ConnectionString = "Data Source=localhost;User ID=me;Password=secret;Initial Catalog=dbname", 
    ShowHiddenObjects = true 
}; 

_connection.Open(); 

CubeDef _cube = _connection.Cubes["MyCube"]; 

// _cube.Measures 

Próbowałem również przestrzeni nazw Microsoft.AnalysisServices. Na przykład:

using Microsoft.AnalysisServices; 

Server server = new Server(); 
server.Connect("Data Source=localhost;User ID=me;Password=secret"); 

Database database = server.Databases.GetByName("dbname"); 

Cube cube = database.Cubes.FindByName("MyCube"); 

// cube.Dimensions 
// cube.MeasureGroups[].Measures 

Wszystkie powyższe są pobierane bezpośrednio z działającego kodu (ale zredukowane do absolutnego minimum w celu zadawania pytania). Wszystko działa idealnie z każdym kodem, z jednym wyjątkiem, że nie mogę "zobaczyć" żadnego z moich ukrytych obiektów, takich jak miary. I could użyć surowego MDX, który mogę pobrać z bazy danych przy użyciu drugiej techniki. (Poważnie) wadą jest to, że sam musiałbym je przeanalizować, co byłoby prawdziwym zabójstwem buzzów. There's dostał, aby być sposobem na dotarcie do rzeczywistych obiektów bez konieczności przeskakiwania przez tyle obręcze.

Dzięki!

Odpowiedz

2

O ile mi wiadomo, nie ma sposobu, aby uzyskać ukryte środki za pomocą modeli obiektów ADOMD. Musisz używać XML/A i radzić sobie z wynikowym XML.

Innym rozwiązaniem, które chciałbym polecić, jest użycie Perspectives zamiast bezpośredniego ukrywania środków. Jak wiadomo lub domyślacie, do tworzenia podzbiorów kostki służy ukrywanie elementów. W ten sposób można uzyskać dostęp do wszystkich miar za pomocą modelu obiektów ADOMD i pozwolić użytkownikom zobaczyć tylko elementy kostki zawarte w bieżącym Perspective.

Powiązane problemy