[Power BI Tips]定期的にレポート (pbix) をエクスポートしたい ～ Power Automate / Azure Logic Apps のカスタムコネクタの作り方 ～ Vol.2

# 前回からの続きです
[前回 (定期的にレポート (pbix) をエクスポートしたい ～ Power Automate / Azure Logic Apps のカスタムコネクタの作り方 ～ Vol.1)](https://qiita.com/yugoes1021/items/486d92139bd5cd1ca967) からの続きです。
もし Vol.1 をお読みでない方は、前回を読んでからこの記事を読むことをオススメします。前回を読んでいる前提で進めます。

# おさらい
Vol.1 でカスタムコネクタの作成まで終わりました。
今回は作成したカスタムコネクタを使って、フローを作成します。

# Power Automate でカスタムコネクタを使ってフローを作ります
ではさっそく Vol.2 の本題です。
まずは [Power Automate](https://flow.microsoft.com) を開きます。
## スケジュールトリガーを設定する
定期的にレポートをエクスポートしたいということなので、スケジュールトリガーを使いましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/36862895-9707-d296-5904-85f3337c28ef.png)
**[+作成] - [予定フローを作成]** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/6e90e758-91e9-dab9-ddff-bb5c87bf294c.png)
**[フロー名]** はご自身で分かりやすい名称を、**[開始します]** はいつから開始するかで、デフォルトだと今日の日付が入っているはずです。今日からなら、そのままで OK です。
**[繰り返し間隔]** は毎日実行するなら **1日** としてください。1週間に1回であれば **1週** で OK です。
後からでも変更可能なので、とりあえず、画像の通りにして、**[作成]** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/17c12b8f-5b73-1413-5c52-6543372c2b00.png)
**[設定時刻]** で例えば **18** を選択すると **[プレビュー]** に**「毎日 18:00 に実行する」**と出てきます。ここで選ぶ時刻は **日本時間(JST)** です。クラウドサービスあるあるの **UTC** ではないのでご安心ください。

次はアクションです。
画面下の **[新しいステップ]** をクリックします。

## カスタムコネクタを使いましょう
**[新しいステップ]** をクリックして、**[カスタム]** をクリックすると、ご自身の環境にあるカスタムコネクタが一覧できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/36199887-2399-98a9-cd5a-6f0ca3a677ed.png)
Vol.1 で作成した **Power BI REST APIs** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/f75c0c1e-5190-1375-ccf5-9c85fb0e5b8b.png)
そうするとカスタムコネクタで定義した２つの **API** がアクションとして表示されます。今回必要なのは **Export Report** ですので、**Export Report** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/ba080f53-1b4f-cc11-c683-515fc44c1d3f.png)
と、画像を切り貼りしてて気付きました。**試験的な機能** を **ON** にしてましたw
より一般的な画面でお伝えするべきなので、**試験的機能** を **OFF** にすると ↓ のような画面になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/614da3fb-8e77-b71d-2d1c-61f03975db6a.png)
完全に余談ですが、試験的機能を ON にすると、裏の値（ここでは reportId）まで見えるのは **非常に Good** ですね！
以降は **試験的機能** を **OFF** にした状態で進めます。
ここでエクスポートしたいレポートを選択します。レポート名が表示されているので選びやすいですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/fcfc42ba-809a-6858-954c-d22587af68d0.png)
私は **DemoReport** を選びました。
参考までにこんなレポートです。遥か彼方昔に発行したものです。元ネタは @PowerBIxyz さんからもらったレポートだった気がしますw
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/f46faf1f-fc92-6ec9-3452-98afab1e1959.png)

## ファイル名に日時を付けたい？
定期的にエクスポートするとなると、このニーズも出てくるでしょう。
**「常に最新のファイルのみでいいんだ！」**
という人はこのステップは不要です。先に進んでください。

ファイル名に日時を付けるとなると、現在時刻が必要です。なので現在時刻を取得して、JST に変換しておきます。
日時と入力して、**[現在の時刻]** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/4703095c-8f4a-347b-10eb-125616c932e3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/fff5e007-5ac2-5f51-60a9-584c32405dc4.png)
このアクションは設定不要です。ただしこれで取得されるのは **UTC** です。なので **JST** に変換します。
**[+新しいステップ]** をクリックして、もう一度日時で検索し、今度は **[タイムゾーンの変換]** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/fb0ff88a-b12b-1740-f32b-b23661bd3ec5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/f8d49c7e-ab3d-c99f-189f-d3d3323d75a1.png)
↑ の画像のように

| No. | 項目名                | 値                                                                    |
|:---:|:----------------------|:----------------------------------------------------------------------|
| 1   | 基準時間              | 現在の時刻                                                            |
| 2   | 変換元のタイムゾーン  | (UTC) 協定世界時                                                      |
| 3   | 変換先のタイムゾーン  | (UTC+09:00) 大阪、札幌、東京                                          |
| 4   | 書式文字列            | yyyy-MM-dd_HHmmss                                                     |

