Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
kmaranto
Frequent Visitor

Dynamic RLS DAX Syntax Errors - IF Function

I am trying to create a DAX expression for a Dynamic RLS design but keep receiving a syntax error.

 

The two tables used in the expression are a Users_tbl and a Permissions_Table.  The Users_tbl has a 1 : Many relationship with the Permissions Table.

kmaranto_0-1675305903910.png

 

Filters are applied based off of the values in the Permissions_Table[Senior Manager_RLS] column.

 

Several users have the word "None" listed in the [Senior Manager_RLS] column since I want those users to be able to see all data in the dashboard (no filters applied).  For everyone else, I want them to see only the levels I have assigned in the Senior Manager_RLS column.

 

I've been trying to implement an if statement to remove the filters if the Permissions_Table[Senior Manager_RLS] column contains "None" but keep receiving a syntax error on 'if' (I've tried both 'IF' and 'if' both returning the same syntax error).  Here is the complete code:

 

var temp_table = FILTER(Permissions_Table, Permissions_Table[Email]=USERPRINCIPALNAME())

if(temp_table[Senior Manager_RLS]="None",
TRUE,
[Email]=USERPRINCIPALNAME()
)

 

Any help would be much appreciated!

1 ACCEPTED SOLUTION
amitchandak
Super User
Super User

@kmaranto ,

try like

if(Maxx(temp_table,temp_table[Senior Manager_RLS]) ="None",
TRUE,
[Email]=USERPRINCIPALNAME()
)

 

or

 

Maxx( FILTER(Permissions_Table, Permissions_Table[Email]=USERPRINCIPALNAME()),[Senior Manager_RLS]) ="None" || [Email]=USERPRINCIPALNAME()

View solution in original post

2 REPLIES 2
kmaranto
Frequent Visitor

Thank you very much for the help @amitchandak .

 

I'm still learning DAX so I very much appreciate that you included both a modified version of my code in your first solution and then also added a more streamlined version with your second.

 

Strangely, when using the code from the first solution and including the variable declaration, I was still receiving a syntax error on the if function so I couldn't actually get that one to work.  I'm not sure if that's a bug or not but, for anyone finding this in the future with a similar issue, the second solution works without error.

 

Thanks again for your help!

amitchandak
Super User
Super User

@kmaranto ,

try like

if(Maxx(temp_table,temp_table[Senior Manager_RLS]) ="None",
TRUE,
[Email]=USERPRINCIPALNAME()
)

 

or

 

Maxx( FILTER(Permissions_Table, Permissions_Table[Email]=USERPRINCIPALNAME()),[Senior Manager_RLS]) ="None" || [Email]=USERPRINCIPALNAME()

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.