PBI Extension Documentation for Magento 2

General concepts

It is important to understand how Power BI API is working in order to know how to organize proper development of reports and dashboards with possibility of making changes in the future and to be able to keep data delivery to dashboards and reports stable.

The provided extension was developed with intention to simplify usage of the API as much as possible. From one side, the goal is to protect users from making mistakes that may lead to broken reports or dashboards. From another side, we want user to be able to deliver data to Power BI as easy and fast as possible. This was not a trivial issue due to limitations of Power BI API.

For these reasons, we developed a compromised solution based on Temporary and Permanent datasets.

In this chapter we first go through basic terminology, part of which is taken from Power BI. Next we describe our concepts of temporary and permanent datasets.


Basic terminology

In order to explain the concepts, we start from covering some basic terminology used in the extension and in the user guides.

Power BI Report

A Power BI Report is a visual representation of data from a Power BI Dataset.

More information on Power BI Reports could be found in Power BI documentation: https://powerbi.microsoft.com/en-us/documentation/powerbi-service-reports/

Power BI Dashboard

Power BI Dashboard is a set of Power BI Dashboard Tiles. Unlike Power BI Report, Dashboard combines visual representation of data that may come from different datasets. For example, you may display KPIs calculated based on a dataset coming from Magneto 2 store with KPIs based on a dataset coming from Salesforce, Google Analytics or other sources.

More information on Power BI Dashboards could be found in Power BI documentation:


Power BI Dashboard Tile

Power BI Dashboard Tiles are single data visualizations created using a single dataset and placed on a dashboard.

More information on Power BI Dashboard Tiles could be found in Power BI documentation:


Power BI Dataset

More information on Power BI Dataset concept could be found in Power BI documentation:


Power BI Table

Datasets in Power BI consist of tables. Tables have set of columns with specific data types and data rows. In general, each Magento Report (without summary rows) or Magento grid represents a data that might be considered as a table once imported into Power BI.

Load Profile

Load Profile is a term specific for the Power BI Integration extension for Magneto 2. Load profile associates portion of data in Magento with a Power BI Table. Load profiles the same as Power BI Tables form a Dataset.

In particular, once Magento backend user creates a Load profile based on a Magento Report, he creates an association of Magento Report with Power BI Table. Such Load Profile stores selected filters and controls specific for the report. It also stores a name for the Power BI Table. Under this name it will appear as a Power BI Table in the Power BI Dataset.

Load Dataset

Load Dataset is another term specific for the Power BI Integration extension for Magento 2. Load Dataset associates set of Load Profiles with a Power BI Dataset. Load Dataset might be Temporary or Permanent.

Dataset Publishing

Publishing of the dataset can be done. Publishing for permanent dataset happens only once.

Dataset re-publishing

Re-publishing of the dataset happens when some new tables have to be added to the Power BI Dataset or table names have to be modified. A modification of columns does not require re-publishing. Current implementation supports re-publishing only through delete/create operations. It means that old dataset should be deleted from Power BI and new dataset has to be published again. Permanent Load Datasets cannot be re-published.


Loading of Load Profile updates the data or Power BI Table columns in a dataset. Loading of Load Dataset is loading of all Load Profiles included in the dataset. It does not change the amount of tables in dataset or their names. Any Load Profile or Load Dataset can be loaded multiple times. If Load Profile is assigned to a Permanent Dataset, it can be loaded only after publishing of the dataset. If Load Profile is assigned to a Temporary Dataset, dataset will be published automatically if needed.

TEMPORARY Load Dataset

Permanent Load Dataset is a Load Dataset that can be published or reloaded without any restrictions. The word temporary means that it users should not expect this dataset to persist on Power BI side. Power BI API does not allow you to change the structure (amount of tables or their names) of already created dataset. Every time, dataset changes its structure, it will be deleted from Power BI and new dataset instance will be published.

Once datasets is being deleted in Power BI, all reports and dashboard tiles based on this dataset will be deleted. For that reason temporary datasets should never be used to develop reports and dashboards that intended to be used in the future.

By default, Temporary Load Dataset has name PBI_TEMP. Under this name users may see the dataset in Power BI Service.

PERMANENT Load Dataset

Permanent Load Dataset is a Load Dataset that can be published only once. After that it should not be possible to make modifications to the Load Dataset or its structure (amount of tables and their names).

Permanent Load Dataset helps to make sure that published Power BI Dataset will stay stable and can be used for Reports and Dashboards creation.

If you want to republish it, you will need to delete dataset manually in Power BI Service. But once you do so, you may delete reports and tiles based on that dataset.

To add more tables into Permanent Dataset, you need to create new Permanent Dataset with another name and newly create all related reports and dashboards. For that reason, it is better to plan your dashboards and reports development in advance and start with dataset that contains all data that will be needed.

Bringing it all together

Components diagram and main relations of Power BI Magento Extension


Image 1. Components diagram and main relations.

On the components diagram displayed on Image 1 we brought together items described above. Load Profile can be created based on a Magento Report and keeps the reference to that report to be able to retrieve the data at any time. Load Profile is assigned to Load Dataset. Load Profiles and Load Datasets are then being translated into Power BI Tables and Power BI Datasets. Based on Power BI Datasets users then can create Dashboard and Reports. Reports can be associated only with one dataset. On the other side, Dashboards can have associations with multiple datasets and display data from multiple data sources.