相关文章推荐
愉快的夕阳  ·  VS Code ...·  1 年前    · 
温暖的煎饼  ·  Remove Implicit ...·  1 年前    · 

这也是关于在之前版本中设置此功能的方式的一项重大更改。 如果使用的是 2020 年 10 月前的 Power BI 报表服务器版本,请参阅 使用 PowerShell 更改 Power BI 报表中的数据源连接字符串 - Power BI 报表服务器(2020 年 10 月前)

  • 下载最新版本的 Power BI 报表服务器和适用于 Power BI 报表服务器的 Power BI Desktop
  • 使用针对 Power BI 报表服务器优化的 Power BI Desktop(2020 年 10 月版或更高版本)保存的报表(启用了增强型数据集元数据)。
  • 使用参数化连接的报表。 发布后,只能更新使用参数化连接和数据库的报表。
  • 此示例使用 Reporting Services PowerShell 工具。 使用新的 REST API 同样可以实现此目的。
  • 创建使用参数化连接的报表

  • 创建与服务器的 SQL Server 连接。 在下面的示例中,我们将连接到名为 ReportServer 的数据库,并从 ExecutionLog 拉取数据。

    此时,M 查询将如下所示:

    Source = Sql.Database("localhost", "ReportServer"), dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data] dbo_ExecutionLog3
  • 选择“Power Query 编辑器”功能区中的“管理参数”。

  • 为 servername 和 databasename 创建参数。

  • 编辑第一个连接的查询,并映射数据库和 servername。

    现在,查询将如下所示:

    Source = Sql.Database(ServerName, Databasename), dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data] dbo_ExecutionLog3
  • 将该报表发布到服务器。 在此示例中,报表名为 executionlogparameter。 下图是一个数据源管理页示例。
  • 使用 PowerShell 工具更新参数

  • 打开 PowerShell 并按照 https://github.com/microsoft/ReportingServicesTools 中的说明安装最新的 Reporting Services 工具。

  • 若要获取报表的参数,请使用利用以下 PowerShell 调用的新 REST DataModelParameters API:

    Get-RsRestItemDataModelParameters '/executionlogparameter'
        Name         Value
        ----         -----
        ServerName   localhost
        Databasename ReportServer
    
  • 将此调用的结果保存在变量中:

    $parameters = Get-RsRestItemDataModelParameters '/executionlogparameter'
    
  • 映射到字典以访问参数值。

    $parameterdictionary = @{}
    foreach ($parameter in $parameters) { $parameterdictionary.Add($parameter.Name, $parameter); }
    
  • 使用需要更改的值更新此变量。

  • 更新所需参数的值:

    $parameterdictionary[“ServerName”].Value = 'myproductionserver'
    $parameterdictionary[“Databasename”].Value = 'myproductiondatabase'
    
  • 利用更新后的值,我们可以使用 commandlet Set-RsRestItemDataModelParameters 来更新服务器中的值:

    Set-RsRestItemDataModelParameters -RsItem '/executionlogparameter' -DataModelParameters $parameters
    $parameterdictionary.Values
    
  • 更新参数后,服务器将更新已绑定到参数的任何数据源。 返回到“编辑数据源”对话框中,你应能够为更新后的服务器和数据库设置凭据。

    即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:https://aka.ms/ContentUserFeedback

    提交和查看相关反馈

  •