Power BI图表上的过滤器值无效

时间:2020-10-08 11:40:15

标签: powerbi powerbi-embedded

我正在使用Power BI嵌入式图表,其中包含从Javascript传入的过滤器。由于在数据库中定义了过滤器的方式,可能会以错误的类型应用过滤器(例如,为期望整数的过滤器提供的字符串)。如果发生这种情况,则该过滤器无效且未应用,这意味着用户可能会看到不该看到的信息。

设置图表的代码为:

    var powerBiDashboard = powerbi.load(embedContainer, config);

    powerBiDashboard.on('error', function () {
        console.log('error');
    });

      powerBiDashboard.on('loaded', function (event) {

        console.log('Loaded');

        powerBiDashboard.setFilters(
            [{  $schema: "http://powerbi.com/product/schema#basic",
                filterType: 1,
                target:
                    { table: "DummyData", column: "Count" },
                operator: "In",
                values: ["150"],
                displaySettings: { isLockedInViewMode: true }
            }])
            .catch(function (errors) {
            console.log(errors);
        });

        powerBiDashboard.render();
    });
 

(请注意整数过滤器的值“ 150”不正确)

这会在过滤器中生成一个带有以下内容的图表:

Invalid Filter

...而不是:

Valid Filter

如果发生这种情况,我不想显示图表,而是转到错误页面。

所以...我怎么知道过滤器是否无效?错误事件不会在powerBiDashboard对象上触发,并且setFilters方法调用的catch也不会执行。而且在powerBiDashboard对象上找不到任何有帮助的属性。

谢谢。

1 个答案:

答案 0 :(得分:3)

首先,不建议将Power BI JS筛选器与敏感数据一起使用。而是在报告上应用RLS

到目前为止,Power BI JS尚不具有此功能,在该功能中无效的过滤器值会引发异常。 Power BI Embedded团队已经意识到了这种情况,他们将在以后的版本中增加对此的支持。

要在今天规避此情况,您可以在应用之前检查值的类型,并相应地向用户显示警告/错误。

访问docs,了解有关使用Power BI JavaScript应用过滤器的更多详细信息。