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


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

前書き

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

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

こんな感じのものができあがります。

参考URL

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

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

埋め込みパターンは2つ

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

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

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

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

作り方の概要:

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

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

1.Power BIレポートの作成

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

プロパティ

参考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

読み込むと

このレポートのURLからパラメータの確認

こんな感じの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のモデル駆動の作成

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

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

ソリューションファイルとしてこんな感じで1フォームだけ用意しましょう!

3.ソリューションファイルのエクスポート

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

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

エクスポート完了!!

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

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

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

パラメータ
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
※諸事情でキャプチャーと上記パラメータ違いますが、気にせずに!

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

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

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

あとがき

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

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