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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Anonymous
Not applicable

"skipReport=True" in import gives error in RestAPI

Hi,

 

When I use skipReport=True in import rest API, my code doesn't work and gives 404 error message in response code.

This work fines:

 

 try {
            "== Importing $report_name to target workspace"
            $uri = "https://api.powerbi.com/v1.0/$target_group_path/imports/?datasetDisplayName=$report_name.pbix&nameConflict=Overwrite"

            # Here we switch to HttpClient class to help POST the form data for importing PBIX
            $httpClient = New-Object System.Net.Http.Httpclient $httpClientHandler
            $httpClient.DefaultRequestHeaders.Authorization = New-Object System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", $token.AccessToken);
            $packageFileStream = New-Object System.IO.FileStream @($temp_path, [System.IO.FileMode]::Open)
        
            $contentDispositionHeaderValue = New-Object System.Net.Http.Headers.ContentDispositionHeaderValue "form-data"
            $contentDispositionHeaderValue.Name = "file0"
            $contentDispositionHeaderValue.FileName = $file_name
 
            $streamContent = New-Object System.Net.Http.StreamContent $packageFileStream
            $streamContent.Headers.ContentDisposition = $contentDispositionHeaderValue
        
            $content = New-Object System.Net.Http.MultipartFormDataContent
            $content.Add($streamContent)
            $response = $httpClient.PostAsync($Uri, $content).Result            
            Write-Verbose -Verbose $response
 
            if (!$response.IsSuccessStatusCode) {
                $responseBody = $response.Content.ReadAsStringAsync().Result
                "= This report cannot be imported to target workspace. Skipping..."
                $errorMessage = "Status code {0}. Reason {1}. Server reported the following message: {2}." -f $response.StatusCode, $response.ReasonPhrase, $responseBody
                throw [System.Net.Http.HttpRequestException] $errorMessage
            } 

This don't:

try {
            "== Importing $report_name to target workspace"
            $uri = "https://api.powerbi.com/v1.0/$target_group_path/imports/?datasetDisplayName=$report_name.pbix&nameConflict=Overwrite&skipReport=True"

            # Here we switch to HttpClient class to help POST the form data for importing PBIX
            $httpClient = New-Object System.Net.Http.Httpclient $httpClientHandler
            $httpClient.DefaultRequestHeaders.Authorization = New-Object System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", $token.AccessToken);
            $packageFileStream = New-Object System.IO.FileStream @($temp_path, [System.IO.FileMode]::Open)
        
            $contentDispositionHeaderValue = New-Object System.Net.Http.Headers.ContentDispositionHeaderValue "form-data"
            $contentDispositionHeaderValue.Name = "file0"
            $contentDispositionHeaderValue.FileName = $file_name
 
            $streamContent = New-Object System.Net.Http.StreamContent $packageFileStream
            $streamContent.Headers.ContentDisposition = $contentDispositionHeaderValue
        
            $content = New-Object System.Net.Http.MultipartFormDataContent
            $content.Add($streamContent)
            $response = $httpClient.PostAsync($Uri, $content).Result            
            Write-Verbose -Verbose $response    
 
            if (!$response.IsSuccessStatusCode) {
                $responseBody = $response.Content.ReadAsStringAsync().Result
                "= This report cannot be imported to target workspace. Skipping..."
                $errorMessage = "Status code {0}. Reason {1}. Server reported the following message: {2}." -f $response.StatusCode, $response.ReasonPhrase, $responseBody
                throw [System.Net.Http.HttpRequestException] $errorMessage
            }

Only change is I have added &skipReport=True in uri.

 

Can you please help to solve this. Basically I just want to import dataset not report.

 

Thank you in advance!

 

Regards,

Niket Talati

 

1 REPLY 1
tojuasp
New Member

Just want to report that for me it is failing as well. I am attempting to post with Postman, works fine without skipReport=True, the import works fine but as soon as I add that, "The request is invalid."

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors