Modifier les chaînes de connexion de la source de données dans les rapports Power BI avec PowerShell - Power BI Report Server
Nous fournissons la possibilité de mettre à jour les connexions des rapports Power BI pour DirectQuery et de les actualiser.
Important
Cette fonctionnalité constitue également un changement cassant par rapport aux versions précédentes. Si vous utilisez une version de Power BI Report Server antérieure à celle d’octobre 2020, consultez Changer les chaînes de connexion de la source de données dans les rapports Power BI avec PowerShell - Version de Power BI Report Server antérieure à octobre 2020.
Prérequis
- Télécharger la dernière version de Power BI Report Server et de Power BI Desktop pour Power BI Report Server.
- Un rapport enregistré avec la version d’octobre 2020 ou une version ultérieure de Power BI Desktop pour Report Server, avec les métadonnées de jeu de données avancées activées.
- Un rapport qui utilise des connexions paramétrables. Seuls les rapports avec des connexions et des bases de données paramétrables peuvent être mis à jour après la publication.
- Cet exemple utilise les outils PowerShell Reporting Services. Vous pouvez obtenir le même résultat en utilisant les nouvelles API REST.
Créer un rapport avec des connexions paramétrables
Établissez une connexion SQL Server avec un serveur. Dans l’exemple ci-dessous, nous allons connecter le serveur localhost à une base de données nommée ReportServer, et tirer (pull) les données depuis ExecutionLog.
Voici à quoi ressemble la requête M :
let Source = Sql.Database("localhost", "ReportServer"), dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data] in dbo_ExecutionLog3
Sélectionnez Gérer les paramètres dans le ruban de l’éditeur Power Query.
Créez des paramètres pour le nom du serveur et le nom de la base de données.
Modifiez la requête pour la première connexion, puis mappez le nom de la base de données et celui du serveur.
La requête ressemble à ceci :
let Source = Sql.Database(ServerName, Databasename), dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data] in dbo_ExecutionLog3
- Publiez ce rapport sur le serveur. Dans cet exemple, le rapport se nomme executionlogparameter. L’image suivante est un exemple de page de gestion des sources de données.
Mettre à jour les paramètres à l’aide des outils PowerShell
Ouvrez PowerShell et installez les derniers outils Reporting Services, en suivant les instructions fournies ici : https://github.com/microsoft/ReportingServicesTools.
Pour obtenir le paramètre du rapport, utilisez la nouvelle API REST DataModelParameters à l’aide de l’appel PowerShell suivant :
Get-RsRestItemDataModelParameters '/executionlogparameter' Name Value ---- ----- ServerName localhost Databasename ReportServer
Nous enregistrons le résultat de cet appel dans une variable :
$parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
Mappez à un dictionnaire pour accéder aux valeurs de paramètre.
$parameterdictionary = @{} foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
Cette variable est mise à jour avec les valeurs que vous devez changer.
Mettez à jour les valeurs des paramètres souhaités :
$parameterdictionary[“ServerName”].Value = 'myproductionserver' $parameterdictionary[“Databasename”].Value = 'myproductiondatabase'
Avec les valeurs mises à jour, nous pouvons utiliser l’applet de commande
Set-RsRestItemDataModelParameters
pour mettre à jour les valeurs du serveur :Set-RsRestItemDataModelParameters -RsItem '/executionlogparameter' -DataModelParameters $parameters $parameterdictionary.Values
Une fois les paramètres mis à jour, le serveur met à jour toutes les sources de données qui étaient liées aux paramètres. Dans la boîte de dialogue Modifier la source de données, vous devriez pouvoir définir les informations d’identification du serveur et de la base de données mis à jour.
Contenu connexe
D’autres questions ? Essayez d’interroger la communauté Power BI