DataverseのデータをPower AutomateでExcelへ転記して書類の自動発行をする #Power Platformリレー

こんにちは、あおいです。
最近、長尾中華そばの『ごくにぼ』に沼って体重が順調に増加しています。コロナが落ち着いたら、六本木の麺屋武蔵 虎嘯にも行きたいです。あそこのつけ麺はマジで旨すぎて飛びます。


さて、今回は実務で役に立ちそうな場合を想定して、DataverseのデータをPower Automateで予め用意したExcelテンプレートに転記して請求書を作ってみたいと思います。

本アプリではプレミアムコネクタを使用するので、Power Automateの有料ライセンスが必要です。

まずはExcelテンプレートファイルを事前に作成しておく必要があります。
No(品名番号)・品名・数量・単価・金額の列名を含むテーブルを作成し、テーブル名は「請求書」とします。また、金額・小計・消費税・合計セルの各数式バーには適当な数式を入力しておきます。Power Automateで数量と単価の値がはめ込まれて自動的に計算してくれます。



Excelテンプレートが作成出来たら「請求書テンプレ」と適当なファイル名を付けておき、SharePointのドキュメントライブラリの適当なフォルダ内にアップロードします。




Dataverseで「品目」テーブルと「請求書」テーブルを作成します。こちらの記事を参考にしてテーブルを作成してみてください。
Power Appsでデータテーブルを作ってみた | cloud.config Tech Blog
Power Appsのトリセツ(もちろん非公式)#エンティティ編 | cloud.config Tech Blog




「品目」テーブルと「請求書」テーブルを作成したら、リレーションシップを使ってテーブル間に繋がりを持たせます。今回は多対一の関連性を持たせます。




「レコードの追加」から各テーブルに適当なデータを追加していきます。




Power Automateで「インスタントクラウドフロー」を選択して、今回は「手動でフローをトリガーします」をトリガーとします。
「日時」コネクタの設定は必須ではないので、こちらのアクションはスキップしてもらっても大丈夫です。
ただ、ファイルに一意識別子を付ける為のアクションなので、きちんと設定しておいたほうが何かと便利です!
※「日時」コネクタで「現在の時刻」を取得して、同様のコネクタで「タイムゾーンの変換」アクションで扱う時刻を世界標準時から日本時間へ変換します。




「SharePoint」コネクタの「パスによるファイルコンテンツの取得」アクションを選択します。
サイトのアドレス「ドロップダウンから該当のSharePointサイトアドレスを選択」、ファイルパス「右側のファイルアイコンから請求書テンプレ―トファイルのパスを指定」など各項目を設定していきます。
※「ファイルのコピー」アクションでも大丈夫ですが、任意のファイル名を付けられないので今回はこちらのアクションを利用します。

同じく「SharePoint」コネクタの「ファイルの作成」アクションを選択します。
サイトのアドレス「ドロップダウンから適当なSharePointサイトアドレスを選択」、フォルダーのパス「作成したファイルの保存フォルダを選択」、ファイル名「動的なコンテンツから変換後の時間を選択+拡張子.xlsxを入力」、ファイルコンテンツ「動的なコンテンツからファイルコンテンツを選択」など各項目を設定していきます。




「Excel Online(Business)」コネクタの「テーブルの取得」アクションを選択します。
場所「ドロップダウンから該当の場所を選択」、ドキュメントライブラリ「ドキュメントを選択」、ファイル「動的なコンテンツからId(ファイルの作成)を選択」など各項目を設定していきます。

「Microsoft Dataverse」コネクタの「行を一覧にする」アクションを選択します。
テーブル名「ドロップダウンから請求書を選択」で各項目を設定していきます。




「Microsoft Dataverse」コネクタの「IDで行を取得する」アクションを選択します。
テーブル名「ドロップダウンから品目を選択」、行ID「動的なコンテンツから品名(値)を選択」など各項目を設定していきます。行IDの品名(値)を指定することで品目テーブルの列名を取得することが出来ます。

「Excel Online(Business)」コネクタの「表に行を追加」アクションを選択します。
場所「ドロップダウンから該当の場所を選択」、ドキュメントライブラリ「ドキュメントを選択」、ファイル「動的なコンテンツからId(ファイルの作成)を選択」、テーブル「動的なコンテンツから表ID(テーブルの取得)を選択」など各項目を設定していきます。
最後の項目「行」にJSON形式で入力していきます。Excelで作成した請求書テーブルの各列名に相当する値を動的なコンテンツから選択していきます。




これで一通りのフローは完成です!
試しにPower Automateのフローを走らせてみましょう!

該当のフォルダ内にExcelの請求書ファイルが作成されていたら成功です!
ファイルの中身を確認してみると、Dataverseで登録したデータが各行に転記されていますね。そのデータを元に金額・小計・消費税・合計セルに自動計算された結果が反映されます。


今回は「インスタントクラウドフロー」のトリガーに設定しましたが、「Power Appsのボタン」をトリガーにして、キャンバスアプリで品名やその数量・単価を入力する画面を作成する。そして、今回のフローと連携することによってより実務で活躍するアプリが出来ます!是非試してみてください!