6

我已经使用 Azure SQL 作为数据源实现了嵌入到 Web 应用程序中的 Power BI。

Azure SQL 数据库正在由 webjobs 更新,如果我保持打开 Power BI 嵌入式 Web 应用程序,除非我触发查询(例如更改选项卡或使用切片器过滤),否则我看不到新数据刷新的视觉效果。在文档中,我发现以下内容:

“如果在可视化中没有用户交互,比如在仪表板中,数据大约每十五分钟自动刷新一次。”

我是否正确理解在我的情况下,一个开放的视觉效果应该在不需要用户交互的情况下刷新?

你能指出它不自动更新的原因吗?您还知道一种无需用户交互即可通过直接查询来控制刷新时间的方法,而不是“...大约每十五分钟...”

检查 Power BI 桌面上的连接属性时,我确保它指示“直接查询”。

4

1 回答 1

2

据我了解,嵌入式报告不会自动刷新。但是,如果您使用 Power BI JS 框架 ( https://github.com/Microsoft/PowerBI-JavaScript ) 从工作区集合嵌入报表,则可以使用refresh()报表对象上的方法手动获取最新数据,前提是您的报表使用 Direct Query。

此方法仅存在于框架的 2.2.0 版本中,然后在最新版本(当前为 2.2.1)中被删除,同时执行了围绕计费的进一步测试(请参阅https://github.com/Microsoft/PowerBI-JavaScript/提交/5230b2f96b10a1104efecdffe78255b9788526b8)。

但是,在我的测试中,我发现会话计数不受刷新方法的影响。您最多可以每隔 15 秒刷新一次(服务器设置的限制)。然而,这可能会改变,因为该方法已在 2.2.1 中删除,但目前使用 2.2.0 似乎可行。

这是一个快速而肮脏的示例,它将在分配的会话中每分钟刷新一次报告:

powerbi.embed(reportContainer, embedConfig);
report = powerbi.get(reportContainer);

window.setInterval(function () {
     report.refresh();
}, 60 * 1000);

如果会话过期(当前 1 小时后),则需要请求新的 JWT,并且需要使用新令牌重新加载报告。

如果您计划将报告保持打开的时间超过分配的会话时间,您可能希望在会话到期时执行一些检查。

于 2016-11-13T15:20:12.703 回答