Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

tharunkumarRTK

Mastering Power BI Developer Mode

In the company of 'Hastina,' which uses Microsoft Power BI to build insightful dashboards, Drona was the manager leading the Data Analytics department. One day, he called his teammates and informed them about the new Sales dashboard that their company wants to have. He explained to them about the current status of the report development and then he assigned them a few tasks:

  1. Bheema - Add a new page and create a Map visual to represent country-wise-revenue.

  2. Dharma - Connect to the datasource and retrieve 'Order_details' data into the semantic model and add a relationship between 'Orders' table and 'Order_details' table on 'OrderID' column.

  3. Ashwathama - Leverage bookmarks and add a functionality in the summary page which the users can use to change the decimal points.

 

After assigning the tasks, Drona asked for their estimated completion times. Bheema said it would take three working days. Drona was shocked and asked why it would take so long. Ashwathama explained, "Sir, as you are aware, we are a small organisation and we don't have Power BI Premium or Fabric capacity. We only have Power BI Pro licenses, so we can't integrate our Power BI service workspaces with Azure Repos. We also don't have Azure DevOps licenses. So, we can't work in parallel and have to work one after the other."

Drona understood Ashwathama's reasoning but ordered them to take the latest file from the shared folder and work in parallel, completing their tasks by evening. After finishing, they were to upload their PBIX files to different subfolders named after them and notify him in the Teams channel.

Drona then went to his favourite team member, Arjuna, and explained everything. He gave Arjuna the task of integrating the changes into the master file and ensuring the dashboard was ready by the next morning. Drona knew Arjuna loved Power BI and followed every new feature released by Microsoft.

Ashwathama, Bheema, and Dharma completed their tasks. Now, it was Arjuna's turn.

Arjuna opened his Power BI Desktop and enabled the PBIP, TMDL, and PBIR format options in preview features.

Screenshot 2024-07-06 at 11.53.45 AM.png

Then, he opened the master PBIX file and saved it as a PBIP. He did the same with the other files uploaded by his teammates.

Screenshot 2024-07-06 at 11.59.34 AM.png

 

Before starting the integration, he opened the Master PBIP folder with Visual studio and examined each and every file.

 

Screenshot 2024-07-06 at 12.19.41 PM.png

 

Integration

  1. Arjuna wanted to integrate Bheema's work into the master file, He opened master PBIP folder and Bheema's PBIP folder in two windows. Bheema's task was to add a new report page with Map visual, Arjuna has opened "<PBIP Folder>/<ReportName>.Report/definition/pages" folder

Screenshot 2024-07-06 at 12.40.06 PM.png

 

He copied the new page folder in Bheema's PBIP folder to the Master PBIP folder. He is also observed that there is a file called 'Pages.json' which has pageOrder and activePageName information.

pageOrder signifies the order of all the report pages and activePageName represents the page which was opened while saving the file.

 

Screenshot 2024-07-06 at 1.11.07 PM.png

 

Arjuna has updated the Pages.json file in master PBIP folder with the details of the new page folder that he copied from Bheema's PBIP folder. He saved all the changes and opened the master '.pbip' file and he could see the new page.

 

Screenshot 2024-07-06 at 1.28.35 PM.png

 

2. Now Arjuna wants to integrate Dharma's work into the master PBIP folder. Dharma task was asked to add a new table 'Order_details' into the semantic model and add a relationship between that table and 'Orders' table over 'OrderID' column. Arjuna has opened Dharma's PBIP folder and navigated to

"<PBIP Folder>/<ReportName>.SemanticModel/definition/pages" folder. He identified the newly added table in Dharma's PBIP folder

 

Screenshot 2024-07-06 at 3.19.36 PM.png

 

He copied 'Order_Details.tmdl' file into the master PBIP folder. Now, to add the relationship, he opened the 'relationships.tmdl' file and observed the differences.

 

Screenshot 2024-07-06 at 3.29.28 PM.png

 

After adding the relationships into the master PBIP folder, he opened another file 'diagramLayout.json'. Now you might be wondering why Arjuna opened this file. As the name suggests, 'diagramLayout.json' file contains the information of semantic model view layout, which means the coordinates and size of tables placed in the Model view.

 

Observe the highlighted part on the left, you will find the coordinates and size of 'Key Measures' table. You can observe one more thing, the details of 'Order_details' table are missing on the left side, Now Arjuna will be copying that information from the Dharma's file which is on the right.

 

Screenshot 2024-07-06 at 3.44.13 PM.png

 

To verify the integration, he opened the master pbip file. He saw few warning messages, considering he added a completely new table and made changes to the semantic model. He need to refresh the file data once to avoid such warnings.

 

Screenshot 2024-07-06 at 4.07.25 PM.png

 

After the data refresh, he opened the model view and he could see the 'Order_details' table and also the newly added relationship. It is placed as per the coordinates copied from Dharma's file. 🙂

 

Screenshot 2024-07-06 at 4.10.26 PM.png

 

3. Now it's time for Arjuna to integrate Ashwathama's work into the master PBIP folder. Ashwathama's task is to add a toggle to the main page using which users can change the decimal points. Ashwathama leveraged bookmarks to add this functionality.

Arjuna opened Ashwathama's PBIP folder from VS and navigated to

"<PBIP Folder>/<ReportName>.Report/definition" folder. He identified all the bookmarks in Ahwathama's folder and copied them to the master PBIP folder

 

Screenshot 2024-07-06 at 4.20.51 PM.png

 

Arjuna is aware that Ashwathama has also added bookmark navigator into the first page, so to copy the bookmark navigator element, Arjuna opened

"<PBIP Folder>/<ReportName>.Report/definition/pages/<Page - 1 ID>/visuals" folder. He identified the newly added visuals in page 1 along with the bookmark navigator.

 

Screenshot 2024-07-06 at 4.29.43 PM.png

 

He copied all the visuals added by Ashwathama into master PBIP folder and opened the master pbip file just for the final validation. He could see the bookmark navigator in page 1.

 

Screenshot 2024-07-06 at 4.36.54 PM.png

 

Points to remember:

This article is to explain you about the different files in PBIP format and how you can leverage it with limited resources. I would recommend you to use git integration feature and build the CI/CD pipelines for smooth integration between different environments.

I would like to thank Rui Romano and Microsoft Power BI team for bringing this feature.

 

Hope you guys learned something new today. Let me know your thoughts in the comment section.