Я использую API в качестве источника данных в Power BI Report Server. У API есть две конечные точки:
- GET localhost/peoples : Возвращает полный список людей.
- GET localhost/peoples/{id} : Возвращает подробную информацию о конкретном человеке по его id.
В моем отчете Power BI Report Server, оптимизированном для отображения, есть столбчатая диаграмма, которая отображает всех людей и их соответствующие баллы. Что я хочу достичь следующее:
Когда пользователь нажимает на конкретную колонку в диаграмме (представляющую человека), я хочу отобразить подробную информацию об этом человеке в другом визуальном элементе (например, в таблице или другой диаграмме), сделав вызов ко второй конечной точке API (localhost/peoples/{id}) с id выбранного человека.
Вопросы:
- Как я могу настроить взаимодействие между двумя визуальными элементами (столбчатой диаграммой и диаграммой с детальной информацией) в Power BI Report Server?
- Как я могу настроить параметры запроса, чтобы передать id из выбранной колонки в вызов API для второго визуала? Любые советы или примеры будут очень полезны!
Что я пробовал:
Я пытался создать действие drillthrough, где нажатие на колонку передавало бы id выбранного человека во второй визуал, но не смог разобраться, как динамически передать id из выбранной колонки в детальный вызов API (localhost/peoples/{id}).
Что я ожидал:
Я ожидал, что смогу нажать на колонку, представляющую человека на диаграмме, и чтобы второй визуал (таблица) обновился и показал подробную информацию о выбранном человеке, вызывая API с его id. По сути, я хочу динамически фильтровать второй визуал на основе выбранного человека из первой диаграммы, используя API для получения детальных данных.
Ответ
Для достижения цели по отображению детальной информации о человеке при нажатии на столбец в графике Power BI Report Server с использованием параметров API, выполните следующие шаги:
Шаг 1: Настройка данных
-
Создайте источник данных:
Убедитесь, что у вас настроены два HTTP-источника данных для API:- Один для получения списка людей:
GET localhost/peoples
- Второй для получения детальной информации о человеке:
GET localhost/peoples/{id}
- Один для получения списка людей:
- Импортируйте данные:
Импортируйте данные с первого API в Power BI. Это позволит вам создавать визуализации на основе общего списка людей, их оценок и идентификаторов.
Шаг 2: Создание визуализаций
-
Создайте столбчатую диаграмму:
Перейдите на вкладку "Визуализации" и выберите "Столбчатая диаграмма". Перетащите поле с именем человека и его оценку в соответствующие оси диаграммы. - Создайте второй визуал:
Создайте визуализацию, например, таблицу или карточку, чтобы отобразить детальную информацию о выбранном человеке. Пока визуализация будет пустой, мы позже свяжем ее с первым графиком.
Шаг 3: Настройка взаимодействия
-
Настройка выделения:
Выделите столбчатую диаграмму. Затем в меню "Формат" активируйте опцию "Взаимодействие". Убедитесь, что ваша таблица или другая визуализация настроена на взаимодействие, чтобы отображать данные в ответ на выбор в столбчатой диаграмме. - Использование фильтров для передачи ID:
В Power BI Report Server вы можете настроить фильтры на уровне визуализации. Для этого:- Выберите столбчатую диаграмму.
- Перейдите в панель фильтров и добавьте "ID" человека как фильтр для второй визуализации. Это позволит динамически передавать выбранный ID.
Шаг 4: Настройка запроса API
-
Используйте параметры для API:
В таблице или визуализации, отображающей детальную информацию, настройте запрос к вашему API. В Power BI вам необходимо будет задать параметр (например, ID) для запроса второй конечной точки (например,GET localhost/peoples/{id}
).Для этого вам может понадобиться настроить функцию или использовать M-код в редакторе запросов Power Query, чтобы динамически формировать URL на основе выбранного ID. Например:
let SelectedID = SELECTEDVALUE(YourTable[ID]), // Получите выбранный ID Source = Web.Contents("localhost/peoples/" & Text.From(SelectedID)), JsonResponse = Json.Document(Source) in JsonResponse
Шаг 5: Тестирование и публикация
-
Тестирование:
Публикуйте отчёт на Power BI Report Server и тестируйте взаимодействие. Нажмите на столбец, и вторая визуализация должна обновляться с использованием данных из API. - Отладка:
Если данные не обновляются, проверьте настройки фильтров и убедитесь, что ID корректно передается в API запрос.
Следуя этим шагам, вы сможете настроить взаимодействие между двумя визуализациями и динамически получать детальную информацию о человеке при выборе его столбца в графике.