Power BI is a unified self-service and enterprise analytics solution that allows you to visualize your data, and share insights across your organization.
FlexDeploy simplifies the deployment automation of Reports and Semantic Models across workspaces. It works seamlessly with workspaces of any capacity, be it Pro or Premium.
This blog will help you understand why FlexDeploy is an ideal choice for implementing DevOps and Continuous Delivery with Power BI service.
FlexDeploy’s Azure Power BI Support
FlexDeploy provides an Azure Power BI plugin, offering out-of-the-box support. This means no more writing, testing, and maintaining scripts, or doing manual tasks. With the Power BI Plugin users can:
- Integrate with Power BI to export and import Reports and Semantic Models including LIVE reports and shared semantic models.
- Rebind a specified LIVE report to a semantic model of user’s choice, from the same or a different workspace.
- Run an on-demand refresh of semantic models to reflect the latest data for correct visualization in reports.
Here is a visual representation of how these features are achieved by each plugin operation:
Deployment of reports
FlexDeploy enables the migration of Reports and Semantic Models from one workspace to another, and from Git to a target workspace. Users have full flexibility to opt for both options.
However, as per standard best practice, we will depict how we can grab the reports from a workspace, move them to Git, and then deploy them to another workspace. This will comprise a two-step process.
Step 1: Automate check-in of development Power BI reports to SCM
FlexDeploy enables the automated check-in of Power BI reports from the source Power BI workspace. The exported reports (.pbix) will be copied to the corresponding SCM Repository.
FlexDeploy Bot or User will discover files from the source Power BI workspace and then sync them to the GitHub Repository.
The operation exportContents is responsible for getting the package files exported from the Power BI source workspace.
This is the operation and the inputs required:
Here is the source Workspace from where we will export the Reports:
With FlexDeploy’s powerful package-based build feature, the operation can selectively export.
This is the general flow of exporting the reports from Power BI Workspace and syncing them to the GitHub Repository
- Clone the Git repository where we want to sync the reports
- Export reports from the Power BI workspace
- Add the exported reports to Git
- Commit the changes
- Finally, push the changes to our Repository
This is how Git looks after the reports have been exported from the workspace and pushed to Git.
The user will now have full control over the exported files and these can be moved across different feature branches in Git as well as per changes planned for deployment.
The next step is to deploy these files to respective target environments.
Step 2: Build the Reports from Source Control and Deploy to Power BI Workspace
In this process, we will discover reports from SCM, and then initiate the Build workflow, where files (.pbix) will be stored as artifacts. In the Deploy workflow, we will import the reports (Files stored as artifacts) to the Power BI workspace.
FlexDeploy Bot or User will discover files from the GitHub Repository to the Power BI workspace.
The operation importContents is responsible for getting the package files exported from the Power BI source workspace:
Execution:
Post Deployment, the Target workspace will have all the reports we imported previously.
The deployments are always incremental, which means if there are some different named reports already existing in the target workspace, the next execution won’t remove those.
Apart from these two main export-import functionalities we also have a few other ad-hoc offerings to help users in managing reports in the Power BI workspace more efficiently.
Refreshing Semantic Model
If we require an on-demand refresh of the specified Semantic Model in a workspace, we can use the refreshSemanticModel operation.
The refreshSemanticModel will have the Semantic Model name/id as an input, along with the refresh type and the commit mode.
Rebind Report to a Semantic Model
Similarly, to rebind a LIVE report to a shared semantic model, we can use the rebindReport operation.
Conclusion
In this blog article, we have outlined the steps to configure FlexDeploy as an automation solution for deploying Azure Power BI reports across various workspaces. With FlexDeploy’s release mechanism, we can transfer reports from one workspace to higher workspaces and eventually the Production Workspace with proper approvals and quality checks.