{"id":1038,"date":"2021-08-28T14:31:57","date_gmt":"2021-08-28T12:31:57","guid":{"rendered":"https:\/\/www.flip-design.de\/?p=1038"},"modified":"2021-08-28T14:31:57","modified_gmt":"2021-08-28T12:31:57","slug":"continuous-deployment-of-power-bi-reports-with-azure-devops-part-2-live-connection-to-a-olap-cube","status":"publish","type":"post","link":"https:\/\/www.flip-design.de\/?p=1038","title":{"rendered":"Continuous Deployment of Power BI Reports with Azure DevOps (Part 2, Live Connection to a OLAP Cube)"},"content":{"rendered":"\n<p>This is the second part of the series \u201cContinuous Deployment of Power BI reports. This article is dedicated to the deployment of reports which are using Analysis Services (OLAP) cubes as a data source. Here I\u2019m using a Premium (or Premium per user works as well) capacity. I\u2019ve setup a workspace with a deployment pipeline which are responsible to deploy the reports to the other stages. The workspace contains a report which is connected to a SSAS service.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-14.png\"><img decoding=\"async\" loading=\"lazy\" width=\"605\" height=\"330\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-14.png\" alt=\"\" class=\"wp-image-1039\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-14.png 605w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-14-300x164.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-14-500x273.png 500w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><\/figure>\n\n\n\n<p>Next, I\u2019ve configured a deployment rule to modify the data source when the report\/dataset is deployed to the other stages. This works well, but when we have a bigger scenario with deployments of other artifacts, like SQL, AS etc., this must be orchestrated with the other pieces and a pipeline only controlled by the Power BI services will not fit the requirements in the most cases.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-15.png\"><img decoding=\"async\" loading=\"lazy\" width=\"601\" height=\"500\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-15.png\" alt=\"\" class=\"wp-image-1040\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-15.png 601w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-15-300x250.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-15-361x300.png 361w\" sizes=\"(max-width: 601px) 100vw, 601px\" \/><\/a><\/figure>\n\n\n\n<p>So, back to Azure DevOps where you can manage, configure and setup your pipelines for the other artifacts and here, I have created a new pipeline where I\u2019m using the \u201cPower BI Pipeline Tasks\u201d Task.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-16.png\"><img decoding=\"async\" loading=\"lazy\" width=\"605\" height=\"330\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-16.png\" alt=\"\" class=\"wp-image-1041\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-16.png 605w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-16-300x164.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-16-500x273.png 500w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><\/figure>\n\n\n\n<p>In this task you must configure the connection and refer to your newly created pipeline from above. There it is also possible to choose which stage should be affected.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-17.png\"><img decoding=\"async\" loading=\"lazy\" width=\"605\" height=\"330\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-17.png\" alt=\"\" class=\"wp-image-1042\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-17.png 605w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-17-300x164.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-17-500x273.png 500w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><\/figure>\n\n\n\n<p>After the pipeline runs successfully, you can check your connections.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-18.png\"><img decoding=\"async\" loading=\"lazy\" width=\"339\" height=\"151\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-18.png\" alt=\"\" class=\"wp-image-1043\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-18.png 339w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-18-300x134.png 300w\" sizes=\"(max-width: 339px) 100vw, 339px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-19.png\"><img decoding=\"async\" loading=\"lazy\" width=\"345\" height=\"160\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-19.png\" alt=\"\" class=\"wp-image-1044\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-19.png 345w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2021\/08\/image-19-300x139.png 300w\" sizes=\"(max-width: 345px) 100vw, 345px\" \/><\/a><\/figure>\n\n\n\n<p>I think it makes sense, to use Power BI Deployment pipelines for a scenario like this, because you use native functions from Power BI and control this only by DevOps \u2013 but yes, it depends on &#x1f60a;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the second part of the series \u201cContinuous Deployment of Power BI reports. This article is dedicated to the deployment of reports which are using Analysis Services (OLAP) cubes as a data source. Here I\u2019m using a Premium (or &hellip; <a href=\"https:\/\/www.flip-design.de\/?p=1038\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/1038"}],"collection":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1038"}],"version-history":[{"count":1,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/1038\/revisions"}],"predecessor-version":[{"id":1045,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/1038\/revisions\/1045"}],"wp:attachment":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}