Skip to main content

Execute SQL Server Stored Procedure With User Parameter In Power BI

Overview
Sometimes, there is a situation when we need to get the data by consuming SQL Server Stored Procedure. SQL Server Stored Procedures has parameters which we need to pass dynamically.
Power BI provides a functionality to execute Stored Procedure using Managed Parameters.
In this article, we will talk about the following.
  • How to create Manage Parameter
  • How to pass manage parameter to a Stored Procedure
  • Invoke Query Result and load data to Power BI Desktop
Limitation
This feature will work only for Import Mode.
Example
I have one procedure in SQL Server named “sp_getEmpshiftDetails” which has two parameters named “vStartDate” and “vEndDate”. I want to use this procedure and load the data into Power BI Desktop. I have attached the file with this article for practice purposes.
So, now let’s get started!
Step 1 - Create Manage Parameter in Power BI Desktop
  1. Open Power BI Desktop and from Home tab, select “Edit Queries”.


  2. Click on “Manage Parameters” and select “New Parameter”.
  3. It will open a popup to create a new parameter. Select “New”.
It will ask for the following information.
  • Name = Name of the parameter
  • Description = Description of Parameter
  • Required checkbox
  • Type = Datatype of a parameter
  • Suggested value
  • Current value

I created parameters “vStartDate” and “vEndDate”, as shown in the screenshot.

Step 2 - Load (Execute Stored Procedure)
  1. Now, from “Home”, select “New source”.

  2. Select “Databases”, select “SQL Server Database”.

  3. Fill in the required fields and in command window use the below line to execute the procedure.
    1. EXEC sp_getEmpshiftDetails '2015-06-23','2015-06-25'

  4. It will preview data. Click on “Load”.
Step 3 - Change Query in Advance Editor
1. Select Query and click on “Advanced Editor”.

Replace the existing query with new query.
  • Declare Parameter
  • Pass Parameter to Procedure
  1. let  
  2.   
  3. SQLSource = (vStartDate as date, vEndDate as date) =>  
  4.   
  5. let  
  6.   
  7. Source = Sql.Database("DHRUVIN\SQLEXPRESS""WMS_201", [Query="EXEC sp_getEmpshiftDetails '"Date.ToText(vStartDate) & "','" & Date.ToText(vEndDate)&"' #(lf)#(lf)#(lf) #(lf)"])  
  8.   
  9. in  
  10.   
  11. Source  
  12.   
  13. in  
  14.   
  15. SQLSource  
2. The below screenshot shows a comparison of both the queries.

Step 4 - Invoke Result
1. Select Query and enter start date and end date. Click “Invoke”.

2. It will show a warning like this. Click “Edit Permission”.

3. It will show a warning to run the query in Native Mode. Click “Run”.

4. It will load all the data.

5. Click “Close and Apply”.

Our data has been added to a Model.
Conclusion
Now, I hope you have got a better idea of “Managed Parameters” in Power BI. We can pass the dynamic parameters to SQL Server Stored procedures using this feature. Try this on your own and share your opinion with me.

Comments

Popular posts from this blog

How To Lock Objects In Power BI

Overview Sometimes, there is a situation where when we open a report and click on any visual it accidentally nudges a chart a little bit to the right or left. Sometimes, by mistake when viewing a report, the arrangement of visuals scatters a little bit. Microsoft rolls out one new amazing feature to resolve this issue, that is, Lock Objects in Power BI. Advantages of using this feature When our purpose is to only view a report, this feature is a boon for us. Visualization’s position is not changed. Saves a lot of the developer's time to resolve the position related issues. Note   -  This feature is not saved with the report. So, every time you open a report, you need to enable this feature. Now, let’s understand this feature in a brief manner. To understand this, I will first show you one report in which I have not enabled “Lock Objects” feature. Step 1 The below screenshot shows my report which doesn’t have the enabled Lock Objects feature. ...

Use SharePoint Online List As A Data Source In Power BI

Introduction In this article, we will check how we can use SharePoint List as a data source in Microsoft Power BI. Please follow the below steps to establish the connection of SharePoint Online list with Power BI.  Step 1 Open Power BI Desktop > Get Data > Click More.   Step 2 Search for SharePoint > SharePoint Online List.   Step 3 Enter the URL of your SharePoint site.   Step 4 Click on Organizational account > Sign In.   Step 5 It will open the screen of Office 365 Login > Enter Credentials.   Step 6 Click on Connect.   Step 7 It will show all the lists available in the SharePoint - lists are on the left corner and their preview is on the right. Select all the lists which you want to use directly in the Power BI. Click on Load.   Step 8 It will load all the lists. Expand "Fields" column to view all the fields shown in the SharePoint List.   We can also view all the...

How to partition or split DataTable in C#?

Today we will discuss how we can divide or split a very large data table into fixed size of chunks? Scenario: Suppose there is a data table which has 1000 Rows. When you perform for each loop on data table and read each row at that time it will take too much time. If we devide 1000 Rows datatable into 10 fixed sizes (e.g. 100 Rows) datatable, It will take less time. Let's check how to achieve it. Here is a code. private static List<DataTable> SplitTable(DataTable originalTable, int batchSize) { List<DataTable> tables = new List<DataTable>(); int i = 0; int j = 1; DataTable newDt = originalTable.Clone(); newDt.TableName = "Table_" + j; newDt.Clear(); foreach (DataRow row in originalTable.Rows) { DataRow newRow = newDt.NewRow(); newRow.ItemArray = row.ItemArray; newDt.Rows.Add(newRow); i++; if (i == batchSize) ...