【问题标题】:Passing report level filter to power bi from asp.net mvc application从 asp.net mvc 应用程序将报告级别过滤器传递给 power bi
【发布时间】:2019-12-23 12:25:53
【问题描述】:

我在我的 asp.net mvc 应用程序中嵌入了 power bi 报告。它工作正常并且正在显示数据。我有一个问题,在我的应用程序中,每个客户都有几个像城市这样的分支机构。该客户端的每个用户都可以访问所有或部分分支,并根据该访问权限在该用户登录系统时显示数据。

我想在 power bi 中实现相同的功能,即当用户登录系统并查看报告时,它应该向他/她显示他/她有权访问的分支数据。我找到了一个解决方案 [Can I pass a dynamic query parameter to an embedded Power BI report in ASP.Net MVC? 我们可以从程序端设置过滤器值。我在我的视图中应用了它,但我仍在获取所有数据。

    const branchFilter = {
        $schema: "http://powerbi.com/product/schema#basic",
        target: {
            table: "tblWorkhistory",
            column: "BranchID"
        },
        operator: "In",
        values: [1],
        filterType: models.FilterType.BasicFilter
    }

        var config = {
        type: 'report',
        tokenType: models.TokenType.Embed,
        accessToken: accessToken,
        embedUrl: embedUrl,
        id: embedReportId,
        permissions: models.Permissions.All,
        viewMode: models.ViewMode.View,
        filters: [branchFilter],
        settings: {
            filterPaneEnabled: true,
            navContentPaneEnabled: true
        }
    };

在这里我想应用过滤器,它将仅显示 id 为 1 的分支的数据,但它显示所有数据。我在这里错过了什么吗?在这段代码之后我还需要做任何报告吗?

问候, 萨凡

【问题讨论】:

  • 您缺少应用声明的过滤器的步骤,例如致电report.setFilters([branchFilter]);
  • 这有帮助,谢谢。当我将特定值作为过滤器值传递时它正在工作,但当我想传递分配给任何变量的值时它就不起作用。我正在使用var currentBranchID = "@AppSession.Current.BranchID"; 和上面的branchFilter 而不是静态1 我正在使用`目标:{表:“WorkHistory”,列:“BranchID”},运算符:“In”,值:currentBranchID`如果我把currentBranchID放在[ ] 然后它返回所有数据,如果删除 [] 则我收到语法错误。我可以通过任何方式传递动态值。

标签: asp.net-mvc powerbi powerbi-embedded powerbi-filters


【解决方案1】:

支持使用嵌入配置应用过滤器,您分享的代码示例似乎有效。

如果 report.setFilters 也失败了,似乎过滤器有问题。

尝试验证过滤器的数据类型,应该是1还是“1”?

如果这不起作用,是否从 .setFilters 请求返回任何错误消息?:

const filter = { ... };

report.setFilters([filter])
  .catch(errors => {
    // Handle error
  });

详细了解here 通过 JS SDK 设置过滤器。

【讨论】:

    【解决方案2】:

    要根据登录到您应用程序的用户显示数据,您必须首先在您的 power bi 报告中应用 行级安全性 (RLS),然后按照以下文章 https://docs.microsoft.com/en-us/power-bi/developer/embedded-row-level-security 中的步骤进行操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多