Microsoft Power BI provides a powerful way to visualise SharePoint data and build reports and dashboards on SharePoint lists and libraries. With the introduction of a Power BI web part (and the embed code) we can now also integrate these Power BI assets in our SharePoint sites.
In this blog post we will cover how to:
- Create a Power BI report on a SharePoint list
- Configure the Power BI report to use direct query on the SharePoint data to keep the report up to date
- Embed the Power BI report in SharePoint online
Power BI direct query with SharePoint lists
You may be wondering how we can use direct query with SharePoint data because according to this article from the Power BI team states that only the following data sources are currently supported:
- SQL Server
- Azure SQL Database
- Azure SQL Data Warehouse
- SAP HANA
- Oracle Database
- Teradata Database
- Amazon Redshift (Preview)
- Impala (Preview)
- Snowflake (Preview)
Well we have a clever workaround to make your SharePoint data available as an additional direct query data source
CONFIGURING SHAREPOINT DIRECT QUERY FOR POWER BI
Pre-Requisites
To set up direct query for SharePoint lists and libraries and to embed the report in SharePoint Onlie you will need the following:
- AxioWorks SQList to synch your SharePoint lists to normalised SQL Azure tables. Download a trial here
- A SQL Azure database
- Power BI Pro
- A SharePoint Online tenant
Step 1: Synch SharePoint data to SQL Azure
First of all we’ll configure a replication using the SQList service to synch our SharePoint list to SQL Azure.
Open the SQList Manager and click new replication
Enter the details of the SharePoint Online site (could also be onprem), username and password and test the connection
Click Next
Next enter the details of the SQL Azure database and test the connection (ensure that your SQL Azure firewall rules allow access from the machine that SQList is running on)
Click next
Select “Export the lists and libraries from this site only” since we are only exporting one list
You will now see all the lists in the site we have selected. We are going to select the “Axioworks Sales” list which contains 8414 rows
Click Next and click finish
The SQList service will now start and will begin to synchronise the SharePoint list data with SQL Azure. You will see the SQList Service is running and data is being synchronised:
At this point you could close the SQList manager and leave the windows service to keep the data in synch.
If we open this lists in the SharePoint site we will see the following columns in this list:
And the data looks something like this:
Once the replication is complete we can open the database in SQL Server Management studio:
Step 2: Configure Power BI to use SharePoint data synched to SQL Azure
First of all, let’s open our Power BI desktop application and Get the data from our SQL Azure database
And enter our SQL Azure database details and click ok:
And now enter our credentials to access the database and click connect:
Open the navigator and select the table of interest.
In our case, SQList is keeping the AxioWorksSales:AxioWorksSales table in synch with our SharePoint list
Click “Load” and we now see the Power BI canvas to allow us to create our first visualistaion
But first I’m goign to create a column for Month that I’m going to use in my visualisation:
And I’ll do the same for year:
Now I’m goign to create a visualisation using Treemap and use a slicer based on year.
I’m also going to filter where sales > 30K
Export to Power Bi service
File -> Publish -> Publish to Power BI Service
Sign In to Power BI
And I now have a visualisation based on my SharePoint list
Step 3: Embed in SharePoint Online
There are a few requirements in order for Embed in SharePoint Online reports to work.
- The Power BI (Preview) web part for SharePoint Online requires new SharePoint features to be enabled. Your tenant needs to be enrolled in the Set up the Standard or First Release options in Office 365 program to use this feature.
- The First Release for everyone option must be selected.
- The Power BI (Preview) web part for SharePoint Online requires Modern Pages.
Step 3: Embed your report in SharePoint Online
In order to embed your report into SharePoint Online, you will first need to get the URL for the report and then use that URL with the new Power BI web part within SharePoint Online.
Get a URL to your report
- View the report within the Power BI service.
- Select the File menu item.
- Select Embed in SharePoint Online (Preview).
- Copy URL from dialog.
Note:
You can also use the URL that is displayed in your web browser’s address bar when viewing a report. That URL will contain the report page you are currently viewing. You will need to remove the report section, from the URL, if you want to use a different page.
Add the Power BI report to a SharePoint Online page
- Open the desired page in SharePoint Online and select Edit.Or, create a new modern site page by selecting + New within SharePoint Online.
- Select + and select the Power BI (Preview) web part.
- Select Add report.
- Past the report URL into the property pane. This is the URL you copied from the steps above. The report will load automatically.
- Select Publish to make the change visible to your SharePoint Online users.
Granting access to reports
Embedding a report in SharePoint Online does not automatically give users permission to view the report. The permissions to view the report are set within the Power BI service.
Important:
Make sure to review who can see the report within the Power BI service and grant access to those not listed.
There are two ways to provide access to the report within the Power BI service. If you are using an Office 365 Group to build your SharePoint Online team site, you list the user as a member of the app workspace within the Power BI service. This will make sure that users can view the contents of that group. For more information, see Create and distribute an app in Power BI.
Alternatively, you can grant users access to your report by doing the following.
- Add a tile from the report to a dashboard.
- Share the dashboard with the users that need access to the report. For more information, see Share a dashboard with colleagues and others.
Web part settings
Below is a description of the settings that can be adjusted for the Power BI web part for SharePoint Online.
Property
Description
Page name
Sets the default page that is shown by the web part. Select a value from the drop down. If no pages are displayed, either your report has one page, or the URL you pasted contains a page name. Remove the report section from the URL to select a specific page.
Display
Option to adjust how the report is fit within the SharePoint Online page.
Show Navigation Pane
Shows or hides the page navigation pane.
Show Filter Pane
Shows or hides the filter pane.
Multi-factor authentication
If your Power BI environment requires you to sign-in using multi-factor authentication, you may be asked to sign-in with a security device to verify your identity. This will occur if you did not sign-in to SharePoint Online using multi-factor authentication but your Power BI environment requires an account validated by a security device.
Note:
Multi-factor authentication is not yet supported with Azure Active Directory 2.0. Users will receive a message saying error. If the user signs-in again to SharePoint Online using their security device, they may be able to view the report.
Reports that do not load
Your report may not load within the Power BI (Preview) web part and may show the following message.
This content isn’t available.
There are two common reasons for this message.
- You do not have access to the report.
- The report was deleted.
You should contact the owner of the SharePoint Online page to help you resolve the issue.
8 responses to “POWER BI: SHAREPOINT REAL TIME REPORTS AND DASHBOARDS”
Excellent post.
Can these be added to classic pages? Potentially with Content Editor or HTML snippet?
Hi Jeff, Thanks
I havent tried it but I believe there are ways via 3rd party appparts/webparts. Its also possible to get a public embed code but be careful with the security around this.
Regards
Paul.
Hey Paul, Thanks for sharing. There’s one typo that you’d like to update, ‘SharePoint Onlie’.
Now, this is where things get complicated. Microsoft wants users to embed PowerBI into there SharePoint pages when it cannot directly connect with a SharePoint list! If your product is running within the SharePoint ecosystem then, the first thing I’d expect it to understand SharePoint first before anything else.
I get this question all the time that whether we should store data in SQL or SP List. If they have to eventually copy the data to SQL(Azure) then, don’t you think that they should better store the data on SQL itself? This will save them the entire process of copying. If Microsoft wants users to use SharePoint beyond file dumping then, they need to bring direct analytical support to it.
Hi Piyush. Thanks will update that typo 🙂
Power BI does already support SharePoint, perhaps in a more limited way. The number of refreshes via the gateways is limited.
I understand what you are saying about when to use SharePoint over SQL and vice vera. The beauty and success of SharePoint is that it gives business users the ability to quickly and easily build their own datastores, business processes and mini-applictions. I guess with the advent of Power Apps and Flow and their integration with SharePoint we are only going to see more uses of SharePoint in as a datastore.
Potentially stupid question, would viewing these dashboards from the sharepoint site require a powerBI Pro License?
Hi Lance,
Not a stupid question at all. In fact, you are correct a Power BI Pro licence is required.
Hi Paul,
Where does the sync tool have to be installed? What if I dont have permissions to manage the site?
Thanks
Hi Chris,
The sync tool can be installed anywhere providing it has http/https connectivity’s to SharePoint and TCP connecivity to your sql database. Most customers choose to install it on a production server that is monitored etc
You require only read acces to the SharePont site/lists that you want to replicate
Kind Regards,
Paul