Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago

PowerBI Rest API unable to export PDF with Correct Bookmark

I'm unable to export a report with correct bookmarks when using the Rest API. I am able to get the report, but the correct filters are not set. (This is for an embedded app, and I am using the powerbi javascript library to capture the bookmark state ) I have been able to test my parameters using the "Power Automate" service, and I am able to obtain the report with the correct filters/bookmarks from that service. Here is a code snippet of what I believe to be the culprit:

 

        private async Task<string> PostExportRequest(
            Guid reportId,
            Guid workspaceId,
            FileFormat format,
            IList<string> pageNames,
            PageBookmark bookmark)
        {
            string pageName = pageNames[0];
            try
            {
                var pbiReport = await pbiClient.Reports.GetReportInGroupAsync(workspaceId, reportId);
                var powerBIReportExportConfiguration = new PowerBIReportExportConfiguration
                {
                    Settings = new ExportReportSettings
                    {
                        Locale = "en-us",
                    },
                    DefaultBookmark = new PageBookmark(bookmark.State),
                    Pages = new List<ExportReportPage>() { new ExportReportPage(pageName)},
                    Identities = new List<EffectiveIdentity> { new EffectiveIdentity(username: SPN_ObjectId, datasets: new List<string> { pbiReport.DatasetId }) },
                };

                    var exportRequest = new ExportReportRequest
                    {
                        Format = format,
                        PowerBIReportConfiguration = powerBIReportExportConfiguration
                    };
    
                    var export = await pbiClient.Reports.ExportToFileInGroupAsync(workspaceId, reportId, exportRequest);
                    return export.Id;
            }
            catch (HttpOperationException ex)
            {
                _telemetryClient.TrackException(ex);
                throw ex;
                
            }