【问题标题】:How to apply filter in PowerBI WebApp如何在 Power BI Web App 中应用筛选器
【发布时间】:2019-03-16 11:56:08
【问题描述】:

我创建了一个托管在 Azure IIS 上的 WebApp。我正在调用 PowerBI 报告和仪表板并将它们呈现到我的 WebApp 中。

我需要应用以下功能,但我无法在线找到解决方案。

  1. 用户可以从 Web 应用程序的 PowerBI 中可用的过滤器中过滤数据。
  2. 当我们调用 PowerBI 报表并呈现到网页中时,可以应用行级安全性。

【问题讨论】:

  • 如何将这些报告嵌入到您的网络应用程序中?您是否使用 Power BI Embedded API 或通过将这些报告发布到 Web 时生成的 URL?
  • 我开发了一个调用 url 并呈现它的应用程序。我也对 API 解决方案持开放态度。

标签: powerbi powerbi-embedded powerbi-desktop power-bi-report-server


【解决方案1】:

尚不清楚您使用哪种 URL 来嵌入报告。本质上,您可以使用 3 个 URL 在 Web 应用中显示报告:

  1. 从浏览器地址栏中获取的 URL。在这种情况下,您的 Web 应用程序的使用需要登录 Power BI 服务并被授予查看此报告的权限。缺点之一是在您的 Web 应用中,您将不会只看到报表,而是整个 Power BI 页面(包括左侧的导航菜单)。
  2. 当您使用“发布到网络”公开分享此报告时使用的 URL。在这种情况下,只有报表将嵌入到您的 Web 应用程序中(菜单将不可见),但您不能对启用 RLS 的数据集上的报表执行此操作(因为 RLS 需要用户的身份,而在这种情况下访问是匿名的) .
  3. 您可以使用 Power BI REST API 获取的报告(或磁贴或仪表板)的 embedUrl。当您为此工作区(Power BI Embedded)分配了专用容量时,通常会使用它。在这种情况下,有两种情况——“用户自己的数据”和“应用程序自己的数据”。在第一个中,您的每个用户都必须拥有自己的帐户和权限才能查看报告(如 #1 所示)。在后一种情况下,您在 Web 应用程序中使用一个共享的“主帐户”来访问报告,并且您的用户无需进行身份验证。您可以查看samples 以了解其工作原理。本质上,您需要 JavaScript Power BI 客户端、一个带有 a 的 HTML 页面和一些 JavaScript 代码来加载报告(检查samples 中的 powerbi.js、ReportLoader.html 和 ReportLoader.js 文件。一个很好的起点是这篇文章吗 - Tutorial: Embed a Power BI report, dashboard, or tile into an application for your customers

要将过滤器应用于嵌入式报告,您可以使用最近新增的features 之一(如果我没记错的话,它自 2018 年 8 月起可用)并在 URL 中添加过滤器。我不确定这在 #2 的情况下是否有效,但无论如何我都不建议使用它。

RLS 不适用于案例 #2。在 #1 和 #3 的情况下,RLS 将简单地工作。对于#3,如果您使用“应用程序自己的数据”方案,为了让 RLS 工作,您需要在生成令牌以访问报告时传递用户名和角色(因为否则对于所有用户的请求,Power BI 将始终看到您的“主帐户”和 RLS 将没有任何意义)。这是用EffectiveIdentity 参数指定的。

您还在问题中附加了“power-bi-report-server”,但同时您说您的 Web 应用程序正在 Azure 中运行。如果您的所有报表都在本地 Power BI 报表服务器上,那么您也可以通过在报表的 URL 处传递 rs_embed=true 参数来嵌入报表。在这种情况下,要使 RLS 工作,您只需要确保您的用户使用他们自己的帐户进行身份验证。在 URL 中传递过滤器也适用于最新版本(它在 2018 年 3 月被破坏,但在 15.0.2.389 中修复)。

【讨论】:

猜你喜欢
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多