I am building a custom visual that needs to know information about the report it is hosted in and its state. For instance I need the following:
- Username of the current user running the report
- The current filters selected in the report
- The state of any other interactions that may cause the data in the current report to change
For instance, say I want to display the following message in a report (using a custom visual):
"Hi <username>, you have selected <filter 1> org unit and filtered by dates <date filter value>".
This is ofcourse a dummy example showing the information I need.
Is this possible?
I don't know anything specifically about Custom Visuals in this context, however, the way this is normally done with standard visuals is to turn off the standard title and to display a measure whose value is dynamic text within a single item card placed above the report. You use a series of IF and HASONEVALUE statements in the measure definition to control the text output depending on the slicer filtering or cross-filtering that has been applied by the user.
As I understand it, custom visuals deliver cross filtering the same as standard visualisations.
If it absolutely has to be integrated from within your custom visualisation, is there anyway to include such a text measure in what is passed to the visualisation?
Hope that helps
Will Thompson shows how at about 28 minutes in this presentation from Data Insights
@itayrom it appears that the powerbi.session.userInfo may not work: https://github.com/Microsoft/PowerBI-visuals/issues/412 I'll try this out later today. Thanks for the tip.
Thanks @Brian_M for those resources unfortunatelly it appears that custom visuals do not have access to DAX environment so I cannot use the HASONEVALUE solution.
The visual I am writing actually uses this information (user, filters) to save data against an external DB. We then retreive that information when the user has the same filter values. So its not as simple as just a text field (sorry I was just using that as an example).
Oh, I see it is yet another feature blocked by the custom visual sanboxing. At the moment, there are two known official(And not very satisfying) ways to overcome this issue:
1. Using the temporary "unsandboxing" flag(adding "?sandboxVisualsEnabled=false" to pbi-service url).
2. Uploading the visual to the custom visuals gallery(because all visuals in the gallery have their code reviewed by Microsoft).
As noted by Bashir from the PowerBI Platform Team in the following post:
Regerding the first matter, the info you are asking for is accesible via the userInfo object in the powerbi.session module(powerbi.session.userInfo). It has properties that provide you with the current user's username, given name, surname, etc...
As for the other two, I'm yet to find a way to get that information. I don't think there's an interface for it, though I wouldn't mind being corrected.