Forum Discussion

lewand03's avatar
lewand03
Helper I
7 years ago
Solved

Passing multiple parameters to SAP BW Query

Hi PBI Gurus,
In my report I am using multiple queries from SAP BW as a data source.

I all of these queries I am using the same parameters to get data. for examle fiscal year.

{Cube.ApplyParameter, "[!V000003]", {{"[0FISCYEAR].[K42016]", "[0FISCYEAR].[K42018]", "[0FISCYEAR].[K42017]"}}},

Next year I need to add year 2019 and istead of changing it in every single query I'd like to do that via Parameter.

 

I know how to pass just one value foe example: [0FISCYEAR].[K42016], but I am having trouble with passing all the values. I was trying with string: "[0FISCYEAR].[K42016]", "[0FISCYEAR].[K42018]", "[0FISCYEAR].[K42017]", but it doesn;t work.

Any suggestions?

 

Thanks ,

D.

  • solve by creating a seperate "empty" query instead of parameter. I called it YEARS. Just like that:

    let
     Source = {{"[0FISCYEAR].[K42015]", "[0FISCYEAR].[K42016]", "[0FISCYEAR].[K42017]", "[0FISCYEAR].[K42018]", "[0FISCYEAR].[K42018]"}}
    in
     Source

    And the result is used as a selector:

     

    {Cube.ApplyParameter, "[!V000003]", YEARS},
  • Anonymous's avatar
    Anonymous
    7 years ago

    You have to pass the List of List in this case.

    To do that lets sat you are stating from Company Code Master Data table, which is already filtered on the Companies that you need.

     

    Write following code as a new query and use it in your Comp Code filter. Note here I had to convert Comp Code numbers into text so SAP can accept them.

    let
        Source = #"Company Code Master Data",
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Company Code #", type text}}),
        #"Company Code #" = #"Changed Type"[#"Company Code #"],
        Final  = List.Combine({{#"Company Code #"}})
    in
        Final

5 Replies

    • lewand03's avatar
      lewand03
      Helper I

      Thanks v-frfei-msft,

       

      But to be honest I do not know how to convert proposed solution:

        var_out = CE_PROJECTION
      
               ( :vty
      
               , ["ZWEEK"
      
               , "ZROWCOUNT"]
      
               , 'in("ZWEEK", :ip_week)'
      
               );
      
      
      Then the following statement will work.
      
      
      SELECT "ZWEEK", sum("ZROWCOUNT") 
      
      FROM "_SYS_BIC"."mypkg.filterview/ZTEST_FILT"
      
       ('PLACEHOLDER' = ('$$ip_week$$', '''201202'', ''201203'''))
      
      GROUP BY "ZWEEK";

      to PBI Language from my case, using Parameter functionality.

                  {Cube.ApplyParameter, "[!V000003]", {{"[0FISCYEAR].[K42016]", "[0FISCYEAR].[K42017]", "[0FISCYEAR].[K42018]"}}},

      Any ideas?

       

       

      Thanks,

      D.

  • solve by creating a seperate "empty" query instead of parameter. I called it YEARS. Just like that:

    let
     Source = {{"[0FISCYEAR].[K42015]", "[0FISCYEAR].[K42016]", "[0FISCYEAR].[K42017]", "[0FISCYEAR].[K42018]", "[0FISCYEAR].[K42018]"}}
    in
     Source

    And the result is used as a selector:

     

    {Cube.ApplyParameter, "[!V000003]", YEARS},
    • Anonymous's avatar
      Anonymous
      Not applicable

      You have to pass the List of List in this case.

      To do that lets sat you are stating from Company Code Master Data table, which is already filtered on the Companies that you need.

       

      Write following code as a new query and use it in your Comp Code filter. Note here I had to convert Comp Code numbers into text so SAP can accept them.

      let
          Source = #"Company Code Master Data",
          #"Changed Type" = Table.TransformColumnTypes(Source,{{"Company Code #", type text}}),
          #"Company Code #" = #"Changed Type"[#"Company Code #"],
          Final  = List.Combine({{#"Company Code #"}})
      in
          Final
      • lewand03's avatar
        lewand03
        Helper I

        Thanks Sang,

         

        You are absolutly right, I've already described that in my previous post ;)

         

        Regards,

        D.