Обновление строки подключения встроенного отчета PowerBI не работает

Итак, проблема заключается в следующем: у нас есть несколько арендаторов, несколько баз данных, размещенных на разных хостах Azure sql с разными рабочими областями для каждого арендатора. Поскольку количество арендаторов довольно велико, создать отчет для каждого арендатора, а затем загрузить его в соответствующую рабочую область приложения не очень удобно. Поэтому мы попытались автоматизировать весь процесс, основываясь на некоторых конфигах. (У нас один и тот же отчет для каждого тенанта, только источник данных разный). Нам удалось загрузить тот же отчет в соответствующее рабочее пространство приложения, но мы не можем программно обновить ConnectionString. Кажется, это не удается, когда мы пытаемся изменить источник данных. Загруженный файл сохраняет исходную ConnectionString. Также отчет настраивается с помощью DirectQuery.

Образец кода:

var import = await pbiClient.Imports.PostImportWithFileAsyncInGroup(GroupId, fileStream, importName, nameConflict);//Name conflicts : Abort, Ignore, Overwrite

var datasets = await pbiClient.Datasets.GetDatasetsInGroupAsync(GroupId);
var latestDataset = datasets.Value.FirstOrDefault(x => x.Name == importName);

var reports = await pbiClient.Reports.GetReportsInGroupAsync(GroupId);
var latestReport = reports.Value.FirstOrDefault(x => x.Name == importName);

var connectionDetails = new ConnectionDetails($"Data Source={DbHost} ;Initial Catalog={DbName};Encrypt=True;TrustServerCertificate=True;PersistSecurityInfo=True;User Id={DbPowerBIUser};Password={DbPowerBIUser};MultipleActiveResultSets=true;");
var resp = await pbiClient.Datasets.SetAllDatasetConnectionsInGroupWithHttpMessagesAsync(GroupId, latestDataset.Id, connectionDetails);

person Ndy    schedule 20.06.2018    source источник


Ответы (1)


  1. Вам необходимо опросить статус импорта, пока он не будет успешно завершен: https://docs.microsoft.com/en-us/rest/api/power-bi/imports/getimportbyidingroup
  2. Когда вы устанавливаете новое подключение, имя пользователя и пароль в строке подключения игнорируются (при необходимости вы можете установить их, используя это: https://docs.microsoft.com/en-us/rest/api/power-bi/gateways/updatedatasource)
  3. Что вы имеете в виду, кажется, не удается? Вы получаете исключение из вызова API? Или отчет рендерится со старыми данными?
person Eli Greenwald    schedule 20.06.2018
comment
1. Я этого не делаю, но попробую, импорт на самом деле появляется на app.powerbi.com 2. Я не использую шлюз для источника данных, возможно, проблема в этом app.powerbi.com, и я нажимаю на отчет, и он указывает мне на старый источник данных файла - person Ndy; 21.06.2018
comment
Изменение ConnectionString вступит в силу в течение 30 минут. - person Eli Greenwald; 25.06.2018