重新加载Tableau自定义SQL数据源(live),参数= username()在注销和使用不同的用户登录后



我创建了一个这样的数据源:

select sd.* from global_reporting.summary_drivers sd
join global_reporting.vw_row_level_security vrls
on vrls.company = sd.company
where vrls.company = SUBSTRING_INDEX(<Parameters.COMPANY_AND_USER>, '~~', 1)
and
vrls.username = SUBSTRING_INDEX(<Parameters.COMPANY_AND_USER>, '~~', -1)

问题是,如果我注销并重新登录从一个WebApplication,其中包括仪表板到iframe, username()函数改变正确,但派生的参数没有改变,所以数据源仍然与旧的数据。

参数。COMPANY_AND_USER是从一个计算字段开始设置的,从username()函数开始。

问题:

  • 我在正确的道路上还是有更好的或任何其他方法来做到这一点?

既然你在网页中嵌入视图,你可以使用JavaScript API来微调视图的行为,或者更紧密地将其与网页结合起来https://help.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api.htm

例如,您可以告诉您的视图在用户更改时使用RefreshDataASync()函数刷新数据。

我建议使用<object>标签内放置的<div>而不是<iframe>标签嵌入您的视图,以获得更多的控制。https://help.tableau.com/current/pro/desktop/en-us/embed_code.htm

Tableau制作了一个非常好的关于JavaScript API的快速教程,让你很好地了解它提供了什么以及如何使用它,你可以在大约5分钟内浏览一下。强烈推荐。https://help.tableau.com/samples/en-us/js_api/tutorial.htm

说了这么多,你绝对可以为你的数据源使用自定义SQL,但是只有当你确信更高级别的特性不适合你的时候,我才会降低到这个级别。如果只是出于可维护性的考虑。

最新更新