SharePoint Online Connector for Power BISharePoint Connector can be used to read, write data in SharePoint Online List / Document Library, perform file operations such as upload, download, create, move, delete, rename in a few clicks! In this article you will learn how to quickly and efficiently integrate SharePoint Online data in Power BI without coding. We will use high-performance SharePoint Online Connector to easily connect to SharePoint Online and then access the data inside Power BI. Let's follow the steps below to see how we can accomplish that! SharePoint Online Connector for Power BI is based on ZappySys API Driver which is part of ODBC PowerPack. It is a collection of high-performance ODBC drivers that enable you to integrate data in SQL Server, SSIS, a programming language, or any other ODBC-compatible application. ODBC PowerPack supports various file formats, sources and destinations, including REST/SOAP API, SFTP/FTP, storage services, and plain files, to mention a few. |
Connect to SharePoint Online in other apps
|
Video Tutorial - Integrate SharePoint Online data in Power BI
This video covers the following topics and more, so please watch carefully. After watching the video, follow the steps outlined in this article:
- How to download and install the required PowerPack for
SharePoint Online integration in Power BI - How to configure the connection for
SharePoint Online - Features of the
ZappySys API Driver (Authentication / Query Language / Examples / Driver UI) - How to use the
SharePoint Online in Power BI
Create ODBC Data Source (DSN) based on ZappySys API Driver
Step-by-step instructions
To get data from SharePoint Online using Power BI we first need to create a DSN (Data Source) which will access data from SharePoint Online. We will later be able to read data using Power BI. Perform these steps:
-
Download and install ODBC PowerPack.
-
Open ODBC Data Sources (x64):
-
Create a User data source (User DSN) based on ZappySys API Driver
ZappySys API Driver-
Create and use User DSN
if the client application is run under a User Account.
This is an ideal option
in design-time , when developing a solution, e.g. in Visual Studio 2019. Use it for both type of applications - 64-bit and 32-bit. -
Create and use System DSN
if the client application is launched under a System Account, e.g. as a Windows Service.
Usually, this is an ideal option to use
in a production environment . Use ODBC Data Source Administrator (32-bit), instead of 64-bit version, if Windows Service is a 32-bit application.
Power BI uses a Service Account, when a solution is deployed to production environment, therefore for production environment you have to create and use a System DSN. -
Create and use User DSN
if the client application is run under a User Account.
This is an ideal option
-
When the Configuration window appears give your data source a name if you haven't done that already, then select "SharePoint Online" from the list of Popular Connectors. If "SharePoint Online" is not present in the list, then click "Search Online" and download it. Then set the path to the location where you downloaded it. Finally, click Continue >> to proceed with configuring the DSN:
SharepointOnlineDSNSharePoint Online -
Now it's time to configure the Connection Manager. Select Authentication Type, e.g. Token Authentication. Then select API Base URL (in most cases, the default one is the right one). More info is available in the Authentication section.
Use delegated access (User Credentials) whenever you want to let a signed-in user work with their own resources or resources they can access. Whether it's an admin setting up policies for their entire organization or a user deleting an email in their inbox, all scenarios involving user actions should use delegated access. [API reference]
Steps how to get and use SharePoint Online credentials
Follow these simple steps below to create Microsoft Entra ID application with delegated access:
WARNING: If you are planning to automate processes, we recommend that you use a Application Credentials authentication method. In case, you still need to use User Credentials, then make sure you use a system/generic account (e.g.automation@my-company.com
). When you use a personal account which is tied to a specific employee profile and that employee leaves the company, the token may become invalid and any automated processes using that token will start to fail.- Navigate to the Azure Portal and log in using your credentials.
- Access Microsoft Entra ID.
-
Register a new application by going to App registrations and clicking on New registration button:
INFO: Find more information on how to register an application in Graph API reference. -
When configuration window opens, configure these fields:
-
Supported account type
- Use
Accounts in this organizational directory only
, if you need access to data in your organization only.
- Use
-
Supported account type
-
Redirect URI:
- Set the type to
Public client/native (mobile & desktop)
. - Use
https://zappysys.com/oauth
as the URL.
- Set the type to
-
After registering the app, copy the Application (client) ID for later:
-
Copy OAuth authorization endpoint (v2) & OAuth token endpoint (v2) URLs to use later in the configuration:
-
Now go to SSIS package or ODBC data source and use the copied values in User Credentials authentication configuration:
- In the Authorization URL field paste the OAuth authorization endpoint (v2) URL value you copied in the previous step.
- In the Token URL field paste the OAuth token endpoint (v2) URL value you copied in the previous step.
- In the Client ID field paste the Application (client) ID value you copied in the previous step.
-
In the Scope field use the default value or select individual scopes, e.g.:
-
email
-
offline_access
-
openid
-
profile
-
User.Read
-
Sites.Read.All
-
Sites.ReadWrite.All
-
Files.Read.All
-
Files.ReadWrite.All
-
- Press Generate Token button to generate Access and Refresh Tokens.
- Optional step. Choose Default Site Id from the drop down menu.
- Click Test Connection to confirm the connection is working.
- Done! Now you are ready to use the API Connector!
Fill in all required parameters and set optional parameters if needed:
SharepointOnlineDSNSharePoint OnlineUser Credentials [OAuth]https://graph.microsoft.com/v1.0Required Parameters Authorization URL Fill-in the parameter... Token URL Fill-in the parameter... Client ID Fill-in the parameter... Scope Fill-in the parameter... Return URL Fill-in the parameter... Default Site Id (select after pressing 'Generate Token') Fill-in the parameter... Optional Parameters Client Secret Default Drive Id (select after pressing 'Generate Token') Login Prompt Option RetryMode RetryWhenStatusCodeMatch RetryStatusCodeList 429|503|423 RetryCountMax 5 RetryMultiplyWaitTime True Search Option For Non-Indexed Fields (Default=Blank - Search Only Indexed) Extra Headers (e.g. Header1:AAA||Header2:BBB) IsAppCred 0 Application-only access is broader and more powerful than delegated access (User Credentials), so you should only use app-only access where needed. Use it when: 1. The application needs to run in an automated way, without user input (for example, a daily script that checks emails from certain contacts and sends automated responses). 2. The application needs to access resources belonging to multiple different users (for example, a backup or data loss prevention app might need to retrieve messages from many different chat channels, each with different participants). 3. You find yourself tempted to store credentials locally and allow the app to sign in 'as' the user or admin. [API reference]
Steps how to get and use SharePoint Online credentials
Follow these simple steps to create Microsoft Entra ID application with application access permissions:
-
Create an OAuth app
-
Grant application SharePoint Online permissions (optional, for granular permissions)
This step allows to grant OAuth application granular permissions, i.e. access configured specificSites
,Lists
, andList Items
.Step-1: Create OAuth app
- Navigate to the Azure Portal and log in using your credentials.
- Access Microsoft Entra ID.
-
Register a new application by going to
App registrations
and clicking on New registration button:
INFO: Find more information on how to register an application in Graph API reference.
-
When configuration window opens, configure these fields:
-
Supported account type
- e.g. select
Accounts in this organizational directory only
if you need access to data in your organization only.
- e.g. select
-
Supported account type
-
Redirect URI:
- Set the type to
Public client/native (mobile & desktop)
. - Leave the URL field empty.
- Set the type to
-
After registering the app, copy the Application (client) ID for later:
-
Then copy OAuth authorization endpoint (v2) & OAuth token endpoint (v2) URLs:
-
Continue and create Client secret:
-
Then copy the Client secret for later steps:
-
Continue by adding permissions for the app by going to the API permissions section, and clicking on Add a permission:
-
Select Microsoft Graph:
-
Then choose Application permissions option:
-
Continue by adding these Sites permissions (search for
site
):INFO: If you want to access specific lists or list items (table-level vs row-level security) rather than the full site, then addLists.SelectedOperations.Selected
orListItems.SelectedOperations.Selected
permissions , just like in the previous step (search forlist
).WARNING: If you add any of these permissions -Sites.Selected
,Lists.SelectedOperations.Selected
, orListItems.SelectedOperations.Selected
- you must grant the app the SharePoint permissions for the specific resource (e.g. aSite
, aList
, or aListItem
). Follow instructions in Grant SharePoint permissions to the OAuth app (optional) section on how to accomplish that. -
Finish by clicking Add permissions button:
-
Now it's time to Grant admin consent for your application:
-
Confirm all the permissions are granted:
-
Now go to SSIS package or ODBC data source and use the copied values in Application Credentials authentication configuration:
- In the Token URL field paste the OAuth token endpoint (v2) URL value you copied in the previous step.
- In the Client ID field paste the Application (client) ID value you copied in the previous step.
- In the Client Secret field paste the Client secret value you copied in the previous step.
- Optional step. Choose Default Site Id from the drop down menu.
- Click Test Connection to confirm the connection is working.
- Done!
Step-2 (optional): Grant SharePoint permissions to the OAuth app (optional)
If you used
Sites.Selected
,Lists.SelectedOperations.Selected
orListItems.SelectedOperations.Selected
permission in the previous section, you must grant the app the SharePoint permissions for the specific resource (e.g. aSite
, aList
, or aListItem
). You can do it using PowerShell or SharePoint admin center (obsolete method).Granting SharePoint permissions using PowerShell
Unfortunately, there is no user interface available to control these permissions yet. For now, granting permissions has to be accomplished via Microsoft Graph API [Microsoft reference]:
You must be the owner of the resource to grant permissions (i.e. belong to SharePoint owners group or be the owner of theSite
orList
).- Open PowerShell (run as admin).
-
Call the following PowerShell code to grant
read
andwrite
permission for the app we created earlier (assuming Application (client) ID is89ea5c94-aaaa-bbbb-cccc-3fa95f62b66e
):##### CONFIGURATION ############################################################################################ # More info at: # - https://learn.microsoft.com/en-us/graph/permissions-selected-overview?tabs=powershell # - https://learn.microsoft.com/en-us/powershell/module/microsoft.graph.sites/?view=graph-powershell-1.0 # Find SharePoint Site Id by following these steps: # - Login into SharePoint Online # - Open this URL https://{your-company}.sharepoint.com/_api/site in the browser # NOTE: For a subsite use https://{your-company}.sharepoint.com/sites/{your-subsite}/_api/site # - Find 'Id' element in the response (e.g. <d:Id m:type="Edm.Guid">efcdd21a-aaaa-bbbb-cccc-5d8104d8b5e3</d:Id>) # - Copy the Site Id, i.e.: efcdd21a-aaaa-bbbb-cccc-5d8104d8b5e3 # Set $siteId variable to the retrieved Site Id: $siteId="efcdd21a-aaaa-bbbb-cccc-5d8104d8b5e3" # Find your Application Id (i.e. Client Id) in the Azure Portal, in App Registrations page: # https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade $applicationId="89ea5c94-aaaa-bbbb-cccc-3fa95f62b66e" # Set one of app permissions: read, write, fullcontrol, owner ('write' includes 'read' permission) $appPermission="write" ##### SCRIPT ################################################################################################### # Step-1: Install 'Microsoft.Graph.Sites' module if it's not installed if (-not (Get-Module Microsoft.Graph.Sites -ListAvailable)) { Install-Module Microsoft.Graph.Sites } # Step-2: Load module Import-Module Microsoft.Graph.Sites # Step-3: Login (use Azure admin or SharePoint owner account) DisConnect-MgGraph Connect-MgGraph # Step-4: Set parameters for API call (set permissions, Site ID and Application ID) $params = @{ roles = @($appPermission) grantedTo = @{ application = @{id = $applicationId} } } # Step-5: Grant permissions New-MgSitePermission -SiteId $siteId -BodyParameter $params # Done! Write-Host "Granted SharePoint permissions to application '$applicationId' for site '$siteId'."
- That's it! Now you can use the API Connector!
Granting SharePoint permissions using SharePoint admin center (obsolete method)
If you used
Site.Selected
permission you can link it SharePoint site in SharePoint admin center [SharePoint reference]. Follow these simple steps to accomplish that:-
Log in to SharePoint admin center using this URL:
(replace
YOURCOMPANY
with your company name):https://YOURCOMPANY-admin.sharepoint.com/_layouts/15/appinv.aspx
INFO: To view all the registered apps in SharePoint, visit this page:https://YOURCOMPANY-admin.sharepoint.com/_layouts/15/appprincipals.aspx?Scope=Web
. - In the App Id field enter Application (client) ID you copied in the previous step.
-
In the Permission Request XML field enter XML snippet which describes which SharePoint permissions you want to grant to the OAuth app, e.g.:
<AppPermissionRequests AllowAppOnlyPolicy="true"> <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" /> </AppPermissionRequests>
INFO: This example gives appFullControl
, but you can also grant itRead
orWrite
permissions. - Click Create to grant the permission to your OAuth app.
- That's it! Now you can use the API Connector!
Fill in all required parameters and set optional parameters if needed:
SharepointOnlineDSNSharePoint OnlineApplication Credentials [OAuth]https://graph.microsoft.com/v1.0Required Parameters Token URL Fill-in the parameter... Client ID Fill-in the parameter... Client Secret Fill-in the parameter... Default Site Id Fill-in the parameter... Optional Parameters Scope https://graph.microsoft.com/.default Default Drive Id RetryMode RetryWhenStatusCodeMatch RetryStatusCodeList 429|503|423 RetryCountMax 5 RetryMultiplyWaitTime True Search Option For Non-Indexed Fields (Default=Blank - Search Only Indexed) Extra Headers (e.g. Header1:AAA||Header2:BBB) IsAppCred 1
Steps how to get and use SharePoint Online credentials
To use Certificate-Based Authentication Setup please follow the steps listed in [Application Credentials] authentication and once done come back here to finish next stsps.This guide walks you through setting up a certificate-based authentication flow for Microsoft Graph or other Azure AD protected APIs using client credentials and a JWT.
Step 1: Generate a Self-Signed Certificate
You can use OpenSSL or any other way to generate Certificate file but make it simple below example uses PowerShell. Open PowerShell and execute code listed in below steps.# Run this in PowerShell #Change .AddYears(1) to desired number. By default it expires certificate in one year as per below code. $cert = New-SelfSignedCertificate ` -Subject "CN=MyClientAppCert" ` -KeySpec Signature ` -KeyExportPolicy Exportable ` -KeyLength 2048 ` -CertStoreLocation "Cert:\CurrentUser\My" ` -KeyAlgorithm RSA ` -HashAlgorithm SHA256 ` -NotAfter (Get-Date).AddYears(1) ` -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" # Export private key (.pfx) - Keep this with you to make API calls (SECRET KEY - DONOT SHARE) $pfxPath = "$env:USERPROFILE\Desktop\private_key.pfx" $pwd = ConvertTo-SecureString -String "yourStrongPassword123" -Force -AsPlainText Export-PfxCertificate -Cert $cert -FilePath $pfxPath -Password $pwd # Export public certificate (.cer) - UPLOAD this to Azure Portal $cerPath = "$env:USERPROFILE\Desktop\public_key.cer" Export-Certificate -Cert $cert -FilePath $cerPath
Step 2: Register or Configure an App in Azure AD
- Go to https://portal.azure.com
- Navigate to Azure Active Directory > App registrations
- Click + New registration or open an existing app
- Copy the Application (client) ID and Directory (tenant) ID
Step 3: Upload the Certificate
- In your App Registration, go to Certificates & secrets
- Under Certificates, click Upload certificate
- Select the
.cer
file (public certificate) - Click Add
Step 4: Grant API Permissions
- Go to the API permissions tab
- Click Add a permission
- Select Microsoft Graph (or another API)
- Choose Application permissions
- Add scopes such as:
-
Sites.Read.All
-
Sites.ReadWrite.All
-
Files.Read.All
-
Files.ReadWrite.All
-
email
-
offline_access
-
openid
-
profile
-
User.Read
-
- Click Grant admin consent (requires admin)
Step 5: Use PFX file
Once both files generated perform the following steps to use PFX file., , Use the Certificate file (*.pfx) Now its time to use pfx file generated in the previous step. PFX file contains private key and public key both.- On ZappySys Connection UI Go to
Certificate Tab - Change Storage Mode to Local PFX File (or you can Import PFX file in Certificate Storage - User Store / Machine Store and use that way)
- Supply the pfx file path or select certificate from Local Certificate Store if you imported that way in earlier step
- Supply the certificate password (same password used in earlier PowerShell script)
- Test connection see everything is good
Fill in all required parameters and set optional parameters if needed:
SharepointOnlineDSNSharePoint OnlineApplication Credentials with Certificate (Sign JWT with Private Key) [OAuth]https://graph.microsoft.com/v1.0Required Parameters Token URL Fill-in the parameter... Client ID Fill-in the parameter... Certificate: *** Configure [Client Certificate] Tab *** Fill-in the parameter... Default Site Id Fill-in the parameter... Optional Parameters Default Drive Id RetryMode RetryWhenStatusCodeMatch RetryStatusCodeList 429|503|423 RetryCountMax 5 RetryMultiplyWaitTime True Search Option For Non-Indexed Fields (Default=Blank - Search Only Indexed) Extra Headers (e.g. Header1:AAA||Header2:BBB) IsAppCred 1 Once the data source connection has been configured, it's time to configure the SQL query. Select the Preview tab and then click Query Builder button to configure the SQL query:
ZappySys API Driver - SharePoint OnlineSharePoint Connector can be used to read, write data in SharePoint Online List / Document Library, perform file operations such as upload, download, create, move, delete, rename in a few clicks!SharepointOnlineDSNStart by selecting the Table or Endpoint you are interested in and then configure the parameters. This will generate a query that we will use in Power BI to retrieve data from SharePoint Online. Hit OK button to use this query in the next step.
SELECT * FROM Lists
Some parameters configured in this window will be passed to the SharePoint Online API, e.g. filtering parameters. It means that filtering will be done on the server side (instead of the client side), enabling you to get only the meaningful datamuch faster .Now hit Preview Data button to preview the data using the generated SQL query. If you are satisfied with the result, use this query in Power BI:
ZappySys API Driver - SharePoint OnlineSharePoint Connector can be used to read, write data in SharePoint Online List / Document Library, perform file operations such as upload, download, create, move, delete, rename in a few clicks!SharepointOnlineDSNSELECT * FROM Lists
You can also access data quickly from the tables dropdown by selecting <Select table>.AWHERE
clause,LIMIT
keyword will be performed on the client side, meaning that thewhole result set will be retrieved from the SharePoint Online API first, and only then the filtering will be applied to the data. If possible, it is recommended to use parameters in Query Builder to filter the data on the server side (in SharePoint Online servers).Click OK to finish creating the data source.
Video Tutorial
Read SharePoint Online data in Power BI using ODBC
Importing SharePoint Online data into Power BI from table or view
-
Once you open Power BI Desktop click Get Data to get data from ODBC:
-
A window opens, and then search for "odbc" to get data from ODBC data source:
-
Another window opens and asks to select a Data Source we already created. Choose SharepointOnlineDSN and continue:
SharepointOnlineDSN -
Most likely, you will be asked to authenticate to a newly created DSN. Just select Windows authentication option together with Use my current credentials option:
SharepointOnlineDSN -
Finally, you will be asked to select a table or view to get data from. Select one and load the data!
-
Finally, finally, use extracted data from SharePoint Online in a Power BI report:
Importing SharePoint Online data into Power BI using SQL query
If you wish to import SharePoint Online data from SQL query rather than a table then you can use advanced options during import steps (as below). After selecting DSN you can click on advanced options to see SQL Query editor.
SharepointOnlineDSNSELECT * FROM Lists
Consider using Custom Objects feature in ODBC data source to encapsulate SQL query in a Virtual Table. This way, you can see a virtual table in Power BI table list where you can import multiple objects using the same connection rather than creating a new connection for each custom SQL query.Using a full ODBC connection string
In the previous steps we used a very short format of ODBC connection string - a DSN. Yet sometimes you don't want a dependency on an ODBC data source (and an extra step). In those times, you can define a full connection string and skip creating an ODBC data source entirely. Let's see below how to accomplish that in the below steps:
-
Open ODBC data source configuration and click Copy settings:
ZappySys API Driver - SharePoint OnlineSharePoint Connector can be used to read, write data in SharePoint Online List / Document Library, perform file operations such as upload, download, create, move, delete, rename in a few clicks!SharepointOnlineDSN
-
The window opens, telling us the connection string was successfully copied to the clipboard:
-
Then just paste the connection string into your script:
SharepointOnlineDSNDRIVER={ZappySys API Driver};ServiceUrl=https://graph.microsoft.com/v1.0;Provider=Custom;OAuthVersion=OAuth2;ScopeSeparator={space};GrantType=Default;Scope=[$Scope$];ScopeSeparator={space};ContentType=application/x-www-form-urlencoded;
- You are good to go! The script will execute the same way as using a DSN.
The DSN defined in the Data source name (DSN) field will be ignored.Have in mind that a full connection string has length limitations.
Proceed to the next step to find out the details.
Limitations of using a full connection string
Despite using a full ODBC connection string may be very convenient it comes with a limitation: it's length is limited to 1024 symbols (or sometimes more). It usually happens when API provider generates a very long Refresh Token when OAuth is at play. If you are using such a long ODBC connection string, you may get this error:
"Connection string exceeds maximum allowed length of 1024"
But there is a solution to this by storing the full connection string in a file. Follow the steps below to achieve this:
- Open your ODBC data source.
- Click Copy settings button to copy a full connection string (see the previous section on how to accomplish that).
- Then create a new file, let's say, in C:\temp\odbc-connection-string.txt.
- Continue by pasting the copied connection string into a newly created file and save it.
-
Finally, the last step! Just construct a shorter ODBC connection string using this format:
DRIVER={ZappySys API Driver};SettingsFile=C:\temp\odbc-connection-string.txt
- Our troubles are over! Now you should be able to use this connection string in Power BI with no problems.
This feature requires ODBC PowerPack v1.9.0 or later.Editing query for table in Power BI
There will be a time you need to change the initial query after importing data into Power BI. Don't worry, just right-click on your table and click Edit query menu item:
Refer to Power Query M reference for more information on how to use its advanced features in your queries.Using parameters in Power BI (dynamic query)
In the real world, many values of your REST / SOAP API call may be coming from parameters. If that's the case for you can try to edit script manually as below. In below example its calling SQL Query with POST method and passing some parameters. Notice below where paraAPIKey is Power BI Parameter (string type). You can use parameters anywhere in your script just like the normal variable.
To use a parameter in Power BI report, follow these simple steps:
-
Firstly, you need to Edit query of your table (see previous section)
-
Then just create a new parameter by clicking Manage Parameters dropdown, click New Parameter option, and use it in the query:
= Odbc.Query("dsn=SharepointOnlineDSN", "SELECT ProductID, ProductName, UnitPrice, UnitsInStock FROM Products WHERE UnitPrice > " & Text.From(MyParameter) & " ORDER BY UnitPrice")
Refer to Power Query M reference for more information on how to use its advanced features in your queries.
Using DirectQuery Option rather than Import
So far we have seen how to Import SharePoint Online data into Power BI, but what if you have too much data and you don't want to import but link it. Power BI Offers very useful feature for this scenario. It's called DirectQuery Option. In this section we will explore how to use DirectQuery along with ZappySys Drivers.
Out of the box ZappySys Drivers won't work in ODBC Connection Mode, so you have to use SQL Server Connection rather than ODBC if you wish to use Live data using DirectQuery option. See below step-by-step instructions to enable DirectQuery mode in Power BI for SharePoint Online data.
Basically we will use ZappySys Data Gateway its part of ODBC PowerPack. We will then use Linked Server in SQL Server to Link API Service, then issue
OPENROWSET
queries from Power BI to SQL Server, and it will then call SharePoint Online via ZappySys Data Gateway.- First, create a data source in ZappySys Data Gateway and create a Linked Server based on it.
- Once SQL Server Linked Server is configured we are ready to issue a SQL query in Power BI.
- Click Get Data in Power BI, select SQL Server Database
- Enter your server name and any database name
- Select Mode as DirectQuery
-
Click on Advanced and enter query like below
(we are assuming you have created SharePoint Online Data Source in Data Gateway and defined linked server - change the name below).
SELECT * FROM OPENQUERY([LS_TO_SHAREPOINT_ONLINE_IN_GATEWAY], 'SELECT * FROM Lists')
SELECT * FROM OPENQUERY([LS_TO_SHAREPOINT_ONLINE_IN_GATEWAY], 'SELECT * FROM Lists')
DirectQuery option for Power BI (Read SharePoint Online Data Example using SQL Server Linked Server and ZappySys Data Gateway) - Click OK and Load data... That's it. Now your SharePoint Online API data is linked rather than imported.
Publishing Power BI report to Power BI service
Here are the instructions on how to publish a Power BI report to Power BI service from Power BI Desktop application:
-
First of all, go to Power BI Desktop, open a Power BI report, and click Publish button:
-
Then select the Workspace you want to publish report to and hit Select button:
-
Finally, if everything went right, you will see a window indicating success:
If you need to periodically refresh Power BI semantic model (dataset) to ensure data accuracy and up-to-dateness, you can accomplish that by using Microsoft On-premises data gateway. Proceed to the next section - Refreshing Power BI semantic model (dataset) using On-premises data gateway - and learn how to do that.
Refreshing Power BI semantic model (dataset) using On-premises data gateway
Power BI allows to refresh semantic models which are based on data sources that reside on-premises. This can be achieved using Microsoft On-premises data gateway. There are two types of On-premises gateways:
- Standard Mode
- Personal Mode
Standard Mode supports Power BI and other Microsoft Data Fabric services. It fits perfectly for Enterprise solutions as it installs as a Windows Service and also supports Direct Query feature.
Personal Mode, on the other hand, can be configured faster, but is designed more for home users (you cannot install it as a Windows Service and it does not support DirectQuery). You will find a detailed comparison in the link above.
We recommend to go with Personal Mode for a quick POC solution, but use Standard Mode in production environment.
Below you will find instructions on how to refresh semantic model using both types of gateways.
Refresh using On-premises data gateway (standard mode)
Here are the instructions on how to refresh a Power BI semantic model using On-premises data gateway (standard mode):
-
Go to Power BI My workspace, hover your mouse cursor on your semantic model and click Settings:
-
If you see this view, it means you have to install On-premises data gateway (standard mode):
-
Install On-premises data gateway (standard mode) and sign-in:
Use the same email address you use when logging in into Power BI account. -
Register a new gateway (or migrate an existing one):
-
If you are creating a new gateway, name your gateway, enter a Recovery key, and click Configure button:
-
Now, let's get back to your semantic model settings in Power BI portal. Refresh the page and you should see your newly created gateway. Click arrow icon and then click on Add to gateway link:
ODBC{"connectionstring":"dsn=SharepointOnlineDSN"} -
Once you do that, you will create a new gateway connection. Give it a name, set Authentication method, Privacy level, and click Create button:
dsn=SharepointOnlineDSNIn this example, we used the least restrictive Privacy level.If your connection uses a full connection string you may hit a length limitation when entering it into the field. To create the connection, you will need to shorten it manually. Check the section about the limitation of a full connection string on how to accomplish it.
On-premises data gateway (personal mode) does not have this limitation.
-
Proceed by choosing the newly created connection:
ODBC{"connectionstring":"dsn=SharepointOnlineDSN"} -
Finally, you are at the final step where you can refresh the semantic model:
Refresh using On-premises data gateway (personal mode)
Here are the instructions on how to refresh a Power BI semantic model using On-premises data gateway (personal mode):
-
Go to Power BI My workspace, hover your mouse cursor on your semantic model and click Settings:
-
If you see this view, it means you have to install On-premises data gateway (personal mode):
-
Install On-premises data gateway (personal mode) and sign-in:
Use the same email address you use when logging in into Power BI account. -
Again, go to your semantic model Settings, expand Data source credentials, click Edit credentials, select Authentication method together with Privacy level, and then click Sign in button:
dsn=SharepointOnlineDSN -
Finally, you are ready to refresh your semantic model:
Actions supported by SharePoint Online Connector
Learn how to perform common SharePoint Online actions directly in Power BI with these how-to guides:
- Copy item (File or Folder)
- Create / Update CSV File (Generic)
- Create / Update JSON File (Generic)
- Create List Item
- Delete Item (File or Folder)
- Delete List Item
- Download File
- Get Item (File or Folder)
- List Drives
- List Excel Files
- List Excel Worksheets of a File (i.e. List Tabs)
- List Files
- List Folders
- List SharePoint Lists
- List SharePoint System Lists
- List Sites
- Move or rename item (File or Folder)
- Read CSV File (Generic)
- Read Drive
- Read Excel Worksheet (Auto Detect Range)
- Read Excel Worksheet (From Exact Range)
- Read File Data (As Byte Array)
- Read JSON File (Generic)
- Read List
- Read List Fields
- Read List Item (By ID)
- Read List Items
- Read List Items (Dynamic Columns)
- Read Main Site
- Update List Item
- Upload File
- Generic Request
- Generic Request (Bulk Write)
Conclusion
In this article we showed you how to connect to SharePoint Online in Power BI and integrate data without any coding, saving you time and effort. It's worth noting that ZappySys API Driver allows you to connect not only to SharePoint Online, but to any Java application that supports JDBC (just use a different JDBC driver and configure it appropriately).
We encourage you to download SharePoint Online Connector for Power BI and see how easy it is to use it for yourself or your team.
If you have any questions, feel free to contact ZappySys support team. You can also open a live chat immediately by clicking on the chat icon below.
Download SharePoint Online Connector for Power BI Documentation
More integrations
Other connectors for Power BI
AllBig Data & NoSQLDatabaseCRM & ERPMarketingCollaborationCloud StorageReportingCommerceAPI & FilesOther application integration scenarios for SharePoint Online
AllData IntegrationDatabaseBI & ReportingProductivityProgramming LanguagesAutomation & ScriptingODBC applicationsHow to connect SharePoint Online in Power BI?
How to get SharePoint Online data in Power BI?
How to read SharePoint Online data in Power BI?
How to load SharePoint Online data in Power BI?
How to import SharePoint Online data in Power BI?
How to pull SharePoint Online data in Power BI?
How to push data to SharePoint Online in Power BI?
How to write data to SharePoint Online in Power BI?
How to POST data to SharePoint Online in Power BI?
Call SharePoint Online API in Power BI
Consume SharePoint Online API in Power BI
SharePoint Online Power BI Automate
SharePoint Online Power BI Integration
Integration SharePoint Online in Power BI
Consume real-time SharePoint Online data in Power BI
Consume real-time SharePoint Online API data in Power BI
SharePoint Online ODBC Driver | ODBC Driver for SharePoint Online | ODBC SharePoint Online Driver | SSIS SharePoint Online Source | SSIS SharePoint Online Destination
Connect SharePoint Online in Power BI
Load SharePoint Online in Power BI
Load SharePoint Online data in Power BI
Read SharePoint Online data in Power BI
SharePoint Online API Call in Power BI