Quantcast
Channel: Developer topics
Viewing all articles
Browse latest Browse all 17903

Set Parameters API returning error - Dataset Parameters list is invalid - Reason Empty

$
0
0

Hi

I have created the following PowerShell Script to set parameters for a dataset , it returns the list is empty even though its not, the parameters list is a list I created in Power Query and referenced as query in the manage parameters section

 

Help would be appreciated - this is the error  

 

VERBOSE: POST https://api.powerbi.com/v1.0/myorg/groups/e7229a42-46ef-4d80-b8ca-e42909509dbb/datasets/68fbeff4-ce61-43d4-8f8d-74dcd1452393/UpdateParamet
ers with -1-byte payload
VERBOSE: received -1-byte response of content type application/octet-stream
updateDetails                  
-------------                  
{@{name=Type; newValue=Product}}

 


error : @{code=InvalidRequest; message=Dataset Parameters list is invalid in 68fbeff4-ce61-43d4-8f8d-74dcd1452393. Reason: Empty;
        target=68fbeff4-ce61-43d4-8f8d-74dcd1452393}

 

 

This is the Script

$clientId = "ab3afa9b-c31f-41ed-bdc9-84c9c68069b9"


$groupID = "e7229a42-46ef-4d80-b8ca-e42909509dbb" # the ID of the group that hosts the dataset. Use "me" if this is your My Workspace
$datasetID = "68fbeff4-ce61-43d4-8f8d-74dcd1452393" # the ID of the dataset that hosts the dataset
$json = @"
{   "updateDetails": [

    {
      "name": "Type",
      "newValue": "Product"
    }
    ]
    }

"@

$powershellrepresentation = $json | ConvertFrom-Json

$powershellrepresentation


function GetAuthToken
{
    $adal = "${envSmiley TonguerogramFiles}\WindowsPowerShell\Modules\AzureRM.profile\4.5.0\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
   
    $adalforms = "${envSmiley TonguerogramFiles}\WindowsPowerShell\Modules\AzureRM.profile\4.5.0\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll"
 
    [System.Reflection.Assembly]::LoadFrom($adal) | Out-Null

    [System.Reflection.Assembly]::LoadFrom($adalforms) | Out-Null

    $redirectUri = "urn:ietf:wgSmiley Surprisedauth:2.0Smiley Surprisedob"

    $resourceAppIdURI = "https://analysis.windows.net/powerbi/api"

    $authority = "https://login.microsoftonline.com/common/oauth2/authorize";

    $authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority

    $authResult = $authContext.AcquireToken($resourceAppIdURI, $clientId, $redirectUri, "Auto")

    return $authResult
}

# Get the auth token from AAD
$token = GetAuthToken

# Building Rest API header with authorization token
$authHeader = @{
   'Content-Type'='application/json'
   'Authorization'=$token.CreateAuthorizationHeader()
}

# properly format groups path
$groupsPath = ""
if ($groupID -eq "me") {
    $groupsPath = "myorg"
} else {
    $groupsPath = "myorg/groups/$groupID"
}

# POST body
$postParams = $powershellrepresentation

$jsonPostBody = $postParams | ConvertTo-Json

# Make the request to clone the report
$uri = "https://api.powerbi.com/v1.0/$groupsPath/datasets/$datasetID/UpdateParameters"
try{$resp=Invoke-RestMethod -Uri $uri -Headers $authHeader -Method POST -Body $jsonPostBody -Verbose}
  catch {
        $streamReader = [System.IO.StreamReader]::new($_.Exception.Response.GetResponseStream())
        $ErrResp = $streamReader.ReadToEnd() | ConvertFrom-Json
        $streamReader.Close()
    }

    $ErrResp | Format-list


Viewing all articles
Browse latest Browse all 17903

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>