Share via


Skift datakilde forbindelsesstreng i Power BI-rapporter med PowerShell – Power BI-rapportserver

Vi aktiverer muligheden for at opdatere forbindelser til Power BI-rapporter til DirectQuery og opdatere.

Vigtigt

Dette er også en banebrydende ændring af, hvordan du kan konfigurere dette i tidligere versioner. Hvis du bruger en version af Power BI-rapportserver fra før oktober 2020, skal du se Skift datakilde forbindelsesstreng i Power BI-rapporter med PowerShell – Power BI-rapportserver fra før oktober 2020

Forudsætninger

  • Download den nyeste version af Power BI-rapportserver og Power BI Desktop til Power BI-rapportserver.
  • En rapport, der er gemt med versionen af Power BI Desktop optimeret til rapportserver fra oktober 2020 eller nyere med forbedrede metadata for datasæt aktiveret.
  • En rapport, der bruger parameteriserede forbindelser. Det er kun rapporter med parameteriserede forbindelser og databaser, der kan opdateres efter publicering.
  • I dette eksempel bruges PowerShell-værktøjerne til Reporting Services. Du kan opnå det samme ved hjælp af de nye REST API'er.

Opret en rapport med parameteriserede forbindelser

  1. Opret en SQL Server-forbindelse til en server. I eksemplet nedenfor opretter vi forbindelse til localhost til en database med navnet ReportServer og henter data fra ExecutionLog.

    Connect to the SQL Server database

    Sådan ser M-forespørgslen ud på dette tidspunkt:

    let
        Source = Sql.Database("localhost", "ReportServer"),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
  2. Vælg Administrer parametre på båndet Power Query-editor.

    Select Manage Parameters

  3. Opret parametre for servernavn og databasenavn.

    Manage Parameters, set servername and databasename.

  4. Rediger forespørgslen for den første forbindelse, og tilknyt databasen og servernavnet.

    Map the Server and Database name

    Nu ser forespørgslen sådan ud:

    let
        Source = Sql.Database(ServerName, Databasename),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
    1. Publicer rapporten på serveren. I dette eksempel hedder rapporten executionlogparameter. Følgende billede er et eksempel på en side til administration af datakilder.

    The data source management page.

Opdater parametre ved hjælp af PowerShell-værktøjerne

  1. Åbn PowerShell, og installér de nyeste Reporting Services-værktøjer, og følg vejledningen på https://github.com/microsoft/ReportingServicesTools.

  2. Hvis du vil hente parameteren for rapporten, skal du bruge den nye REST DataModelParameters-API ved hjælp af følgende PowerShell-kald:

    Get-RsRestItemDataModelParameters '/executionlogparameter'
    
        Name         Value
        ----         -----
        ServerName   localhost
        Databasename ReportServer
    
  3. Vi gemmer resultatet af dette kald i en variabel:

    $parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
    
  4. Knyt til en ordbog for at få adgang til parameterværdierne.

    $parameterdictionary = @{}
    foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
    
    
  5. Denne variabel opdateres med de værdier, vi skal ændre.

  6. Opdater værdierne for de ønskede parametre:

    $parameterdictionary[“ServerName”].Value = 'myproductionserver'
    $parameterdictionary[“Databasename”].Value = 'myproductiondatabase'
    
  7. Med de opdaterede værdier kan vi bruge commandlet'en Set-RsRestItemDataModelParameters til at opdatere værdierne på serveren:

    Set-RsRestItemDataModelParameters -RsItem '/executionlogparameter' -DataModelParameters $parameters
    $parameterdictionary.Values
    
  8. Når parametrene er opdateret, opdaterer serveren alle datakilder, der er bundet til parametrene. Hvis du går tilbage til dialogboksen Rediger datakilde , skal du kunne angive legitimationsoplysninger for den opdaterede server og database.

    Set credentials for the updated server and database.

Har du flere spørgsmål? Prøv at spørge Power BI-community'et