Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hi,
I understand that PowerBI records name of all the users who are logged into the app. I am using RLS on username
I want to develop a greeting where I greet them with their name such as:
Good Afternoon Usman
Is it possible?
I found this solution but it doesn't work.
Greeting1 = VAR user = USERNAME() VAR display = LOOKUPVALUE(Table1[User],Table1[Email],user) VAR hour = HOUR(NOW()) VAR minute = MINUTE(NOW()) VAR prefix = SWITCH( TRUE(), hour<12,"Good morning ", hour>=12 && hour<17,"Good afternoon ", "Good evening " ) RETURN CONCATENATE(prefix,display)
USERNAME() has the domain as a prefix, do you account for that in your table?
https://docs.microsoft.com/en-us/dax/username-function-dax
you can also try with USERPRINCIPALNAME()
https://dax.guide/userprincipalname/
Proud to be a Datanaut!
Both functions that you have mentioned doesn't return me any family name. I am little unsure if it can actually be retrieved?
I assumed that you have some dictionary table that allows to find the name based on the USERNAME() or the other function. Is that correct?
Usernames don't have to be based on the names/surnames, so returning the id seems the logical solution here
Proud to be a Datanaut!
Okay this makes sense, so in that case, I have following columns in my dataset.
Name | Companyemail |
John Smith | john.smith@xyz.com |
Brown Fox | brown.fox@xyz.com |
Given the above table, can we do that it searches for Username in company email, and if matches, display Name? If yes, what would be the dax?
what format does USERPRINCIPALNAME() return for you? I assume it would be something like user@xyz.com
If that's the case then this should work:
HelloUser = "Hello " & CALCULATE ( FIRSTNONBLANK ( 'Table'[Name], TRUE ), 'Table'[Companyemail] = USERPRINCIPALNAME () )
Proud to be a Datanaut!
Thanks for helping out, however it doesn't seem to be working. It only returns "HelloUser", that's all, and yes userprincipalname returns me email such as user@xyz.com.
Btw I am using Username for Dynamic RLS and not userpricipalname
Hi @Anonymous , this is probably long ago solved however adding some value for other searchers.
@Stachu solution working well over here, but a small alteration needed on your key.
Recommend using UserPrincipalName() instead for easier consistency
Username() value output is a little volatile as PBI Service will revert it to [username][email], whereas desktop will display as [domain][username].
it cannot return HelloUser beacause that's the measure name - have you added this syntax as a new measure? It's completely unrelated to RLS
Proud to be a Datanaut!