ついでに アプリのワークスペースに配置された データフロー についても更新を試みる。ただし、Power BI データフロー は 現在パブリックプレビューの段階だし、サポートする API も当然プレビュー。普段使いまでには至らないけどちょっとした小道具っぽく使えてよいかなと。
以前のポストでアプリのワークスペースに配置されたデータセットの更新を仕掛けてみた。
Power BI REST API を使ってデータセットの更新を仕掛ける - Qiita
情報
Power BI データフロー用の開発者向けリソース (プレビュー) - Power BI | Microsoft Docs
ここに Power BI データフロー REST API のリファレンスがあるのでよく読むなど。
今回利用するのは、
- Get All Dataflows (Preview)
- Refresh Dataflow (Preview)
の 2つだけど、Create Dataflow Reference to external storage (Preview) というのがあって面白そうです。API だけで操作するということでないはずだが、
The Create Dataflow Reference operation creates a new dataflow artifact in the Power BI service that is referencing a dataflow hosted in an external storage. The external storage includes both the dataflow definition file and the dataflow data.
Azure 統合 - Release Notes | Microsoft Docs
Power BI データフロー で利用されるストレージは 用意されたAzure Data Lake Storage Gen2 なのだけど、これを持ち込みの Azure リソースを参照先とすることができるようになるっていうお話。
Action
Group
Groups - Get Groups をそのまま使う
Dataflows
Get All Dataflows (Preview)
ワークスペースに配置された データフローの情報をGET
GET https://api.powerbi.com/v1.0/myorg/groups/{groupId}/dataflows
アプリのワークスペースを特定できる groupId が必須。
必要なAPIのアクセス許可 : Dataflow.Read.All
Refresh Dataflow (Preview)
POST https://api.powerbi.com/v1.0/myorg/groups/{groupId}/dataflows/{dataflowId}/refreshes
必要なAPIのアクセス許可 : Dataflow.ReadWrite.All
リファレンスには Request Body の記述がなかったので、データセットと同じ Notify Option をPOSTしてみた。
ひと通り動作まで
登録したアプリの更新
データセットの更新をサポートするカスタムコネクタがすでにあるので、API のアクセス許可(Dataflow.ReadWrite.All) のみ追加
Get All Dataflows (Preview)
3.定義 - GetAllDataflows
全般
要求
[サンプルからインポート]押下
動詞 : GET
URL : https://api.powerbi.com/v1.0/myorg/groups/{groupId}/dataflows
要求 - パス - groupId
4.テスト - GetAllDataflows
操作
応答
3.定義 - GetAllDataflows
応答
[サンプルからインポート]押下
テストでコピーした応答 - ボディをペースト [インポート]押下