Forum Discussion

onepowerbiguy's avatar
onepowerbiguy
Frequent Visitor
3 years ago
Solved

Embed a paginated report with RLS and CUSTOMDATA dataset shows error regarding CSDL.

I want to embed a paginated report into my client portal. I'm using a Service Principal to generate the embed token. I have a Dataset with RLS and using CUSTOMDATA I would like to pass the Categories...
  • onepowerbiguy's avatar
    3 years ago

    I solved the puzzle. The thing is, if you want to use paginated reports, the dataset can't use RLS. Instead, to achieve RLS-like behavior, you should use the username attribute in the embedToken request and the built-in field 'User!ID' in the report builder expression.

     

    Here's an example of an 'embedToken' request:

    Endpoint: https://api.powerbi.com/v1.0/myorg/GenerateToken

    {
    	"datasets": [
        {
          "id": "dataset_with_no_rls_id",
          "xmlaPermissions": "ReadOnly"
        }
      ],
     "reports": [
     {
      "id": "report_connected_to_dataset_id"
     }
     ],
     "identities": [
     {
      "username": "constraint_value",
    	"reports": [
    		"report_connected_to_dataset_id"
    	]
     }
     ]
    }

     

    Also, it's important to note that in order to use this approach, you must connect to the dataset using the XMLA endpoint. Otherwise, it won't work.