前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Power Automate实现PowerBI数据集刷新结束后通知

Power Automate实现PowerBI数据集刷新结束后通知

作者头像
陈学谦
发布2022-05-25 13:39:58
1.6K0
发布2022-05-25 13:39:58
举报
文章被收录于专栏:学谦数据运营学谦数据运营

本文为PowerBI REST API高级应用教程,需要有REST API基础,并且能够自行获取token的基础上进行操作。

实际的业务场景往往纷繁复杂,比如某个时候你需要将最新的数据呈现给甲方爸爸,在按了一次刷新之后,在漫长的数据集刷新过程中,可能需要一次次点开网页刷新,看看是否已经刷新结束,往往消磨了人们的耐性。示例的文件刷新15分钟已经够客气了。

当然,你可以在每次刷新时设置一个15分钟的闹钟,以便提醒,但是未免太过繁琐。并且不是每次的刷新都是15分钟,往往有些时候可能需要更长的时间。

如果能有一个办法在每次刷新结束时自动提醒我就好了!

有人说可以通过数据预警,但是数据预警只能设置每天或者每小时发通知一次,而且设置思路并不是很明确。

一、本文提供的思路是:

当前时刻,以往每次刷新的状态是可以获取的,通过API。

刷新状态一共有三个,Completed(成功),Failed(失败),Unknown(未知,即正在刷新)。

也就是说,可以通过刷新状态的变化,来确定什么时间刷新结束。

比如一次刷新大约需要15分钟,那么我可以设置一个10分钟一次检测的flow(该时间间隔一定要小于数据刷新的时间,否则有一定几率漏掉),获取最后一次刷新的状态。

如果状态不为Unknown,跳过;

否则进入小循环,5秒检测一次,直到状态转为Completed,结束,发送邮件通知。

二、具体设置过程:

1、触发

Power BI刷新开始并没有直接或间接的触发条件(可能是我孤陋寡闻了,如有高见,请不吝指教),如果是每天固定的计划刷新,那么可以可以设置在某个时间段开始运行flow;如果是手动触发,也是有办法的,比如报告上使用一个flow来触发,dataset刷新启动后下一步就是这个操作。具体可以参考这篇文章。

但是很多时候可能既有手动刷新也有定时刷新,并且定时刷新时间也会有所变动, 此时上面的办法就不行了。

flow的触发可以使用定时,比如10分钟检测一次,如果状态不为Unknown则跳过。但是这里面有个逻辑,比如一个dataset刷新从14:02刷新到14:17,那么如果在14:05定时触发检测到状态为Unknown,则进入小循环,等到14:17刷新结束时一定会收到提醒邮件,这个没问题;但是14:15时定时运行的flow又会再一次运行另一个进程,依然会检测到Unknown,依然会进入小循环,并在14:17时发送另一个提醒邮件。

也就是说, 通过这种方式定时运行flow会有一定的小问题。

那么我们如何改善这一点呢?

答案是,手动触发。

有同学会问了,手动触发不就是一次性的吗?难道每次刷新都需要手动触发?

并不是!

我们这里使用了一个技巧,套用了两个loop,每个loop设置5000次(这也是limits的最大值),这样就是25000000次循环:

按照设定的10分钟delay一次,大约可以运行475.6年……嗯,基本够用。

如果你非说不够用,就再套个5000次!

2、获取状态

API获取刷新状态是一个基本的操作:

代码语言:javascript
复制
GET https://api.powerbi.com/v1.0/myorg/groups/{groupId}/datasets/{datasetId}/refreshes?$top={$top}

这篇文章中有所介绍:

Power BI 异步刷新-查询刷新历史与手动停止刷新

此处用了一个$top=1,即获取最后一次的刷新即可。

获取的内容是一个json,关于json的处理这篇文章有所介绍:

PowerAutomate云端流中JSON的增删改查操作

代码语言:javascript
复制
first(body('HTTP_获取刷新历史')?['value'])?['status']
3、一旦识别了Unknown,进入小循环

加一个条件判断,如果最后一次刷新状态是Unknown,进入小循环,5秒获取一次,直到状态改变:

状态改变代表着刷新结束,当然,结束有多种方式,Completed只是其中一种,也可能会失败。但是不管刷新结果是什么,我们都会收到邮件的提醒。

4、实操展示

我分别在17:12,17:28和17:51进行了刷新:

刷新结束时都收到了邮件提醒,3次刷新都成功:

三、总结

本文讲解了使用PowerBI REST API配合PowerAutomate实现PowerBI报告刷新结束时邮件通知的方法。前提是能够使用Azure AD设置应用程序,调用API,并且需要PowerAutomate的高级版应用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、本文提供的思路是:
  • 二、具体设置过程:
    • 1、触发
      • 2、获取状态
        • 3、一旦识别了Unknown,进入小循环
          • 4、实操展示
          • 三、总结
          相关产品与服务
          腾讯云 BI
          腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档