Partager via


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

  1. É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.

    Connect to the SQL Server database

    Voici à quoi ressemble la requête M :

    let
        Source = Sql.Database("localhost", "ReportServer"),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
  2. Sélectionnez Gérer les paramètres dans le ruban de l’éditeur Power Query.

    Select Manage Parameters

  3. Créez des paramètres pour le nom du serveur et le nom de la base de données.

    Manage Parameters, set servername and databasename.

  4. Modifiez la requête pour la première connexion, puis mappez le nom de la base de données et celui du serveur.

    Map the Server and Database name

    La requête ressemble à ceci :

    let
        Source = Sql.Database(ServerName, Databasename),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
    1. 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.

    The data source management page.

Mettre à jour les paramètres à l’aide des outils PowerShell

  1. Ouvrez PowerShell et installez les derniers outils Reporting Services, en suivant les instructions fournies ici : https://github.com/microsoft/ReportingServicesTools.

  2. 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
    
  3. Nous enregistrons le résultat de cet appel dans une variable :

    $parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
    
  4. Mappez à un dictionnaire pour accéder aux valeurs de paramètre.

    $parameterdictionary = @{}
    foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
    
    
  5. Cette variable est mise à jour avec les valeurs que vous devez changer.

  6. Mettez à jour les valeurs des paramètres souhaités :

    $parameterdictionary[“ServerName”].Value = 'myproductionserver'
    $parameterdictionary[“Databasename”].Value = 'myproductiondatabase'
    
  7. 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
    
  8. 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.

    Set credentials for the updated server and database.

D’autres questions ? Essayez d’interroger la communauté Power BI