首页 文章

Power BI嵌入式,直接查询,不刷新

提问于
浏览
1

我已经在Web应用程序中嵌入了Power BI,并使用Azure SQL作为数据源进行直接查询 .

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

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

我是否正确理解我的案例中的开放视觉应该是令人耳目一新的,而无需用户交互?

你能指出它不能自动更新的原因吗?你还知道一种方法来控制刷新的时间与直接查询没有用户交互比“大约每十五分钟......”更准确

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

1 回答

  • 1

    根据我的理解,嵌入式报告使用Power BI JS框架(https://github.com/Microsoft/PowerBI-JavaScript)从工作区集合中嵌入报表,然后您可以在报表对象上使用 refresh() 方法手动获取最新数据,前提是您的报表正在使用直接查询 .

    此方法仅出现在框架的2.2.0版本中,然后在最新版本(当前为2.2.1)中删除,同时执行围绕计费的进一步测试(请参阅https://github.com/Microsoft/PowerBI-JavaScript/commit/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,并且需要使用新令牌重新加载报告 .

    如果您计划保持报告的开放时间超过分配的会话时间,您可能希望在会话到期时实施一些检查 .

相关问题