Я пишу сценарий PowerShell для переноса панелей мониторинга из одной рабочей области в другую. Плитки на панели мониторинга, которые связаны с отчетом и набором данных, перемещаются нормально, но та, которая не связана с набором данных или отчетом (например, простой текстовый файл показывает странное поведение. Командлет Copy-PowerBITile копирует эти плитки несколько раз, а затем дает следующее error "
Copy-PowerBITile: операция вернула недопустимый код состояния 'InternalServerError' + ... Copy-PowerBITile -DashboardId $ dashboard_id -TileId $ tile ... + ~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: WriteError: (Microsoft.Power ... CopyPowerBITile: CopyPowerBITile) [Copy-PowerBITile], HttpOperationException + FullyQualifiedErrorId: операция вернула недопустимый код состояния «InternalServerError», Microsoft.PowerBI.Commands.Reports.Copy4 * 100PowerBITile * 100PowerBITile *
Ниже приведен пример кода, который я использую:
Foreach ($tile in $tiles) {
try {
$tile_id = $tile.id
if ($tile.reportId) {
$tile_report_Id = [GUID]($tile.reportId)
}
else {
#Copy-PowerBITile -DashboardId $dashboard_id -TileId $tile_id -TargetDashboardId $target_dashboard_id -TargetWorkspaceId $target_workspace_ID
#continue
$tile_report_Id = $null
}
if ($tile.datasetId) {
$tile_dataset_Id = [GUID]($tile.datasetId)
}
else {
$tile_dataset_Id = $null
}
if ($tile_report_id) # -Or $dataset_id_mapping[$tile_dataset_id])
{
#Retrieve source
$src_report = Get-PowerBIReport -Id $tile_report_Id -WorkspaceId $sourceWorkspace.id
$src_report_name = $src_report.name
$target_report = Get-PowerBIReport -WorkspaceId $target_workspace_ID | Where-Object {$_.Name -eq $src_report_name}
$tile_target_report_id = $target_report.id
$src_dataset = Get-PowerBIDataset -Id $tile_dataset_Id -WorkspaceId $sourceWorkspace.id
$src_dataset_name = $src_dataset.name
$target_dataset = Get-PowerBIDataset -WorkspaceId $target_workspace_ID | Where-Object {$_.Name -eq $src_dataset_name}
$tile_target_dataset_id = $target_dataset.id
write-host '-DashboardId ' $dashboard_id
write-host '-TileId ' $tile_id
write-host '-TargetDashboardId ' $target_dashboard_id
write-host '-TargetWorkspaceId ' $target_workspace_ID
write-host '-TargetReportId ' $tile_target_report_id
write-host '-TargetDatasetId ' $tile_target_dataset_id
Copy-PowerBITile -DashboardId $dashboard_id -TileId $tile_id -TargetDashboardId $target_dashboard_id -TargetWorkspaceId $target_workspace_ID -TargetReportId $tile_target_report_id -TargetDatasetId $tile_target_dataset_id
}
else {
try {
Copy-PowerBITile -DashboardId $dashboard_id -TileId $tile_id -TargetDashboardId $target_dashboard_id -TargetWorkspaceId $target_workspace_ID
}
catch [Exception] {}
}
}
catch [Exception] {
Write-Error "Error: skipping tile..."
Write-Error $_.Exception
}
}