Как обновить отчет в Power BI Report Server по API
Иногда у вас возникает ситуация когда нужно обновлять отчет не по расписанию, а по итогу какого-то события. Например, у вас таблица, на которой сроится модель данных обновляется по какому-то триггеру или зависит от ETL процесса, который может заканчиваться в разное время. Например, у меня была задача: система снимает метрики с нагрузки CPU и записывает данные в таблицу базы данных только тогда когда нагрузка становилась выше порогового значения. После этого нужно было обновить сразу отчет. В такой задаче спрогнозировать время обновления отчета по расписанию нельзя, так нагрузка может не быть критической несколько дней или быть критической несколько раз за день. Для таких сценариев и подходит обновление отчета по API. В этой статье я покажу простой и надёжный способ: получаем ID плана обновления через API (или из браузера), а затем запускаем его одной командой PowerShell.
—
📌 Что нам понадобится
- Доступ к веб-порталу Power BI Report Server - Учетная запись с правами на создание и выполнение планов обновления - PowerShell 5.1 или новее
—
1️⃣ Создаем план обновления (если его еще нет)
Перед тем как запускать обновление программно, убедитесь, что у отчета уже есть план обновления кэша (Cache Refresh Plan).
Сделать это проще всего через веб-портал:
1. Зайдите на портал отчета, например: http://Ваш_Сервер_Отчетов/reports 2. Перейдите в папку с нужным отчетом 3. Нажмите «Управление» → «Планы обновления кэша» 4. Создайте новый план, укажите расписание (даже если оно не понадобится — для ручного запуска оно необязательно) 5. Сохраните план
✅ Готово. Теперь у отчета есть план, который мы сможем вызывать через API.