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
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.
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
Vælg Administrer parametre på båndet Power Query-editor.
Opret parametre for servernavn og databasenavn.
Rediger forespørgslen for den første forbindelse, og tilknyt databasen og servernavnet.
Nu ser forespørgslen sådan ud:
let Source = Sql.Database(ServerName, Databasename), dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data] in dbo_ExecutionLog3
- Publicer rapporten på serveren. I dette eksempel hedder rapporten executionlogparameter. Følgende billede er et eksempel på en side til administration af datakilder.
Opdater parametre ved hjælp af PowerShell-værktøjerne
Åbn PowerShell, og installér de nyeste Reporting Services-værktøjer, og følg vejledningen på https://github.com/microsoft/ReportingServicesTools.
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
Vi gemmer resultatet af dette kald i en variabel:
$parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
Knyt til en ordbog for at få adgang til parameterværdierne.
$parameterdictionary = @{} foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
Denne variabel opdateres med de værdier, vi skal ændre.
Opdater værdierne for de ønskede parametre:
$parameterdictionary[“ServerName”].Value = 'myproductionserver' $parameterdictionary[“Databasename”].Value = 'myproductiondatabase'
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
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.
Relateret indhold
Har du flere spørgsmål? Prøv at spørge Power BI-community'et