Power BIレポートのテンプレート化 ～同じPower BIレポートを別の環境(Dataverse)のテーブルに接続したい～

こんにちは！
題名が長くなってしまいましたが、今回はレポートをテンプレート化したいときの１つの方法についてご紹介します。
ただのテンプレートファイルpbitではなく、
**違う環境のDataverseにつなげてその環境の同じ名前のテーブルのデータレポート化を自動化**したいときの方法です！
（テーブル名や列名が変わる場合追加手順必要）

こちらを設定しておくと、環境のURLを入力するだけでデータに接続できるテンプレートを作成することができます。

なんだかうまく説明できないので(´;ω;｀)、次のイメージをご参照ください。

# 今回の「テンプレート」とは？動作イメージ
ファイルを開くと画像のようなポップアップが表示され、環境のURLを入力したらデータ接続完了！というものです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/66333141-a09c-37b9-d166-0ca64b755d7a.png)

::: note warn
通常のテンプレートファイルpbitだと環境情報が保存されてしまっており、変更できません。
:::

# 作成方法
では早速手を動かしていきましょう。

## レポートダウンロード
こちらの手順はpbixファイルがローカルにある場合は必要ないです。

まずPower BI Serviceから、移行したいレポートをダウンロード
レポートを開き、[ファイル]>[このファイルをダウンロードする]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/7f91a007-57ca-9014-6c67-4291a755ed6a.png)

[レポートとデータのコピー]を選択した状態で、[ダウンロード]ボタンをクリック
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/bd8e23ca-2b57-bf32-1750-f5571af6f738.png" width=70%>

## レポートのパラメーター設定
ファイルエクスプローラーでレポートを選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/4abd823f-94fc-23df-a2f7-a95224e9573a.png)

Power BI Desktopを開いたら、[データの変換]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/2cd89dd1-b109-dbc9-87e5-a8f96e49e406.png)


Power Query エディターが開かれたら、
左の「クエリ」の下で１つのテーブルが選択されていることを確認（今回は「Contact」というテーブル）して[詳細エディター]をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/5d6fd211-aff4-9f52-bcdb-56b10e688a28.png)

以下の赤枠箇所にデータソース情報が保存されているのでこちらを**コピー**する（ダブルクオーテーションは含めない）
コピーしたら、一旦こちらのウィンドウは[×]ボタンで閉じる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/9715680a-b613-e03b-185d-10146d37657f.png)

::: note
「詳細エディター」はGUIなどで設定したクエリの中身を表示します。
クエリが書ける方は直接こちらを編集するのもいいです！
:::

Power Query エディターに戻ったら、
[パラメーターの管理]>[新しいパラメーター]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/80063c0f-9fcb-2549-0200-288f5cfa1a8d.png)

パラメータを以下のように設定する
「現在の値」に先ほどコピーした環境URLを入力する
完了したら[OK]ボタンをクリック
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/fa38cb31-e898-642b-66e7-9be2bcc1b911.png" width=80%>

左の「クエリ」の下で１つのテーブルを選択し（今回は「Contact」というテーブル）、[詳細エディター]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/4364781a-92da-b2e2-c3cd-df791e434a2e.png)


先ほどコピーした環境URLのところに、作成したパラメーター「environment」を入力
[完了]ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/36832957-62bc-acc1-839a-77f321cde171.png)



接続されているテーブルすべてにこれを設定しましょう。
（クエリの下に表示されているテーブルマークのものが接続されているテーブル）
テーブル選択>[詳細エディター]>環境URLをパラメーター「environment」に設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/f65b1598-9dec-100f-458e-50e7840bff58.png)

::: note warn
もしテーブルの名前が変わる場合は以下の手順を追加してください。
クエリの「Item=」の先にテーブルの論理名を設定します。
今回の場合「contact」の部分を変えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/4272075e-4954-e570-690a-46f1e82c0110.png)

論理名とは英語名です、Power Apps Dataverseのテーブル詳細画面などで確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/98abbed8-aee7-8c2f-94e6-94d258895eb4.png)
:::


すべてのテーブルに対して、設定完了したら、[閉じて適用]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/d635a4ce-2abc-6314-eebb-afc5b20c5777.png)

# テンプレートとして保存
[ファイル]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/594e0c01-ed7e-8e85-ebf2-36f9f6e9975b.png)


[名前を付けて保存]をクリック
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/c76cbaf5-4f4d-f968-7e2e-917e5b95bbb6.png" width=50%>


名前を設定し、[ファイルの種類]で[Power BI テンプレートファイル(*.pbit)]を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/bb36e4c3-2419-4b46-fda5-dac164a06860.png)


# テンプレートの使い方
テンプレートが完成したので、今度はテンプレートの使い方についてご紹介します。

まず、PowerPlatform管理センターで、移行先の環境URLの取得をします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/5581cf59-561d-fe2c-3069-13859f60e44d.png)

ローカルでテンプレートを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/1027d251-5843-6a6c-8045-a4aa0f9305b3.png)

環境に接続します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/75b77eef-5985-dfa6-1baf-3bdbe8537ba8.png)

ログイン画面が表示されたら、環境にログインします。表示されないこともあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/4fce1bd9-583c-b47a-370f-86e7bcdd20ba.png)


接続完了です！
（データが入っていない場合、グラフは表示されませんが、エラーが出なけれ問題ありません。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/58888574-96e9-a65f-1605-0e2d610fa8b8.png)


フィルターは取れていないか確認お願いします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/34c3abb8-9db7-9ca4-5119-05becc2e8135.png)

最後にPower BI Serviceに発行して完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/98d9b903-fada-c6b9-743a-3ea552394235.png)


# まとめ

どうでしたでしょうか？
環境を変更する際、毎回、テーブルを接続しなおして、列の設定をし直すのが大変だったかと思うのですが、パラメーターを設定することで、テンプレートっぽくすることができました。
今回環境情報を変数として作成しましたが、他にもパラメーター作成して応用できそうですね。

# 参考

https://learn.microsoft.com/ja-jp/power-query/power-query-query-parameters