と選択 or 入力してください。最後の書式文字列は日付のみでよければ **yyyy-MM-dd** で OK です。

## 保存先はとりあえず OneDrive for Business で
さて、pbix ファイルをエクスポートするということは当然保存先が必要なわけです。

元の質問が

**Q：Power BI のレポートを自動更新するように設定しているが、オフライン状態でも解析したいタイミングがある。そのため自動更新とあわせて Power BI サービスから .pbix ファイルを自動で取得することはできないか？**

でしたので、**オンプレミスデータゲートウェイ**を使用して、**PC** のフォルダに保存するのでも **OK** なのですが、**オンプレミスデータゲートウェイ** の説明がちょっと面倒なので、それよりも簡単な **OneDrive for Business** に保存して、自身の **PC** と同期をしている、という設定にしちゃいましょう。
**[新しいステップ]** をクリックして **OneDrive** と検索します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/0c17faeb-0c85-60cf-a961-710cb3ba3a99.png)
**[ファイルの作成]** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/10209711-8aff-e744-9199-f6db4d65ace1.png)
フォルダーのパス: 任意の場所 ← 定期的にということであれば専用のフォルダを決めた方がよいでしょう
ファイル名: JST に変換した日時を元のファイル名にくっつけてファイル名としています。
ファイルコンテンツ: カスタムコネクタの **[本文]** を指定します。

はい、これで出来上がりです！
**[保存]** ボタンをクリックして保存しておきましょう！
## テスト実行してみましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/52c253a4-81fb-dd5a-e3d3-0111b8fcf1ec.png)
画面右上の **[テスト]** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/086532fe-477c-fbf7-1beb-3d7736c4c026.png)
**[トリガーアクションを実行する]** を選択して、**[保存 & テスト]** or **[テスト]** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/4a42bce5-cfe8-b2c0-fe14-d340a6c389e7.png)
**[フローの実行]** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/f7e63a51-ffef-03aa-858d-5a21dc1327ed.png)
**[フロー実行ページ]** に移動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/d1c8c2ef-91f2-41be-0dc3-275ad26514d3.png)
一番上をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/153a466f-141b-5aa6-159c-e3f13adbaf00.png)
実行結果がオールグリーンであることを確認します。
また該当フォルダを見てみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/9e2ee998-1959-e8b0-a21d-8c7c38f369a5.png)
きちんと保存されていますね。
では試しに開いてみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/0ec82a8b-987b-f3e7-e40c-ca99c416b9e4.png)
うん、ちゃんと **Power BI Desktop** で開くことができました🤗
## おまけ ～マイワークスペース以外のワークスペースのレポートをエクスポートしたい～
**Vol.1** でカスタムコネクタに定義した **API** は **Export Report** でした。
https://docs.microsoft.com/ja-jp/rest/api/power-bi/reports/exportreport
他に **Export Report In Group** という **API** もあります。
https://docs.microsoft.com/ja-jp/rest/api/power-bi/reports/exportreportingroup

**Vol.1** で説明したように In Group が付くと、マイワークスペース以外のワークスペース用の API になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/e17e4d11-762b-bf4f-45d7-a3d314884eb7.png)
従って、パラメーターに **groupId** が必要になります。これはワークスペースの ID です。
なので、もし **Export Report In Group** を定義したいという人は、ワークスペースの ID を取得する API も定義したくなります。
ワークスペースのリストを取得する **API** は **Groups - Get Groups** です。
https://docs.microsoft.com/ja-jp/rest/api/power-bi/groups/getgroups

**API** がわかったので、ぜひぜひご自身で挑戦してみてください。
Vol.1 を見直して、落ち着いて設定していけば、どなたでも簡単です。
以下は参考例です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/f95b44d2-0766-e432-750f-6734b9fc027f.png)
↑↑↑↑↑ **Get Groups** の例 ↑↑↑↑↑
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/3931d08f-33bd-e4c9-1b5c-4872e88a0b5b.png)
↑↑↑↑↑ **Export Report In Groups** の例 ↑↑↑↑↑

# まとめ
いかがででしたでしょうか？
自動化といえば **Power Automate** です。今回は **Power BI REST API** を呼び出すために使用してみました。
API と聞くと、

**「えーそれって開発者が喜んで、文句を言いながら、試しに使うやつでしょ！？」**

って思っている方、大正解なのですが、いまや **API** は開発者だけのものじゃありません。**開発者ではない人**でも使い方さえわかれば、利用できるのです。
これを機に、少し使ってみてはいかがでしょうか？アイデア次第ですんごく楽になることが無限に存在していると思います。
ぜひぜひ、柔軟に考えてみてください！

Vol.1 と 2 ということで、最後まで読んでいただきありがとうございました。また気が向いたら、Power BI Tips シリーズ書きます。
皆様からのリクエスト、お待ちしております。

何かリクエストがあれば、以下までー🤗
Twitter: https://twitter.com/yugoes1021
Facebook: https://www.facebook.com/yugoes1021
LinkedIn: https://www.linkedin.com/in/yugoes1021/