Forum Discussion
USERNAME() returning weird e-mail format
- 7 years ago
Thanks for the tip on using gmail. I was able to test with the "live.com#[email protected]".
USERPRINCIPALNAME() returns the same "live.com#[email protected]" as USERNAME(). I saw some online documentation saying the same, that USERNAME() behaves differently on the PowerBI Service than on Desktop, but is the same as USERPRINCIPALNAME().
It looks like my table entry of "live.com#[email protected]" does work though, so that is a workaround if needed, but very clunky. So what I did was strip that Azure prefix out before the compare to get it to work. Here's the code I use to limit the Country view:
[Reseller_Country] =
LOOKUPVALUE(
ReportUsers[Country],
ReportUsers[Microsoft Account],
MID(USERNAME(),
FIND ("#", USERNAME(), 1,0) + 1,
LEN (USERNAME())- FIND("#", USERNAME(), 1,0)
),
ReportUsers[Country],
[Reseller_Country]
)Now I don't have to worry about any random prefixes being added to the username e-mail address by Azure. Thanks for the help.
- 7 years ago
I guess you can't put e-mails into the message body. I just posted a reply that disappeared. Sucks.
So basically, I've determined there are 3 different e-mail formats that get return: 1) regular, 2) live.com# prefix, and 3) abc_workmail.com#EXT#(at)onmail.mail.com
It's a pain to figure out which one is going to show up, so I decided to just fix the e-mail back to regular and not have to mess with the special characters inserted. Here's an example of my formula used in the RLS role:
[Region] =
VAR findpound = FIND("#", USERPRINCIPALNAME(), 1, 0)
VAR CleanUserName = MID(USERPRINCIPALNAME(),
FIND ("#", USERPRINCIPALNAME(), 1, 0) + 1,
LEN (USERPRINCIPALNAME()) - findpound)
VAR CleanedUserName = IF(LEFT(CleanUserName,4)="EXT#",
SUBSTITUTE(LEFT(USERPRINCIPALNAME(),
findpound-1), "_","@"),CleanUserName)
RETURN
LOOKUPVALUE(
Region[Region],
Region[Country],
LOOKUPVALUE(
ReportUsers[Country],
ReportUsers[Account],
CleanedUserName),
Region[Region],
[Region]
)
Thanks for the tip on using gmail. I was able to test with the "live.com#[email protected]".
USERPRINCIPALNAME() returns the same "live.com#[email protected]" as USERNAME(). I saw some online documentation saying the same, that USERNAME() behaves differently on the PowerBI Service than on Desktop, but is the same as USERPRINCIPALNAME().
It looks like my table entry of "live.com#[email protected]" does work though, so that is a workaround if needed, but very clunky. So what I did was strip that Azure prefix out before the compare to get it to work. Here's the code I use to limit the Country view:
[Reseller_Country] =
LOOKUPVALUE(
ReportUsers[Country],
ReportUsers[Microsoft Account],
MID(USERNAME(),
FIND ("#", USERNAME(), 1,0) + 1,
LEN (USERNAME())- FIND("#", USERNAME(), 1,0)
),
ReportUsers[Country],
[Reseller_Country]
)
Now I don't have to worry about any random prefixes being added to the username e-mail address by Azure. Thanks for the help.
I would suggest using the USERPRINCIPALNAME to keep it consistent!
- AndrewSEA7 years agoAdvocate II
True, using USERPRINCIPALNAME() lets me test e-mail addresses on Desktop as well. Thanks.
- GilbertQ7 years agoSuper UserYeah happy to assist
- AndrewSEA7 years agoAdvocate II
Well now I'm getting another variant from other users.
It's returning "johndoe_abccompany.com#EXT#@microsoft.onmicrosoft.com" where the user's e-mail is [email protected]
Seems random on which format to use. Frustrating to design something that works for everyone. Perhaps the USERPRINCIPALNAME() function needs to be fixed.