Partilhar via


Alterar cadeias de conexão de fonte de dados em relatórios do Power BI com o PowerShell - Servidor de Relatório do Power BI

Habilitamos a possibilidade de atualizar conexões em relatórios do Power BI para suporte a DirectQuery e para a atualização automática.

Importante

Esta também é uma mudança significativa em como você poderia configurar isso em versões anteriores.

Pré-requisitos

  • Baixe a versão mais recente do Servidor de Relatório do Power BI e do Power BI Desktop para Servidor de Relatório do Power BI.
  • Um relatório guardado com o Power BI Desktop otimizado para o Report Server, com Enhanced DataSet Metadata ativados.
  • Um relatório que usa conexões parametrizadas. Somente relatórios com conexões parametrizadas e bancos de dados podem ser atualizados após a publicação.
  • Este exemplo usa as ferramentas do PowerShell do Reporting Services. Você pode conseguir o mesmo usando as novas APIs REST.

Criar um relatório com conexões parametrizadas

  1. Crie uma conexão do SQL Server com um servidor. No exemplo abaixo, estamos nos conectando ao localhost a um banco de dados chamado ReportServer e extraindo dados do ExecutionLog.

    Captura de ecrã a mostrar a Ligação à base de dados SQL Server.

    Veja a aparência da consulta M neste momento:

    let
        Source = Sql.Database("localhost", "ReportServer"),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
  2. Selecione Gerir Parâmetros na barra de ferramentas do Power Query Editor.

    Captura de ecrã a mostrar Selecionar Parâmetros de Gerir.

  3. Crie parâmetros para servername e databasename.

    Captura de ecrã que mostra Gerenciar Parâmetros, define o nome do servidor e o nome da base de dados.

  4. Edite a consulta para a primeira conexão e mapeie o banco de dados e o nome do servidor.

    Captura de ecrã que mostra o mapeamento dos nomes do Servidor e da Base de Dados.

    Agora, a consulta tem esta aparência:

    let
        Source = Sql.Database(ServerName, Databasename),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
  5. Publique esse relatório no servidor. Neste exemplo, o relatório é chamado executionlogparameter. A imagem a seguir é um exemplo de uma página de gerenciamento de fonte de dados.

    A página de gerenciamento da fonte de dados.

Atualizar parâmetros usando as ferramentas do PowerShell

  1. Abra o PowerShell e instale as ferramentas mais recentes do Reporting Services, seguindo as instruções em https://github.com/microsoft/ReportingServicesTools.

  2. Para obter o parâmetro para o relatório, use a nova API REST DataModelParameters usando a seguinte chamada do PowerShell:

    Get-RsRestItemDataModelParameters '/executionlogparameter'
    
        Name         Value
        ----         -----
        ServerName   localhost
        Databasename ReportServer
    
  3. Guardamos o resultado desta chamada numa variável:

    $parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
    
  4. Mapeie para um dicionário para aceder aos valores dos parâmetros.

    $parameterdictionary = @{}
    foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
    
  5. Esta variável é atualizada com os valores que precisamos alterar.

  6. Atualize os valores dos parâmetros desejados:

    $parameterdictionary["ServerName"].Value = 'myproductionserver'
    $parameterdictionary["Databasename"].Value = 'myproductiondatabase'
    
  7. Com os valores atualizados, podemos usar o commandlet Set-RsRestItemDataModelParameters para atualizar os valores no servidor:

    Set-RsRestItemDataModelParameters -RsItem '/executionlogparameter' -DataModelParameters $parameters
    $parameterdictionary.Values
    
  8. Depois que os parâmetros são atualizados, o servidor atualiza todas as fontes de dados que foram vinculadas aos parâmetros. Voltando à caixa de diálogo Editar fonte de dados , você poderá definir credenciais para o servidor e o banco de dados atualizados.

    Captura de ecrã a mostrar credenciais definidas para o servidor e base de dados atualizados.

Mais perguntas? Tente perguntar à Comunidade do Power BI