Мы можем обновлять подключения для отчетов Power BI для DirectQuery и обновлять их.
- Скачайте последнюю версию Сервер отчетов Power BI и Power BI Desktop для Сервер отчетов Power BI.
- Отчет, сохраненный в выпуске Power BI Desktop за октябрь 2020 г., оптимизированный для сервера отчетов, с включенными расширенными метаданными набора данных.
- Отчет, использующий параметризованные подключения. После публикации можно обновить только отчеты с параметризованными подключениями и базами данных.
- В этом примере используются средства PowerShell служб Reporting Services. Вы можете добиться того же, используя новые интерфейсы REST API.
Создание отчета с параметризованными подключениями
Создайте подключение SQL Server к серверу. В приведенном ниже примере мы подключаемся к localhost к базе данных с именем ReportServer и извлекаем данные из ExecutionLog.
Вот как выглядит запрос M на этом этапе:
let
Source = Sql.Database("localhost", "ReportServer"),
dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
in
dbo_ExecutionLog3
Выберите "Управление параметрами" на ленте Редактор Power Query.
Создайте параметры для имени сервера и имени базы данных.
Измените запрос на первое подключение и сопоставийте имя базы данных и сервера.
Теперь запрос выглядит следующим образом:
let
Source = Sql.Database(ServerName, Databasename),
dbo_ExecutionLog3 = Source{[Schema="dbo",Item="ExecutionLog3"]}[Data]
in
dbo_ExecutionLog3
- Опубликуйте этот отчет на сервере. В этом примере отчет называется executionlogparameter. На следующем рисунке показан пример страницы управления источниками данных.
Откройте PowerShell и установите последние средства Служб Reporting Services, следуя инструкциям.https://github.com/microsoft/ReportingServicesTools
Чтобы получить параметр отчета, используйте новый API REST DataModelParameters с помощью следующего вызова PowerShell:
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.