Forum Discussion

FXFelix's avatar
FXFelix
Resolver I
1 year ago
Solved

API with Powershell : Exporting report with bookmark

Hello community,

 

I can't figure how to make a Powershell API calls to export a report with bookmarks...

 

This piece of code :

 

 

 

$exportBody = @{
   format = "PDF"
   powerBIReportConfiguration = @{
      settings = @{
         locale     = "fr-FR"
      }
   }
} | ConvertTo-Json -Depth 10

$response = Invoke-RestMethod -Method Post -Uri $url -Headers $headers -ContentType "application/json" -Proxy $proxyUri -ProxyUseDefaultCredentials -Body $exportBody

 

 

 

... is working.

 

But as soon as I try to add a specific page/bookmark, I get an error 400 Bad request :

 

 

 

$exportBody = @{
   format = "PDF"
   powerBIReportConfiguration = @{
      settings = @{
         locale     = "fr-FR"
      }
      pages = @(@{
         pageName = "81438a987ba809f63572"
         bookmark = {name = "0bb3e333319e8ad6c06c"}
      })
   }
} | ConvertTo-Json -Depth 10

$response = Invoke-RestMethod -Method Post -Uri $url -Headers $headers -ContentType "application/json" -Proxy $proxyUri -ProxyUseDefaultCredentials -Body $exportBody

 

 

 

 

Any idea ?

 

Thanks in advance

  • $exportBody = @{
       format = "PDF"
       powerBIReportConfiguration = @{
          settings = @{
             locale     = "fr-FR"
          }
          pages = @(@{
             pageName = "81438a987ba809f63572"
             bookmark = @{name = "0bb3e333319e8ad6c06c"}
          })
       }
    } | ConvertTo-Json -Depth 10
    
    $response = Invoke-RestMethod -Method Post -Uri $url -Headers $headers -ContentType "application/json" -Proxy $proxyUri -ProxyUseDefaultCredentials -Body $exportBody

     

    But this code works ğŸ˜ƒ

     

    There was a missing @ before the bookmark.

3 Replies

  • Try the same in the API sandbox. check the syntax there.

  • $exportBody = @{
       format = "PDF"
       powerBIReportConfiguration = @{
          settings = @{
             locale     = "fr-FR"
          }
          pages = @(@{
             pageName = "81438a987ba809f63572"
             bookmark = @{name = "0bb3e333319e8ad6c06c"}
          })
       }
    } | ConvertTo-Json -Depth 10
    
    $response = Invoke-RestMethod -Method Post -Uri $url -Headers $headers -ContentType "application/json" -Proxy $proxyUri -ProxyUseDefaultCredentials -Body $exportBody

     

    But this code works ğŸ˜ƒ

     

    There was a missing @ before the bookmark.