Power Apps モデル駆動型アプリにPower BIレポートを埋めこんでみる

どうも、こんにちは、susumutanakaです。

#前書き
毎年この時期になると、さまざまなアドベントカレンダー企画があり楽しいですよねー。
いつもPower BIは恒例企画として参加してますが、今年のネタは
何にしようかと考えてましたが、筆不精ということもあり、さらっとできるネタで行きます！

じゃぁ、何かというと
今年デモ作成でやったPower Apps（厳密にはDynamics）のモデル駆動型アプリへの
Power BIレポートの埋め込みにしたいと思います。
一癖あったので、まとめて置くという意味でもいいのではないかと思っております。

こんな感じのものができあがります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322851/34a602fa-76d3-04b0-f9d2-4f36456bef82.png)

#参考URL

まずは、みんな大好きなMicrosoft Docsの参考URLです（笑）
※見慣れてくると、愛着がわくものかなと。。

**◆Power BI レポートをモデル駆動型アプリのメイン フォームに埋め込む**
<https://docs.microsoft.com/ja-jp/powerapps/maker/model-driven-apps/embed-powerbi-report-in-system-form>

#埋め込みパターンは２つ
埋め込みについては2パターンあります
**①コンテキストのフィルター処理なしで埋め込む
②コンテキストのフィルター処理で埋め込む**

「①コンテキストのフィルター処理なしで埋め込む」に関しては、
ただ埋め込んでいるだけ、何か絞り込みがあるわけではありません。

「②コンテキストのフィルター処理で埋め込む」に関しては、
モデル駆動のベースとなっているテーブルの対象レコードの値をベースに絞り込むことができるので、
こちらの方が実用的ではないかと思われます。

じゃぁ、今回はどっちということですが、とりあえず、さらっとできる
「①コンテキストのフィルター処理なしで埋め込む」でいきます。
※②については、のちのちUpdateもしくは、新規記事にでもしますわーm(__)m

#作り方の概要：
1.Power BIレポートの作成（ここは割愛）
2.Power Apps（厳密にはDynamicsな）モデル駆動アプリの作成（ここも割愛）
3.ソリューションエクスポート　※なぜか、一度ソリューションとして出力
4.ソリューションファイル内に、Power BIレポートのURLを埋め込む
5.ソリューションファイルのインポート

ざっと、こんな感じでしょうか？

#1.Power BIレポートの作成
割愛といいつつも何らかしら用意せねばならず、一般公開されているレポートでも埋めこんでみますかー
と思いましたが、埋め込むには、以下のパラメータが必要なため、サンプルレポートでも埋めこんでみますかなー

**プロパティ**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322851/be96d4e3-c649-024f-028f-92b6f6818f51.png)
参考URL：
<https://docs.microsoft.com/ja-jp/powerapps/maker/model-driven-apps/embed-powerbi-report-in-system-form#embed-without-contextual-filtering>

サンプルの読み込み
https://docs.microsoft.com/ja-jp/power-bi/create-reports/sample-customer-profitability#download-the-built-in-sample

読み込むと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322851/63ecf954-9cb5-d605-3e22-d99fc1d32a3e.png)

このレポートのURLからパラメータの確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322851/97e6ae2f-ec41-4dc9-9117-6b70d6ca767c.png)

こんな感じのURLなので
""
https://app.powerbi.com/groups/3644785b-2fc7-4343-afc2-ca4ce230b684/reports/f84a4a93-6bf1-4394-bc79-93481d6d6e02/ReportSection1
""

グループIDとレポートIDとは取得できますので、埋め込むパラメータとしてこんな感じ


|パラメータ    |値       |
|:------------|:--------|
|groups|3644785b-2fc7-4343-afc2-ca4ce230b684|
|reports|f84a4a93-6bf1-4394-bc79-93481d6d6e02|
|TitleURL|https://app.powerbi.com/reportEmbed?reportId=f84a4a93-6bf1-4394-bc79-93481d6d6e02|

これでレポート側の準備は完了。

#2.Power Appsのモデル駆動の作成

これも出来合いのものでいいので用意。今回はこんな感じものを用意

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322851/a0086c9b-68fc-e39b-a91b-79dcf55359e6.png)

まだ埋め込んでないですが、専用タブを用意。

ソリューションファイルとしてこんな感じで1フォームだけ用意しましょう！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322851/4eac337e-c7e8-81fa-bf68-8cecb0ab08b6.png)

#3.ソリューションファイルのエクスポート
準備ができたら、ソリューションファイルのエクスポート

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322851/a776f07d-43bf-fc7d-e005-a31753f508f9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322851/7dcdfb87-4c6d-ee99-dd90-c5e60dcb646e.png)

実行チェック前チェックを完了して、次へをクリック！
こんなのいつの間についたｗ

エクスポート完了！！

#4.ソリューションファイル内に、Power BIレポートのURLを埋め込む

出てきたZIPファイル内のXMLファイルの編集を行っていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322851/2256a093-30a1-2a6d-8636-320b3be69d59.png)



パラメータを参照しながら、以下の値を入力しましょう！


|パラメータ    |値       |
|:------------|:--------|
|groups|3644785b-2fc7-4343-afc2-ca4ce230b684|
|reports|f84a4a93-6bf1-4394-bc79-93481d6d6e02|
|TitleURL|https://app.powerbi.com/reportEmbed?reportId=f84a4a93-6bf1-4394-bc79-93481d6d6e02|

```
 <control id="unfilteredreport" classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}">
      <parameters>
           <PowerBIGroupId>3644785b-2fc7-4343-afc2-ca4ce230b684</PowerBIGroupId>
           <PowerBIReportId>f84a4a93-6bf1-4394-bc79-93481d6d6e02</PowerBIReportId>
           <TileUrl>https://app.powerbi.com/reportEmbed?reportId=f84a4a93-6bf1-4394-bc79-93481d6d6e02</TileUrl>
      </parameters>
 </control>
```

ちなみに

> ```<control id="unfilteredreport" classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}">```

は固定ですので、ご注意ください。

XMLファイルのタブのセクションにいれてあげましょう！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322851/e0c69701-339e-2c55-14c3-42019aba5345.png)
※諸事情でキャプチャーと上記パラメータ違いますが、気にせずに！


#5.ソリューションファイルのインポート

修正が完了したら、再度ソリューションファイルをインポート

ソリューションの公開を行い、Power BIレポートが埋め込まれているか？確認してみましょう！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322851/34a602fa-76d3-04b0-f9d2-4f36456bef82.png)

#あとがき
如何だったでしょうか？
Power Appsのダッシュボードや、Dynamicsのダッシュボードで、
Power BIダッシュボードを表示できるのは、ご存じだったかと思いますが、
こんなやり方で、モデル駆動型アプリに、Power BIレポートを埋め込むことができるのです。
もし、ニーズがあれば試していただけると幸いです。
（そのうちXMLファイルの加工は、Power FXあたりでできるんじゃないかと思います。）

では、みなさん、良きPower BIライフをお過ごしください。