【问题标题】:PowerBI blank data templatePowerBI 空白数据模板
【发布时间】:2017-04-24 17:39:31
【问题描述】:

目前我正在使用 PowerBI 中的仪表板模板,该模板将在桌面版本中进行试点。该模板通过在 MDX 查询中应用的过滤器根据用户的授权填充数据。但是在将模板分发给其他人进行试用时,它仍然充满了基于我的个人授权的数据,只有在用户使用他的个人授权刷新时才会被替换。

我正在寻找一种解决方案,既不会破坏模板,又能确保我的数据在打开模板时不会显示给其他人,换句话说,我如何确保用户打开文件时看到一个空模板(无数据)。

我尝试将过滤器参数置空(导致数据错误和缺少列从而破坏仪表板)

谁能帮我找到解决办法?

【问题讨论】:

    标签: mdx powerbi


    【解决方案1】:

    您可以添加一个模板用户(仅用于创建报告)并围绕您的度量设置 Scope 声明:

    Scope(AddCalculatedMembers([Measures].Members));
        This = IIF(
                    [Measures].CurrentMember
                    and
                    UserName() == "domain\template.user",
                    "Blank",
                    NULL
        );
    End Scope;
    

    【讨论】:

    • 对我来说,听起来立方体安全性已经到位 Danylo - 问题更多的是关于 PowerBI 模板缓存结果,这些结果随后对后续用户可见 - 提问者如何仍然允许用户访问到模板,但确保模板中没有缓存以前的结果?
    • 如果 template.user 共享一个报告,度量值将被置空并最初缓存为空白。您可能对维度成员应用相同的方法(尽管从未尝试过)。如果非模板用户将转发报告,是的,没有安全保证。从 Excel 回顾来看,这个用户只能用于模板准备(我稍后会写博客)。不确定 Power BI,因为它仍在开发中,并且预缓存本身就是一项优先功能。
    【解决方案2】:

    感谢您的回复。我设法用一个简单的解决方案解决了这个问题。通过在 MDX 之后围绕 Table.RenameColumns 函数添加一个 try 结构,我能够捕获一个空白查询并使用 Table.FromRecords 手动添加带有空白行的其他检索列。这可以防止所有后续查询和度量返回错误,从而在用户参数无效时将所有数字都清空。然后最后只需将任何无效值添加到用户参数并保存为模板,瞧。

    【讨论】:

      猜你喜欢
      • 2012-01-02
      • 2021-06-06
      • 2022-01-17
      • 2016-10-15
      • 2013-07-11
      • 1970-01-01
      • 1970-01-01
      • 2017-07-04
      • 2019-06-02
      相关资源
      最近更新 更多