PowerShell ile Power BI raporlarında veri kaynağı bağlantı dizesi değiştirme - Power BI Rapor Sunucusu

DirectQuery ve yenileme için Power BI raporlarına yönelik bağlantıları güncelleştirme olanağı sağlıyoruz.

Önemli

Bu, önceki sürümlerde bunu nasıl ayarlayabileceğiniz konusunda da hataya neden olan bir değişikliktir. ekim 2020 öncesi bir Power BI Rapor Sunucusu sürümü kullanıyorsanız bkz. PowerShell ile Power BI raporlarında veri kaynağı bağlantı dizesi değiştirme - Ekim 2020 öncesi Power BI Rapor Sunucusu

Önkoşullar

  • Power BI Rapor Sunucusu için Power BI Rapor Sunucusu ve Power BI Desktop'ın en son sürümünü indirin.
  • Rapor Sunucusu için iyileştirilmiş Power BI Desktop'ın Ekim 2020 veya sonraki sürümüyle kaydedilen ve Gelişmiş DataSet Meta Verileri etkinleştirilmiş bir rapor.
  • Parametreli bağlantılar kullanan bir rapor. Yalnızca parametreli bağlantılara ve veritabanlarına sahip raporlar yayımladıktan sonra güncelleştirilebilir.
  • Bu örnekte Reporting Services PowerShell araçları kullanılır. Yeni REST API'lerini kullanarak da aynı başarıya ulaşabilirsiniz.

Parametreli bağlantılarla rapor oluşturma

  1. Bir sunucuya SQL Server bağlantısı oluşturun. Aşağıdaki örnekte localhost'a ReportServer adlı bir veritabanına bağlanıyor ve ExecutionLog'dan veri çekiyoruz.

    Connect to the SQL Server database

    M sorgusu şu noktada şöyle görünür:

    let
        Source = Sql.Database("localhost", "ReportServer"),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
  2. Power Query Düzenleyicisi şeridinde Parametreleri Yönet'i seçin.

    Select Manage Parameters

  3. Sunucu adı ve veritabanı adı için parametreler oluşturun.

    Manage Parameters, set servername and databasename.

  4. İlk bağlantı için sorguyu düzenleyin ve veritabanı ile sunucu adını eşleyin.

    Map the Server and Database name

    Şimdi sorgu şu şekilde görünür:

    let
        Source = Sql.Database(ServerName, Databasename),
        dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
    in
        dbo_ExecutionLog3
    
    1. Bu raporu sunucuda yayımlayın. Bu örnekte rapor executionlogparameter olarak adlandırılmıştır. Aşağıdaki görüntü, bir veri kaynağı yönetim sayfası örneğidir.

    The data source management page.

PowerShell araçlarını kullanarak parametreleri güncelleştirme

  1. PowerShell'i açın ve konumundaki https://github.com/microsoft/ReportingServicesToolsyönergeleri izleyerek en son Reporting Services araçlarını yükleyin.

  2. Raporun parametresini almak için aşağıdaki PowerShell çağrısını kullanarak yeni REST DataModelParameters API'sini kullanın:

    Get-RsRestItemDataModelParameters '/executionlogparameter'
    
        Name         Value
        ----         -----
        ServerName   localhost
        Databasename ReportServer
    
  3. Bu çağrının sonucunu bir değişkene kaydederiz:

    $parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
    
  4. Parametre değerlerine erişmek için bir sözlükle eşleyin.

    $parameterdictionary = @{}
    foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
    
    
  5. Bu değişken, değiştirmemiz gereken değerlerle güncelleştirilir.

  6. İstenen parametrelerin değerlerini güncelleştirin:

    $parameterdictionary[“ServerName”].Value = 'myproductionserver'
    $parameterdictionary[“Databasename”].Value = 'myproductiondatabase'
    
  7. Güncelleştirilmiş değerlerle, sunucudaki değerleri güncelleştirmek için komutunu Set-RsRestItemDataModelParameters kullanabiliriz:

    Set-RsRestItemDataModelParameters -RsItem '/executionlogparameter' -DataModelParameters $parameters
    $parameterdictionary.Values
    
  8. Parametreler güncelleştirildikten sonra sunucu, parametrelere bağlı olan tüm veri kaynaklarını güncelleştirir. Veri kaynağını düzenle iletişim kutusuna geri döndüğünüzde, güncelleştirilmiş sunucu ve veritabanı için kimlik bilgilerini ayarlayabilmeniz gerekir.

    Set credentials for the updated server and database.

Başka sorunuz var mı? Power BI Topluluğu sormayı deneyin