Reporting using data from Microsoft Dynamics 365 Online may be challenging. With Querona, you can use any BI tools to achieve that goal.
Connecting to Microsoft Dynamics 365 Online
Dynamics 365 services require OAuth authentication protocol use as described at
Microsoft IT-Pro home page.
The additional requirement is to register an application in Azure Active Directory and allow this app to authenticate against a Dynamics 365 instance to get data.
Register an Azure Application
Follow the steps below to obtain the OAuth values for your application, the
OAuthClientId,
OAuthClientSecret, and
CallbackURL.
Step 1. Log in to Azure Portal
Log in to
portal.azure.com.
Step 2. Add a new application to Azure Active Directory
In the left-hand navigation pane, select
Azure Active Directory then
App Registrations and click the
New application registration button.
Step 3. Fill in the properties of the custom app
Name = The name of your custom application, for example,
MyDynamics365app
Application type =
Web app / API
Sign-in URL = A valid URL, for example,
http://localhost:12345
Click the
Create button.

After creating the app, ensure that in the
Properties section, the
Multi-tenanted option is set to
Yes and
Reply URL is set to the URL you chose as
Callback URL.
Keep the values of the
Application Id, and
Homepage (also known as
Sign-on URL) displayed.
Step 4. Create an application key
Go to the
Keys section and create a new key for your app. You can select the option to create a key with a limited duration or one that never expires.
After the key is saved, a value for the key is displayed once. Save this value for future use.

Select
Required Permissions and then click
Add. Under Select an API, select the appropriate application like
Microsoft Dynamics ERP or
Microsoft Dynamics CRM and grant permissions as shown.

Save your changes.
The tricky part is to extract the OAuth access token and RefreshToken. These are required to persistently authenticate against the Dynamics 365 to execute queries and download data.
To help you we have implemented two utility stored procedures: qua_get_oauth_authorization_url_d365 which Gets an authorization URL from the data source. The authorization URL can be used to generate a verifier required to obtain the OAuth token.
Step 5. Create in Querona a technical connection with basic setup
Create a connection. This connection is technical and is not to be used for production.
Its only purpose is to allow for the utility stored procedure to work.
Choose a descriptive name, for example,
MyDynamics365SalesTechnicalConnection and fill connection properties as described below:
OrganizationUrl = Set this to the organization URL of you Dynamics 365 system.
OAuthClientId = Set this to the client Id / application Id displayed for the app you created in Azure.
OAuthClientSecret = Set this to the value of the key you created in Azure.
Save the changes and keep the connection name for future use.
Step 6. Get the authorization URL
In Querona go to
Query and execute the qua-get-oauth-authorization-url-d365 stored procedure supplied with the proper parameters:
EXEC [qua_get_oauth_authorization_url_d365] 'MyDynamics365SalesTechnicalConnection'
, 'http://localhost:12345'
If the technical connection was set up correctly, the procedure returns the authorization URL. Save it for use in the next step.
Step 7. Navigate to the authorization URL in a web browser and save response URL
Use a web browser connected to the Internet and navigate to authorization URL you got in the previous step.
Login to Azure if necessary and when prompted accept the application permissions presented.
From the response URL, extract the value of
code parameter and ignore the “
session_state” parameter.
Save the value from
code for use in the next step.
Step 8. Get the OAuth access token and refresh token
In Querona go to
Query and execute the qua_get_oauth_access_token_d365 stored procedure.
EXEC [qua_get_oauth_access_token_d365] 'MyDynamics365SalesTechnicalConnection'
, 'http://localhost:12345'
, '<paste here the value of _code_ parameter from previous step>'
The stored procedure returns a result set from which you need to copy the values of
OAuthAccessToken and
OAuthRefreshToken.
Step 9. Create and configure a new connection to Dynamics 365
Create a connection to selected Dynamics 365 service using the dedicated provider and set the following properties:
OrganizationUrl = [ServerName]. Set this to the organization URL of you Dynamics 365 system.
OAuthClientId = [Username]. Set this to the client Id/application Id displayed for the app you created in Azure.
OAuthClientSecret = [Password]. Set this to the value of the key you created in Azure.
OAuthAccessToken = Set this to the value of the **OAuthAccessToken** obtained in the previous step.
OAuthRefreshToken = Set this to the value of the **OAuthRefreshToken** obtained in the previous step.
InitiateOAuth = REFRESH
Step 10. Create a virtual database over Dynamics 365
Create a virtual database over the newly created connection and create a report using your favorite tool.
Import metadata from Dynamics 365:

Create a report in your favorite tool:

That concludes this article. You may be also interested in reading:
Keep virtualizing!