Как применить фильтр в PowerBI WebApp - PullRequest
0 голосов
/ 11 октября 2018

Я создал одно WebApp, которое размещено на Azure IIS.Я звоню в отчеты и панели мониторинга PowerBI и отправляю их в свое веб-приложение.

Мне нужно применить следующие функции, и я не могу найти решение в Интернете.

  1. Пользователи могут фильтровать данные по фильтрам, доступным в PowerBI, из веб-приложения.
  2. Защита на уровне строк может применяться при вызове отчетов PowerBI и визуализации на веб-странице.

1 Ответ

0 голосов
/ 02 ноября 2018

Не ясно, какой тип URL вы используете для встраивания отчетов.По сути, есть 3 URL-адреса, которые вы можете использовать для отображения отчета в вашем веб-приложении:

  1. URL-адрес, взятый из адресной строки вашего браузера.В этом случае использование вашего веб-приложения необходимо зарегистрировать в службе Power BI и получить права на просмотр этого отчета.Одним из недостатков является то, что в вашем веб-приложении вы увидите не только отчет, но и всю страницу Power BI (включая навигационное меню слева).
  2. URL-адрес, используемый при публикации этого отчета публично с помощью публикации в Интернете.В этом случае только отчет будет встроен в ваше веб-приложение (меню не будут отображаться), но вы не можете сделать это для отчетов по наборам данных с поддержкой RLS (поскольку RLS требует идентификации пользователя, в то время как в этом случае доступ является анонимным).
  3. embedUrl отчета (или фрагмента, или панели мониторинга), который можно получить с помощью API-интерфейса REST Power BI.Обычно он используется, когда для этого рабочего пространства назначена выделенная емкость (Power BI Embedded).В этом случае есть два сценария - «Данные пользователя» и «Данные приложения».В первом из них каждый из ваших пользователей должен иметь свою учетную запись и права на просмотр отчета (как в # 1).В более позднем сценарии вы используете одну общую «учетную запись» в своем веб-приложении, чтобы получить доступ к отчету, и пользователям не нужно проходить аутентификацию.Вы можете взглянуть на samples , чтобы увидеть, как это работает.По сути, вам нужен клиент JavaScript Power BI, одна HTML-страница с кодом JavaScript и немного кода для загрузки отчета в файлы (проверьте файлы powerbi.js, ReportLoader.html и ReportLoader.js из samples . AХорошее место для начала - эта статья - Учебное пособие. Встраивание отчета, панели мониторинга или плитки Power BI в приложение для ваших клиентов .

Чтобы применить фильтры к встроенному отчету,Вы можете использовать одну из недавно новых функций (если я прав, она доступна с августа 2018 года) и добавить фильтры в URL. Я не уверен, что это будет работать в случае № 2,но я не буду рекомендовать использовать его в любом случае.

RLS невозможен в случае № 2. В случаях № 1 и № 3 RLS будет просто работать. С № 3, если вы используете сценарий «собственные данные приложения», дляДля работы RLS необходимо передать имя пользователя и роль при создании токена для доступа к отчету (поскольку в противном случае для всех запросов пользователя Power BI всегда будет видеть идентичность вашей «основной учетной записи» и RLSне будет никакого смысла).Это указывается с помощью параметра EffectiveIdentity .

Вы также подключили «power-bi-report-server» к своему вопросу, но в то же время говорите, что ваше веб-приложение работает вAzure.Если все ваши отчеты находятся на сервере отчетов Power BI в помещении, вы можете встраивать отчеты, передав параметр rs_embed = true и в URL-адрес отчета.В этом случае, чтобы заставить работать RLS, вам просто нужно убедиться, что ваши пользователи аутентифицированы под своими собственными учетными записями.Передача фильтров в URL также работает с последними версиями (в марте 2018 года она была сломана, но исправлена ​​в 15.0.2.389).

...