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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

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
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

February 2024 Update Carousel

Power BI Monthly Update - February 2024

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

Fabric Career Hub

Microsoft Fabric Career Hub

Explore career paths and learn resources in Fabric.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.