1

Я реализовал Power BI, встроенный в веб-приложение с прямым запросом, используя Azure SQL в качестве источника данных.Power BI встроен, прямой запрос, а не обновляется

База данных Azure SQL обновляется webjobs, и если я оставлю открытое веб-приложение Power BI, я не вижу, чтобы визуальные обновления обновлялись с новыми данными, если я не вызываю запрос, например, изменение вкладок или фильтрации с помощью slicer , В documentation я нашел следующее:

«Если нет взаимодействия с пользователем в визуализации, как в приборной панели, данные обновляются автоматически примерно каждые пятнадцать минут.»

Правильно ли я понимаю, что открытый визуал в моем случае должен быть освежающим без необходимости взаимодействия с пользователем?

Можете ли вы указать на то, что он не будет автоматически обновляться? Также вы знаете способ контролировать время обновления с помощью прямого запроса без взаимодействия пользователя более точно, чем «... каждые пятнадцать минут ...»

При проверке свойств соединения на рабочем столе Power BI у меня есть убедитесь, что он указывает «Прямой запрос».

ответ

1

По моему мнению, встроенный отчет не будет обновляться автоматически. Однако, если вы используете инфраструктуру Power BI JS (https://github.com/Microsoft/PowerBI-JavaScript) для встраивания своего отчета из коллекции Workspace, вы можете использовать метод refresh() для объекта отчета, чтобы вручную получать последние данные, если ваш отчет использует Direct Query.

Этот метод представлен только в версии 2.2.0 фреймворка и затем удален в последней версии (в настоящее время версии 2.2.1), в то время как выполняется дополнительное тестирование вокруг выставления счетов (см. https://github.com/Microsoft/PowerBI-JavaScript/commit/5230b2f96b10a1104efecdffe78255b9788526b8).

Однако в ходе тестирования я обнаружил, что сеанс сессии остался неизменным методом обновления. Вы можете обновить до интервалов в 15 секунд (ограничение, установленное сервером). Это может измениться, однако, учитывая, что метод был удален в 2.2.1, но с использованием 2.2.0, похоже, работает в настоящее время.

Вот быстрый и грязный пример, который будет обновить отчет каждую минуту в течение отведенного сессии:

powerbi.embed(reportContainer, embedConfig); 
report = powerbi.get(reportContainer); 

window.setInterval(function() { 
    report.refresh(); 
}, 60 * 1000); 

Если сессия истекает (через 1 час в настоящее время), то новый JWT нужно будет запросить и отчет необходимо перезагрузить с помощью нового токена.

Возможно, вы захотите выполнить некоторые проверки по истечении срока действия сеанса, если вы планируете оставить отчет открытым для более чем выделенного времени сеанса.

+1

Для полного ответа на вопрос, если вы встраиваете приборную панель, вызов метода refresh() не требуется (даже обновления данных в реальном времени обновляются). Как сказали мужики, через час вам нужно обновить токен JWT. – guiferviz