Since starting to use Power BI I have been advocating the following 'basic' model
However. You can also create reports within Power BI Service. This is mentioned within the certification route for DA 100 Analysing Data with Power BI. Which makes things a little more confusing and I have been asked on lots of occasions. "If you can do everything in Service, what is the point of using Desktop?"
This post will hopefully answer that question.
Creating Reports in Service
First of all lets have a look at how creating a report would work in Service.
Within the Adventureworks Workspace, Click on New and go to Report
Now Select a dataset to create a report
You are shown your list of datasets that are available to you so immediately its clear what this route could be used for:
The Report Analyst. the DAX and Data model have been built and the analyst can simply add visuals over the dataset created
Within service, a very basic report is created. As the analyst I realise that I want more DAX
If you click on ... to get to the options against a table, You cant create DAX.
So if you create your reports in Service you cant create DAX.
You also cant do anything with the data model if required
And you cant go to the data pane like you can in Desktop
Data and Model aren't available like they are within desktop.
When you are dealing with a larger model, its always useful to be able to flick across to the model area to view your model, to get a good idea of what you are working with. Because of this, its not recommended to work with the Reports in Service if you look at the data model as a guide whilst creating reports.
Saving your reports in Service
Continuing on with the process. Click Save
The Adventureworks report is now added as content. Lets have a look at Lineage by changing the View to Lineage.
The new report is now up but this leaves some confusion. Which reports are maintained within Desktop and which reports aren't? There is no way of knowing. Both the above reports look the same.
Within the Adventureworks report which was created in desktop, you can go to Edit
and Download report (which is currently still in Preview)
Obviously you would want to get the current file from the owner of that file but this is one way of generating pbix file is behind the report.
You can do the process above with the Service created report. This increases complexity and possible confusion. How do we know as users what reports have a pbix file and which do not?
The only answer is to go to the Lineage and find the contact to ask
Editing a Report in Service
Before looking at editing a report, lets get a quick overview of Roles in Power BI
The viewer role isn't set in the Workspace anymore. This is best done within the App to allow report readers to view content
It seems the only reason we have viewer if you wanted to test what your report users can do within the workspace.
They can only view content and set their own personal bookmarks. Create comments etc. they cant edit the content.
the contributor role is the developer role.
Publish your report into the workspace
Edit the content in the workspace if required by building dashboards
Delete any content within the workspace
You get access to all the workspace objects and can analyse in Excel etc
At contributor level you cant publish into an app. Only the Member or Admin can do this.
Members can do all the actions of Contributors but they can also publish and update apps. this essentially allows the member to push content into the production area. (Bearing in mind that Premium Power BI Pipelines allow you to fully manage your Lifecycle with Dev Test and production workspaces)
The Admin has full access to the workspace. In addition to Member actions they can add more admins and more users and delete the workspace.
Issues with Editing Content
For this example, I am a Contributor within someone else's App Workspace
Contributor allows you to Edit, So without letting the owner of the report know, I add a new page with a visual and Save.
In the meantime, the report creator decides to update and republish their report from the pbix file.
Once republished by the pbix owner all my work is gone.
This is another reason to be very careful when editing reports in Service. If you intend to continue to update your pbix file, anything created in Service should be moved into the pbix before republishing, which relies on your business governance.
The only data set that cant be added to a pbix file is a real time streaming data set. data is added to a temporary cache so it expires and you can only use streaming visuals for this type of streaming data set.
Otherwise, with all other data sets, the recommendation is to create a file within Power BI desktop.
This is a great visual to check if you are thinking of editing in Service
Even then you need to think about usage and if the report has a pbix file underneath it.
Personally, it creates too much added complexity when creating and editing reports in service. if you have contributor access you should have Power BI desktop.
<p>lets have a final look at types of Power BI User
Your central BI dev team should be working with Power BI Dataflows in Service where possible to separate the transformations into Service away from the model and the DAX. they should be creating reports in desktop.
Your Power users will also be using Desktop and may also be taking advantage of promoted dataflows.
Consumers should be accessing from an App only.
The only use case of the edit could be at analyst level, where the analyst is taking advantage of a promoted or certified data set and building out from what is there (With contributor role)
At this point, its recommended to come up with some governance here. Is this use case ok within your company, OR should all reports have an underlying file created in Desktop?
The choice is at individual company level but we prefer to ensure that desktop is used and reports are not created or edited at Service Level. That we we can put governance in place on the pbix files themselves and be in a better position at managing the full scope of Power BI.