Closed ArndtVissing closed 6 months ago
I believe this is a known limitation of DirectLake currently, that you cannot add RLS (remember, DirectLake is still a preview feature). You should reach out to Microsoft to make sure.
thanks @otykier I have added normal RLS without issues using DirectLake. Where the DAX filtering is simple. If you have a dimension called Customer and you make a role and filter that Customer = A in the RLS it works without issues.
It is only when introducing more complex DAX in the RLS logic that I get this error. I have also tried to raise it to the Microsoft for them to confirm if this is a DirectLAke limitation currently but wanted it here as well if it was related to the way tabular editor 3 deploys to the service.
TE3 does not perform any kind of validation of the RLS expressions. The error message you see is returned from Analysis Services/Power BI during deployment. You could also try to export the TMSL script from the last page of the Deployment Wizard in TE3, and then use SSMS to execute that TMSL script. You will most likely get the same error, but SSMS may include more information to let you know why it doesn't work.
@otykier Ya it is the same error when trying to deploy from SSMS. I have raised the problem iwth microsoft on the CAB forums. hopefully they fill fix this in the future :) thanks
Description
I have a model that follows the guide here
[Dynamic Row Level Security with Profiles and Users in Power BI : Many-to-Many Relationship - RADACAD]()
essentially using DAX instead of Many-to-Many relationship to avoid the performance problems that M2M causes. I have tested my model in Power BI desktop with sample data and also the setup is working in AAS. However, when I replicate the same RLS in Fabric, using Tabular Editor 3 and trying to write back the model, I get an error as per attached screenshot
I have tried removing my DAX code inside the Roles, and then the model deploys without issues. So it seems to me that some functions, when used inside the RLS Roles, causes problems when deploying to the service.
The RLS DAX is like this
'Brand'[Brand] IN SELECTCOLUMNS( FILTER( 'rls_brand', RELATED(RLS_Users[RequestorEmail])=USERPRINCIPALNAME() ), "Profile" ,'rls_brand'[brand] )
Tabular Editor 3 Version
3.11.0
Screenshots
Steps to Reproduce
No response
Expected behavior
No response
Crash Report
No response
Windows Version
Windows 11