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 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) ...

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. ...

Create Event Calendar In Power BI

Overview In this article, we will learn how we can create Event Calendar within Power BI. We have a requirement from many of my clients to show Events within the Calendar by Category Colors. In order to achieve that requirement, we can use the custom visual from the marketplace which is “ Calendar by MAQ Software ”. You can directly download it using   URL . At the end of the article, you are able to create Event Calendar as shown in the following screenshot. We have the following data to be shown in the event Calendar. Event Start Date Event End Date Description Category   For your practice, you can download sample data source file and Power BI file using   GitHub . Let’s get started! Step 1 Import “ Calendar by MAQ Software ” from Marketplace or download using the   URL . Once it is imported we can see the visual in visualization pane. Step 2 Drag the “ Calendar by MAQ Software ” visual and set the following property. ...