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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
gauravkh
Frequent Visitor

Issue in importing Dataflow using Powershell

Problem:
I need to import Dataflow json using Powershell
I created a copy of my Dataflow json file with a separate name and able to import using Powershell
It is able to Create the copied Dataflow
But when I run the function on original Dataflow json file it returns with exception: "The remote server returned an error: (404) Not Found."
I'm using the following function:

 

 

 

 

function ImportDataflow([string]$GroupID, [string]$DataflowName, [string]$DataflowDefinition) {

    $UserAccessToken = Get-PowerBIAccessToken
    $bearer = $UserAccessToken.Authorization.ToString()
    
    $DataflowListurl = "groups/$GroupID/dataflows"
    $flowItems = Invoke-PowerBIRestMethod -Method GET -Url $DataflowListurl | ConvertFrom-Json
    $flow = $flowItems.value | Where-Object { $_.name -eq $DataflowName }
    
    if ($flow) {
        $CreateOrReplace = "&nameConflict=CreateOrOverwrite"
        Write-Host "Overwriting Dataflow: $DataflowName";
    } else {
        $CreateOrReplace = ""
        Write-Host "Creating new Dataflow: $DataflowName";
    }
    

    $url = "https://api.powerbi.com/v1.0/myorg/groups/$GroupID/imports?datasetDisplayName=model.json$CreateOrReplace"

    $boundary = [System.Guid]::NewGuid().ToString("N")
    $LF = [System.Environment]::NewLine
		
    $body = (
        "--$boundary",
        "Content-Disposition: form-data, name=`"model.json`" filename=`"model.json`"",
        "Content-Type: application/json$LF",
        $DataflowDefinition,
        "--$boundary--$LF"
    ) -join $LF

    $headers = @{
        'Authorization' = "$bearer"
        'Content-Type'  = "multipart/form-data; boundary=--$boundary"
    }
    
    Invoke-RestMethod -Uri $url -ContentType 'multipart/form-data' -Method POST -Headers $headers -Body $body
}

 

 

 

 

FYI - I am clearing Partition entity from $DataflowDefinition before passing it to the function

1 REPLY 1
gauravkh
Frequent Visitor

Found the workaround for this as we can't update Dataflows as of now

1. Delete the Dataflow, 

2. Delete the files from blob (if you have specific blob storage)

3. Recreate the Dataflow

4. Run the dataflow with full refresh

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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

Top Kudoed Authors