Forum Discussion
user parameter in dynamic query
Hello!
I'm trying to pass the value of a parameter to my dynamic query statement so that I can limit the dataset on the source db (dealing with extremely large data).
I tried the following... but it doesn't transfer the value of parameter StartDate to variable p_start_date. How can I get the parameter value passed so I can use it in my dynamic query?
let
p_start_date = fnGetParameter("StartDate"),
Source = SapHana.Database("server",
[Query="select ""VBAK"".""VBELN"", ""VBAK"".""AUART"" #(lf)from ""VBAK"" #(lf)where ""VBAK"".""ERDAT"" > '& p_start_date &'"])
in
Source
Many thanks!!
10 Replies
- BhaveshPatelSuper User
Hi there,
Please see this blog post for more information.
https://blog.oraylis.de/2013/05/using-dynamic-parameter-values-in-power-query-queries/
Thanks & Regards,
Bhavesh
- ankitpatiraCommunity Champion
raji I think you're just missing double quotes. Pass in parameter as shown in image below with double quotes.
- rajiRegular Visitor
Thanks ankitpatira ! I tried that but got an error:
New script:
let
Source = SapHana.Database("server",
[Query="select ""VBAK"".""VBELN"", ""VBAK"".""AUART""
from ""schema"".""VBAK""
where ""VBAK"".""ERDAT"" > """& Start & """
"])
in
SourceIt shows the following query:
select "VBAK"."VBELN", "VBAK"."AUART"
from "schema"."VBAK"
where "VBAK"."ERDAT" > "20160101"but the hana system needs the date without the quotes as it's throwing the following error message:
DataSource.Error: ODBC: ERROR [S1000] [SAP AG][LIBODBCHDB DLL][HDBODBC] General error;260 invalid column name: 20160101: line 3 col 24 (at pos 200)
Details:
DataSourceKind=SapHana
DataSourcePath=server
OdbcErrors=TableAny ideas? Thanks!
- rajiRegular Visitor
I think I got the syntax, but now I get the following error:
"Mixing DirectQuery and imported data is not supported."
Does that mean a parameter cannot be used for user input and passed to a dynamic query?
Or does anyone know how to get around this?
Many thanks!!
- v-micsh-msftMicrosoft Employee
Hi raji,
Parameter is supported under Direct Query. Check:
Deep Dive into Query Parameters and Power BI Templates
This error “Mixing DirectQuery and imported data is not supported." Might be caused by the Parameter status, please right click the parameter, and uncheck the Enable Load option (If checked, after click close and apply, Power BI desktop would generate the error "Mixing DirectQuery and imported data is not supported."):
In addition, please take a notice of the data type of the data source and the parameter, make sure the type matches.
Please reply back if you need any further assistance on this.
Regards
- rajiRegular Visitor
Sorry for the delay - I was on business travel and wasn't able to check this... back now...
Looked at the link and I think I see the issue/disconnect now... I was looking for a query parameter that the user could enter and I could pass to the select statement to limit the rows returned (vs a slicer and filtering on it since the dataset is millions of records). However, using the link to query params and templates provided above, it looks like this is only possible using Desktop BI vs published reports that users are using.
If I misunderstood and there is a way to do this where the users can enter the parameter value from the report, would love to hear!
Thanks all for your feedback!!