Моя задача заключается в следующем: с помощью сервера отчетов Power BI (PBIRS) REST API загрузить встроенный отчет (встроенный, что означает, что модель данных интегрирована в сам отчет - простой импорт из SQL База данных сервера, следовательно, нет прямого соединения или DirectQuery et c.) Для PBIRS, задайте учетные данные (ConnectionString, Windows Аутентификация имени пользователя и пароля) для доступа к источнику данных (базе данных) и настройте ежедневное расписание. Refre sh.
С помощью скрипта Powershell я могу загрузить отчет без проблем, однако возникают сложности, когда я пытаюсь установить учетные данные для источника данных. Вот код, который мне нужно выполнить sh this:
$payload0 =
'
{
"Name": "Data Source test",
"Description": "string",
"Path": "/Valid/Path",
"Type": "DataSource",
"Hidden": false,
"Size": 0,
"ModifiedBy": "string",
"ModifiedDate": "2020-01-13T15:51:04Z",
"CreatedBy": "string",
"CreatedDate": "2020-01-13T15:51:04Z",
"IsFavorite": false,
"IsEnabled": true,
"ConnectionString": "valid.connection\\string",
"DataModelDataSource": {
"AuthType": "Windows",
"SupportedAuthTypes": [
"Windows"
],
"Kind": "SQL",
"ModelConnectionName": "string",
"Secret": "",
"Type": "Import ",
"Username": "myUserName"
},
"DataSourceSubType": "DataModel",
"DataSourceType": "SQL",
"IsOriginalConnectionStringExpressionBased": false,
"IsConnectionStringOverridden": false,
"CredentialRetrieval": "prompt",
"CredentialsByUser": {
"DisplayText": "someText",
"UseAsWindowsCredentials": true
},
"CredentialsInServer": {
"UserName": "myUserName",
"Password": "myPassword",
"UseAsWindowsCredentials": true,
"ImpersonateAuthenticatedUser": true
},
"IsReference": false
}
'
$restApiUri = $ReportPortalUri + "/api/v2.0/DataSources"
Invoke-RestMethod -Uri $restApiUri -Method Post -Body $payload0 -ContentType "application/json" -UseDefaultCredentials -UseBasicParsing -Verbose
После запуска кода я получаю 201 Created
ответ JSON, который указывает на успешное создание источника данных и его учетных данных доступа , Если я проверяю на панели Manage
отчета по PBIRS , я не вижу никаких изменений, внесенных в источники данных.
Следующим моим шагом было установить учетные данные вручную, введя мое имя пользователя и пароль на сервере отчетов, а затем выполняю следующий код для установки запланированного refre sh:
$payload1 =
'
{
"ParameterValues":[
],
"Description":"testSchedule",
"CatalogItemPath":"/Valid/Path",
"EventType":"DataModelRefresh",
"Schedule":{
"Definition":{
"EndDate":"0001-01-01T00:00:00Z",
"StartDateTime":"2019-01-15T02:00:00Z",
"EndDateSpecified":false,
"Recurrence":{
"DailyRecurrence": {
"DaysInterval":1
}
}
}
}
}
'
$restApiUri = $ReportPortalUri + "/api/v2.0/CacheRefreshPlans"
Invoke-RestMethod -Uri $restApiUri -Method Post -Body $payload1 -ContentType "application/json" -UseDefaultCredentials -UseBasicParsing -Verbose
Запуск этого кода приводит к успешному созданию запланированного refre sh, учитывая, что Я заранее установил учетные данные для источника данных.
Итак, мой вопрос вкратце: как настроить учетные данные (Windows Аутентификация и имя пользователя / пароль) источника данных (сервер SQL) соединение, определенное действительной строкой ConnectionString) с API-интерфейсом PBIRS REST?
Любая помощь приветствуется!