我們可以更新 Power BI 報表中用於 DirectQuery 和重新整理的連線。
這很重要
這也是您在先前版本中如何設定此設定的重大變更。
先決條件
- 下載最新版本的 Power BI 報表伺服器和適用於 Power BI 報表伺服器的 Power BI Desktop。
- 一份以 Power BI Desktop 為報表伺服器優化並啟用 增強型資料集元資料 的報告。
- 使用參數化連線的報表。 只有具有參數化連線和資料庫的報表才能在發佈後更新。
- 此範例使用 Reporting Services PowerShell 工具。 您可以使用新的 REST API 來達成相同的目的。
使用參數化連線建立報表
建立與伺服器的 SQL Server 連線。 在下面的範例中,我們將連線到名為 ReportServer 的資料庫的本地主機,並從 ExecutionLog 提取資料。
以下是 M 查詢此時的樣子:
let Source = Sql.Database("localhost", "ReportServer"), dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data] in dbo_ExecutionLog3選取 [Power Query 編輯器] 功能區中的 [管理參數]。
建立 servername 和 databasename 的參數。
編輯第一個連線的查詢,並對映資料庫和伺服器名稱。
現在查詢看起來像這樣:
let Source = Sql.Database(ServerName, Databasename), dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data] in 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'有了更新的值,我們可以使用指令集
Set-RsRestItemDataModelParameters來更新伺服器中的這些值:Set-RsRestItemDataModelParameters -RsItem '/executionlogparameter' -DataModelParameters $parameters $parameterdictionary.Values更新參數之後,伺服器會更新繫結至參數的任何資料來源。 返回 [編輯資料來源 ] 對話方塊,您應該能夠為更新的伺服器和資料庫設定認證。
相關內容
其他問題嗎? 試著向 Power BI 社群提問