Copy-PowerBITile создает несколько плиток при копировании панели мониторинга PowerBI с плиткой, не связанной с каким-либо отчетом или набором данных - PullRequest
0 голосов
/ 18 июня 2020

Я пишу сценарий 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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...