TravisKale
Estoy emitiendo lo siguiente a través de PowerShell
$apiResult = Invoke-PowerBIRestMethod -Url 'https://api.powerbi.com/v1.0/myorg/admin/groups?$expand=dashboards,users,reports,datasets,dataflows,workbooks&$top=5000' -Method Get | ConvertFrom-Json
La llamada funciona y todo se devuelve, sin embargo, en el objeto de grupo solo hay un campo booleano «IsOnDedicatedCapcity», y no un CapacityId.
Si excluyo el | ConvertFrom-Json, y mire Raw JSON, la propiedad está ahí. Supongo que, dado que el primer objeto devuelto no tiene un CapacityId, cuando PowerShell intenta crear un objeto para almacenar el resultado, se excluye la propiedad CapcityId.
Para probar esta teoría, cambié la llamada API para usar un filtro para devolver solo grupos en una capacidad a través de…
'https://api.powerbi.com/v1.0/myorg/admin/groups?$filter=isOnDedicatedCapacity eq true & $expand=dashboards,users,reports,datasets,dataflows,workbooks&$top=10'
Ahora, cuando emito ConvertFrom-Json, la propiedad CapacityId está presente en el objeto que PowerShell crea para mí.
Esta es probablemente más una pregunta de PowerShell en este punto, pero ¿hay alguna manera de forzar el método ConvertFrom-Json para incluir todas las propiedades en la matriz de objetos, incluso si la propiedad del primer elemento no está presente?
lbendlin
¿Se pregunta qué sucede cuando no expande las entidades relacionadas?
TravisKale
En respuesta a lbendlin
Las llamadas que no ampliaron las entidades relacionadas tuvieron el mismo resultado. Hice más pruebas y modifiqué la publicación original con información actualizada. Es más un problema de PowerShell que un problema de la API de Power BI. Supongo que esta es la razón por la que existen los cmdlets, voy a volver a los cmdlets de PS ya que el problema que estaba teniendo con ellos es más fácil de solucionar que este problema. Gracias por echar un vistazo @lbendlin