Allow End Users To Refresh Dataset Whenever They Want (On Demand)

Problem

 
Suppose you have created a nice report using Power BI Desktop, connected to any on-premise or online data source. You have published the report to Power BI web service. You have shared with your end users, and they are able to view the reports. You have also scheduled refresh for every hour or so. This shows the latest data in report after every hour. But . . . 
 
What if your end users are the ones who manage the data and want to see reports immediately? They want to validate changes they made on data by visualizing the reports.
 

How could you do this?

 
You as owner/creator of the report will be able to refresh the dataset from Power BI Web service also but end users won’t have that option.
 

Solution

 
There are two options to achieve on demand refresh of datasets.
 
First – Use FLOW action to refresh data source
 
For example, if your data source is a SharePoint list,  whenever a list item is updated you would like to refresh the dataset of your report. Check the below screens, there is an action available in the Power BI section of FLOW named "Refresh a dataset" >> When you add this action it asks you to Select your workspace and dataset.
 
With this approach, a reports dataset will get refreshed automatically. The end user does not need to do anything, he can directly view the reports and he should see the latest data in it. Of course, it will take 2-3 minutes depending on when FLOW gets triggered.
 
Allow End Users To Refresh Dataset Whenever They Want (On Demand)
 
Allow End Users To Refresh Dataset Whenever They Want (On Demand)
 

Limitations

 
It has a limitation of only 8 refreshes in a day if you have a Pro license. If you have premium capacity then around 48 refreshes are allowed. So, in short, if your end user does data updates more than 8 times in a day then auto refresh won’t work for more than that amount. 
 
Second - Create a separate workspace and make end users contributors to this work space
 
What if we provide an option to end users to refresh the dataset manually whenever they want? Yes, this can be done. Follow the below steps to achieve it.
 
Create a separate workspace from Power BI Web service >> Login to Power BI web service >> Click on Workspaces tab on left side menu >> Click on Create a Workspace button at bottom.
 
Allow End Users To Refresh Dataset Whenever They Want (On Demand)
 
From Power BI Desktop, when you publish your report >> Publish it to this newly created workspace. >> You should see your newly created workspace name in the list, select it and publish.
 
From Power BI Web service >> Select the workspace Access menu >> Add your end user and make him/her a Contributor.
 
Allow End Users To Refresh Dataset Whenever They Want (On Demand)
 
You can make some other users Viewers, who don’t need the option to refresh datasets. These could be your management users.
 
From Power Bi Web service >> Go to workspace >> Go to Settings of your Dataset >> Check if Data source credentials are set properly, ideally it should be oAuth2 authentication method with Privacy level as Organizational.
 
Allow End Users To Refresh Dataset Whenever They Want (On Demand)
 
That’s it, this will allow end user to see the data set and he/she can use the "Refresh Now" option to refresh the data whenever they want.
 
Thanks for reading. Hope this helps.