I have developped a master finance PowerBI report for my company where we can view all the finances for each department's budget/actual expenses. Now working with the finance team we want to roll them out to each team filtered to each department (while the master copy will be accessed only by the finance department and will have a view of all departments). To do this I plan on just setting hard filters. However there are a number of best practice and maintenance questions that arise out of this piece of work that I would like to know about. I think there are 3 main points covered by this that I have questions about.
1.Dataset maintenance. – Proposed solution is Dataflow
2. Report maintenance - I was planning to make each filtered report a separate report for each deparment, however this creates lots of version control/extra maintenance and much more work (there are 10 departments).
3. Dataset and Report permissions - we only want departments to have access to their own reports and data.
1. best practice is to use shared Datasets, ideally Certified.
2. Certified Shared Datasets
3. Shared Datasets, RLS (if needed) and app access control. Yes, separate workspace/app per team (but they can all use the shared dataset)
yes, you can connect to dataflows from any dataset as long as the dataset developer has access to the dataflow.
BTW, your questions do not really cover version control. That is a different topic. Look into Deployment Pipelines, ALM Toolkit, or a manual solution for git integration.
Okay you have answered the data questions. But in terms of version control and report maintenance I don't think you have covered this.
How would I avoid having 10 separate reports per teams and not having to download and edit the report when a visual needs editing. This is what I mean by version control: if I make a change to one report, I will have to download all other filtered versions of the same report and bring them up to the same version through manual edits, there does not seem to be a nice VCS solution here?
Or are you proposing never to fragment it into 10 reports via RLS?
What I am telling you is that the situation is much worse than you realize. Power BI is geared towards single developers. It has no mechanisms for collaborative development or business continuity planning. You have to create these processes yourself.
I guess I have to agree with you there, I am slowly coming around to the same conclusion. It seems from according to the PowerBI documentation here: https://docs.microsoft.com/en-us/power-bi/guidance/rls-guidance , that under the section header"Avoid using RLS" that they weigh out the pros and cons of multiple datasets/workspaces vs RLS and in fact say to avoid using RLS too. Neither solution seems much better than the other.
The one thing we didn't talk about is UX. RLS is poison for UX. It has its applications for truly sensitive and compartmentalized information, but for the vast majority of use cases it is counterproductive. I have replaced RLS with default filters in most of my projects. Our users are mature enough to decide if they want to focus on their specific data, or if they want to see the bigger picture. I don't need to nanny them.
Yes I know what you mean. But what would you do in the case where your users are the finance department who want to have the master version of the finance report and then they want you to distribute copies of the report with filters on it for the "Engineering", "Sales", "Innovation" teams but not allow these teams see each other's finances and budgets. This isn't a case where we are trying to nanny our stakeholders but rather it is a requirement that from the client that they don't want some users to see other users' reports.
You are right, it makes sense in a finance/compensation environment. Thankfully not something I have to deal with.
I would stil try to use different workspaces/apps rather than RLS. One workspace for you to play with the data model, and one workspace each for the different departments to see "their" data out of your shared dataset.
Just to update you, so that you get to learn something out of this. This documentation is the best solution we think will work: https://docs.microsoft.com/en-us/power-bi/collaborate-share/service-url-filters . We will embed these service urls in the team's spaces in dynamics.
We tried to use report url filters but found them to be very fragile, and ultimately not working in our environment (We mostly share app links, and are strongly discouraging developers from sharing report or dashboard links. Sharing links from workspaces is grounds for immediate and prolonged ridiculing). I'll look at them again, maybe their stability has improved.
Check out a full recap of the month!
Check out the winners of the recent 'Can You Solve These?' community challenge!
Join us for an in-depth look at the new Power BI features and capabilities at the free Microsoft Business Applications Launch Event.