Del via


Endre datakilde tilkoblingsstreng i Power BI-rapporter med PowerShell – rapportserver for Power BI

Vi aktiverer muligheten til å oppdatere tilkoblinger for Power BI-rapporter for DirectQuery og oppdatering.

Viktig

Dette er også en endring i hvordan du kan konfigurere dette i tidligere versjoner. Hvis du bruker en før oktober 2020-versjon av rapportserver for Power BI, kan du se Endre datakilde tilkoblingsstreng i Power BI-rapporter med PowerShell – rapportserver for Power BI før oktober 2020

Forutsetning

  • Last ned den nyeste versjonen av rapportserver for Power BI og Power BI Desktop for rapportserver for Power BI.
  • En rapport som er lagret med oktober 2020 eller nyere versjon av Power BI Desktop optimalisert for rapportserver, med forbedrede metadata for datasett aktivert.
  • En rapport som bruker parameteriserte tilkoblinger. Bare rapporter med parameteriserte tilkoblinger og databaser kan oppdateres etter publisering.
  • Dette eksemplet bruker PowerShell-verktøyene for Reporting Services. Du kan oppnå det samme ved å bruke de nye REST-API-ene.

Opprette en rapport med parameteriserte tilkoblinger

  1. Opprett en SQL Server-tilkobling til en server. I eksemplet nedenfor kobler vi til localhost til en database kalt ReportServer og henter data fra ExecutionLog.

    Connect to the SQL Server database

    Slik ser M-spørringen ut nå:

    let
        Source = Sql.Database("localhost", "ReportServer"),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
  2. Velg Behandle parametere på båndet Power Query-redigering.

    Select Manage Parameters

  3. Opprett parametere for servernavnet og databasenavnet.

    Manage Parameters, set servername and databasename.

  4. Rediger spørringen for den første tilkoblingen, og tilordne databasen og servernavnet.

    Map the Server and Database name

    Nå ser spørringen slik ut:

    let
        Source = Sql.Database(ServerName, Databasename),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
    1. Publiser rapporten på serveren. I dette eksemplet kalles rapporten executionlogparameter. Bildet nedenfor er et eksempel på en administrasjonsside for datakilder.

    The data source management page.

Oppdater parametere ved hjelp av PowerShell-verktøyene

  1. Åpne PowerShell, og installer de nyeste Reporting Services-verktøyene, og følg instruksjonene på https://github.com/microsoft/ReportingServicesTools.

  2. Hvis du vil hente parameteren for rapporten, kan du bruke den nye REST DataModelParameters-API-en ved hjelp av følgende PowerShell-kall:

    Get-RsRestItemDataModelParameters '/executionlogparameter'
    
        Name         Value
        ----         -----
        ServerName   localhost
        Databasename ReportServer
    
  3. Vi lagrer resultatet av dette kallet i en variabel:

    $parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
    
  4. Tilordne til en ordliste for å få tilgang til parameterverdiene.

    $parameterdictionary = @{}
    foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
    
    
  5. Denne variabelen oppdateres med verdiene vi må endre.

  6. Oppdater verdiene for de ønskede parameterne:

    $parameterdictionary[“ServerName”].Value = 'myproductionserver'
    $parameterdictionary[“Databasename”].Value = 'myproductiondatabase'
    
  7. Med de oppdaterte verdiene kan vi bruke kommandoleten Set-RsRestItemDataModelParameters til å oppdatere verdiene på serveren:

    Set-RsRestItemDataModelParameters -RsItem '/executionlogparameter' -DataModelParameters $parameters
    $parameterdictionary.Values
    
  8. Når parameterne er oppdatert, oppdaterer serveren alle datakilder som var bundet til parameterne. Hvis du går tilbake til dialogboksen Rediger datakilde , skal du kunne angi legitimasjon for den oppdaterte serveren og databasen.

    Set credentials for the updated server and database.

Har du flere spørsmål? Prøv å spørre Power BI-fellesskap