#powerbi #powerbi-desktop
#powerbi #powerbi-рабочий стол
Вопрос:
Как и в названии. Я хочу обновить отчет Power BI Desktop на основе параметров, например, параметров даты. Я могу создать параметры даты (и другие параметры) в редакторе запросов, так что это не тот случай. Речь идет о том, как обновить отчет Power BI (визуализацию) на основе этих параметров, созданных в редакторе запросов. Возможно ли это?
Вот пример:
Это фильтры в моей визуализации Power BI. На основе года / месяца (пользователь может выбрать месяц, год в фильтре) отчет должен обновляться автоматически — год и месяц (или дата) должны быть переданы в качестве параметра SQL.
Комментарии:
1. Вы говорите о slicer? В power BI, если вы измените значение в slicer, все связанные визуальные элементы мгновенно обновятся.
2. Нет, не о slicer. Я хочу передать параметр из PBI Desktop (Raport View — визуализация) в SQL через редактор запросов. Я создал параметры даты в редакторе запросов и хочу, чтобы пользователь выбирал даты для обновления данных в отчете. Итак, пользователь выбирает даты (от-до) в визуализации (может быть срез, что угодно), и эти даты передаются в SQL в качестве параметров.
Ответ №1:
Я нашел решение для этого. Ключ в том, чтобы использовать NativeQuery здесь. Шаги следующие:
- Создайте хранимую процедуру с параметрами (например, DateFrom и DateTo) и импортируйте данные в Power BI
- В редакторе PowerQuery создайте 2 параметра. Допустим, дата начала и дата окончания. Установите некоторые значения по умолчанию:
- Перейдите в «Предварительный редактор», чтобы изменить M-код. Правильный отчет должен быть следующим:
let
Source = Sql.Database("ServerName12", "Base2"),
Query = Value.NativeQuery(
Source,
"EXEC [dbo].[storedProcedure_XYZ] @DateFrom = '" amp; Date.ToText(startDate) amp; "', @DateTo = '" amp; Date.ToText(endDate) amp; "'")
in
Query
@DateFrom и @DateTo являются параметрами SQL, параметры PQ (StartDate и EndDate) должны быть назначены им способом, который я показал выше.
Важно то, что вы не можете поместить EXEC …. оператор в ‘Поле SQL statement’ для импорта данных (конечно, вам нужно заполнить имя сервера и т.д.). Я имею в виду, что вы можете сделать это сначала для импорта необработанных данных (см. 1-й пункт), Но после этого это поле должно оставаться пустым. Теперь вся работа выполняется вашим M-кодом с использованием собственного запроса.
-
После нажатия кнопки «Ок» в вашем «Расширенном редакторе» (см. 3-й пункт) ваш SQL-запрос будет выполнен вместе с параметрами. Теперь вы можете видеть обновленные данные в Power BI.
-
Перейдите на уровень визуализации в вашем Power BI. Нажмите на эту маленькую стрелку вниз для «Преобразовать данные» и выберите «Редактировать параметры»:
- Теперь введите значения для ваших параметров.
Нажмите OK, и все! Ваш SQL-запрос сейчас обновляется на основе параметров, которые вы передали из уровня визуализации PBI, и все обновленные данные будут загружены в вашу модель данных в PBI — это означает, что ваши визуализации будут автоматически обновлены новыми данными. Это больше не статистика — теперь она динамическая 🙂
Еще одна хорошая особенность заключается в том, что ваша базовая таблица, которую вы импортировали в PQ из SQL, не изменится на function (как это обычно бывает при параметризации запросов) — она по-прежнему остается таблицей, даже если вы используете параметры в своем базовом запросе. Это уменьшает проблемы с загрузкой данных в модель данных PBI, все столбцы остаются на своих местах, и ни один из них не удаляется. У меня это работает идеально.
Я также отключил утверждение встроенного запроса (перейдите в Параметры> Безопасность), поскольку PBI не запрашивает у вас разрешения на выполнение вашего запроса. Это полезно делать, когда вы используете собственный запрос (помните о проблемах безопасности, здесь это важно).
Ответ №2:
Нет, с 18.08.2020 создать динамическое расписание обновления невозможно. У вас есть элементы управления в вашем отчете (на рабочем столе) и у вас есть элементы управления онлайн. Вот и все.
Комментарии:
1. Это действительно плохо. Если пользователь не имеет контроля над raport, весь raport кажется бесполезным. Надеюсь, команда PBI исправит это в будущем…
2. Я согласен. Но это и есть ответ.
3. Я обнаружил, что могу динамически передавать параметры в SQL с помощью собственного запроса. Я устанавливаю значения для параметров на уровне визуализации, и данные обновляются автоматически.
4. @Muska Потрясающе! Я рад, что вы нашли то, что искали! Теперь я перечитал вопрос и то, что я написал, я вижу, что мы говорили о двух разных вещах. Я имел в виду элементы управления запланированным обновлением
Ответ №3:
На самом деле этот метод работает только на power bi desktop, когда вы публикуете отчет в службе pbi или на сервере power bi, нет никакой опции управления параметрами.
Это давно ожидаемая тема для команды разработчиков ms / pbi.
Лучшие