どうも、こんにちは、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
こんな感じの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ファイルのタブのセクションにいれてあげましょう!
※諸事情でキャプチャーと上記パラメータ違いますが、気にせずに!
#5.ソリューションファイルのインポート
修正が完了したら、再度ソリューションファイルをインポート
ソリューションの公開を行い、Power BIレポートが埋め込まれているか?確認してみましょう!
#あとがき
如何だったでしょうか?
Power Appsのダッシュボードや、Dynamicsのダッシュボードで、
Power BIダッシュボードを表示できるのは、ご存じだったかと思いますが、
こんなやり方で、モデル駆動型アプリに、Power BIレポートを埋め込むことができるのです。
もし、ニーズがあれば試していただけると幸いです。
(そのうちXMLファイルの加工は、Power FXあたりでできるんじゃないかと思います。)
では、みなさん、良きPower BIライフをお過ごしください。