Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago

How to filter an Olap Cube on Power Query Side

Hi

 

I need to connect my report to an Olap Cube, so I use "Analysis Services" connector and it works fine but unfortunatly I want to filter my data before loading it on Power BI.

My dataset contains more than 16 Million of rows and I just need 1 Million 😉

 

On the cube Navigation view I can just add Dimension or Measure and I don't have any filter proposal

 

So I try to use Cube.ApplyParameter on the advanced editor but it seems that I'm not enought advanced myself.

 

This first test :

let
    Source = AnalysisServices.Databases("xxxxxxxxxx\Z2347PROD14", [TypedMeasureColumns=true, Implementation="2.0"]),
    ISI_2_1 = Source{[Name="ISI_2_1"]}[Data],
    TimeTracking_tech = ISI_2_1{[Id="TimeTracking_tech"]}[Data],
    #"Time Tracking1" = TimeTracking_tech{[Id="Time Tracking"]}[Data],
    #"ÉlĂ©ments ajoutĂ©s" = Cube.Transform(#"Time Tracking1",
        {
            {Cube.AddAndExpandDimensionColumn, "[Members]", {"[Members].[MEM member].[MEM member]", "[Members].[MEM Organization].[MEM Organization]"}, {"Members.MEM member", "Members.MEM Organization"}},
            {Cube.ApplyParameter("[Members].[MEM Organization].[MEM Organization]",{"Digital Front End - DT"})}           
        }),
    #"Lignes filtrĂ©es1" = Table.SelectRows(#"ÉlĂ©ments ajoutĂ©s", each (Cube.AttributeMemberId([Members.MEM Organization]) = "[Members].[MEM Organization].&[73847]" meta [DisplayName = "Digital Front End - DT"]))
in
    #"Lignes filtrées1"

raise this error :

Expression.Error : Désolé... Nous n'avons pas pu convertir la valeur "[Members].[MEM Organ..." en type Table.
Détails :
Value=[Members].[MEM Organization].[MEM Organization]
Type=[Type]

 

and this other test :

let
    Source = AnalysisServices.Databases("xxxxxxxxxx\Z2347PROD14", [TypedMeasureColumns=true, Implementation="2.0"]),
    ISI_2_1 = Source{[Name="ISI_2_1"]}[Data],
    TimeTracking_tech = ISI_2_1{[Id="TimeTracking_tech"]}[Data],
    #"Time Tracking1" = TimeTracking_tech{[Id="Time Tracking"]}[Data],
    Test = Cube.ApplyParameter(#"Time Tracking1","[Members].[MEM Organization].[MEM Organization]",{"Digital Front End - DT"}),
    #"ÉlĂ©ments ajoutĂ©s" = Cube.Transform(Test,
        {
            {Cube.AddAndExpandDimensionColumn, "[Members]", {"[Members].[MEM member].[MEM member]", "[Members].[MEM Organization].[MEM Organization]"}, {"Members.MEM member", "Members.MEM Organization"}}            
        }),
    #"Lignes filtrĂ©es1" = Table.SelectRows(#"ÉlĂ©ments ajoutĂ©s", each (Cube.AttributeMemberId([Members.MEM Organization]) = "[Members].[MEM Organization].&[73847]" meta [DisplayName = "Digital Front End - DT"]))
in
    #"Lignes filtrées1"

raise this other error :

Expression.Error : La clé ne correspondait à aucune ligne dans la table.
Détails :
Key=
Id=[Members].[MEM Organization].[MEM Organization]
Table=[Table]

 

If somebody have an idea, it will be very helpfull 😉

 

nb : I can't use direct connect because I need to use other external data 😉

5 Replies

  • When you connect to Analysis Services you can specify a custom MDX query. Use that for your filtering.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Good idea but if I want to use MDX request I need to define the database and unfortunatly I didn't able to do that

      Actually on the navigator side I have that view :

      I try the following configuration :

      • ISI_2_1
      • [ISI_2_1]
      • ISI_2_1.TimeTracking_tech
      • [ISI_2_1].[TimeTracking_tech]
      • ISI_2_1.TimeTracking_tech.Time Tracking
      • [ISI_2_1].[TimeTracking_tech].[Time Tracking]

      But each time I got the same error : " Either the xxx user does not have access to the xxxxx database, or the database does not exist."

  • Kevin23's avatar
    Kevin23
    Regular Visitor

    Hello Stephane,

    I have the same issue.

    Did you find the solution?

    Kevin

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi Kevin,

       

      Yes i found the solution by customing MDX query

      It's little ticky beacause syntax doesn't look like SQL but it works fine

       

       

       

       

       

      • Kevin23's avatar
        Kevin23
        Regular Visitor

        Thank you Stephane,

         

        I want to do it directly from Power BI to Google Analytics. So i'm going to look for somethink in power Query, directly to GA.

         

        Kevin