Ändern von Datenquellen-Verbindungszeichenfolgen in Power BI-Berichten mithilfe von PowerShell – Power BI-Berichtsserver.
Wir ermöglichen es, Verbindungen für Power BI Berichte für DirectQuery zu aktualisieren und wieder aufzufrischen.
Wichtig
Dies ist auch ein Breaking Change im Vergleich zur Einrichtung in früheren Releases. Wenn Sie eine frühere Version des Power BI-Berichtsservers verwenden als die vom Oktober 2020, finden Sie weitere Informationen unter Ändern von Datenquellen-Verbindungszeichenfolgen in Power BI-Berichten mithilfe von PowerShell – Power BI-Berichtsserver vor Oktober 2020.
Voraussetzungen
- Download des neuesten Releases des Power BI-Berichtsservers und des Power BI Desktop für den Power BI-Berichtsserver.
- Ein Bericht, der mit dem Release vom Oktober 2020 oder höher der für den Berichtsserver optimierten Version von Power BI Desktop gespeichert wurde und für den Enhanced DataSet Metadata (Erweiterte Datasetmetadaten) aktiviert ist
- Ein Bericht, der parametrisierte Verbindungen verwendet. Nur Berichte mit parametrisierten Verbindungen und Datenbanken können nach der Veröffentlichung aktualisiert werden.
- In diesem Beispiel werden die Reporting Services-PowerShell-Tools verwendet. Mithilfe der neuen REST-APIs können Sie dieselben Ergebnisse erzielen.
Erstellen eines Berichts mit parametrisierten Verbindungen
Stellen Sie eine SQL Server-Verbindung mit einem Server her. Im folgenden Beispiel wird eine Verbindung zwischen dem Localhost und einer Datenbank namens „ReportServer“ hergestellt und Daten aus ExecutionLog abgerufen.
So sieht die M-Abfrage zurzeit aus:
let Source = Sql.Database("localhost", "ReportServer"), dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data] in dbo_ExecutionLog3
Klicken Sie im Menüband des Power Query-Editors auf Parameter verwalten.
Erstellen Sie Parameter für den Server- und den Datenbanknamen.
Bearbeiten Sie die Abfrage für die erste Verbindung, und ordnen Sie den Datenbank- und den Servernamen zu.
Nun sieht die Abfrage folgendermaßen aus:
let Source = Sql.Database(ServerName, Databasename), dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data] in dbo_ExecutionLog3
- Veröffentlichen Sie den Bericht auf dem Server. In diesem Beispiel heißt der Bericht „executionlogparameter“. Die folgende Abbildung ist ein Beispiel für die Verwaltungsseite einer Datenquelle.
Aktualisieren von Parametern mithilfe der PowerShell-Tools
Öffnen Sie PowerShell, und installieren Sie die neuesten Reporting Services-Tools mithilfe der Anleitung unter https://github.com/microsoft/ReportingServicesTools.
Verwenden Sie zum Abrufen des Berichtsparameters den folgenden PowerShell-Befehl mit der neuen API „REST DataModelParameters“:
Get-RsRestItemDataModelParameters '/executionlogparameter' Name Value ---- ----- ServerName localhost Databasename ReportServer
Das Ergebnis dieses Aufrufs wird in einer Variablen gespeichert:
$parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
Ordnen Sie sie einem Wörterbuch zu, um auf die Parameterwerte zuzugreifen.
$parameterdictionary = @{} foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
Diese Variable wird mit den Werten aktualisiert, die geändert werden müssen.
Aktualisieren Sie die Werte der gewünschten Parameter:
$parameterdictionary[“ServerName”].Value = 'myproductionserver' $parameterdictionary[“Databasename”].Value = 'myproductiondatabase'
Mit den aktualisierten Werten und dem Cmdlet
Set-RsRestItemDataModelParameters
können Sie nun die Werte auf dem Server aktualisieren:Set-RsRestItemDataModelParameters -RsItem '/executionlogparameter' -DataModelParameters $parameters $parameterdictionary.Values
Nachdem die Parameter aktualisiert wurden, aktualisiert der Server alle Datenquellen, die an die Parameter gebunden wurden. Zurück im Dialogfeld Datenquelle bearbeiten sollten Sie in der Lage sein, Anmeldeinformationen für den aktualisierten Server und die aktualisierte Datenbank festzulegen.
Zugehöriger Inhalt
Weitere Fragen? Stellen Sie Ihre Frage in der Power BI-Community.