“We are screwed!”me at the moment of technology induced panic
That was the feeling when I saw the below error messages.
The client’s setup is an on-prem SQL server exposed to the cloud via an on-prem Gateway. It works perfectly fine for exiting Dataflow integration, but this time we needed data from a function in Power Automate.
Now problem, you can use SQL server connector, right?
Almost (but yes, if you read this post or knew before).
Set back #1
You cannot use “Execute a SQL query (V2)” with an on-prem gateway connection. Not supported!
Sure, let’s then use “Execute stored procedure (V2)”.
Set back #2
Apparently, you cannot return dataset from the function. Can call it if it was just a function or procedure without return value. But if it returns data – bad luck!
Panic mode on!
Wait, but what if…
Power Query to the rescue! Again.
The good news, you still CAN return data from a function (or stored proc) in on-prem gateway, but you need to use “Transform data using Power Query”!
Just click the “Edit query” button and you’ll see the list of available functions or procedures for your connection and database (assuming you have set it up). In my case the function required a parameter “as_at_date” which I can either enter a value for.
That’s it for the case to return a dataset – here you go:
At the same time, there is so much more you can do with the data using power query! Just to name a few things you can do in Power Query as one action in your flow, just to name a few:
- Add calculated fields, change type of existing fields etc
- Join dataset with from other tables/functions and aggregate data
- Transpose, reverse rows, replace values, fill values and other transformation magic
Explore and create!
Unfortunately, it’s not possible (as of Sep 2021) to pass a value from the flow into the DB function if one requires it as on the screenshot above. You can vote for this idea to be added one day (maybe) here: https://powerusers.microsoft.com/t5/Power-Automate-Ideas/Add-ability-to-load-dynamic-content-in-Power-Query/idi-p/211409