Как обновить отчет в 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.