Power Apps+AutomateでWord書類の自動発行とPDFへの自動変換をする方法 #Power Platformリレー

こんにちは、あおいです。
趣味の株式投資がここ最近好調です。投資は「プロスペクト理論の罠」にハマらないことが大事です。



さて、OJT開発でPower Platformを活用して「書類の自動発行」に関連したアプリ開発をしていました。
予め用意したWordテンプレートに任意の項目を入力し、ファイルPDFに自動的に変換するというものです。結構便利だなぁ~と思ったので、今回のブログはPower AppsとPower Automateを活用した簡単な「書類の自動発行アプリ」を作ってみたいと思います。

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

まずはWordテンプレートファイルを事前に作成しておく必要があります。こちらの記事を参考にしてお好みのWordテンプレートを作成してみてください(画像1:今回作成したWordテンプレートファイル)
Power Automate を用いて書類を自動作成する #Power Platformリレー | cloud.config Tech Blog

以下の2つのフォルダをOneDriveに作成してください。
・Wordテンプレートの保存フォルダ(画像2:Tech-Blogフォルダ)
・PDF変換したファイル保存フォルダ(画像2:pdfフォルダ)

Tech-Blogフォルダ内に事前に作成したWordテンプレートを保存しておきます(画像3:Wordテンプレートファイル名Company_Template_File.docx)。

画像1
画像2
画像3



次にPower Appsでキャンバスアプリを作成します。ボタン・ラベル・テキスト入力等のコントロールを適当に配置し、ツリービューから各コントロールに識別しやすい名前を付けておきます。命名まじで大事です。




キャンバスアプリ画面のアクションタブからPower Automate「新しいフローの作成」を選択します。「Power Appsボタン」トリガーの新しいステップから、「データの操作」コネクタを検索して「JSONの解析」アクションを選択します。「サンプルから生成」に以下のJSONをコピペしてください。そうすると、いい感じにスキーマを生成してくれます。

{"CompanyName":"","PersonName":"","Address":"","TelNumber":""}



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




「Word Online (Business)」コネクタの「Microsoft Wordテンプレートを事前設定します」アクションを選択して、場所「OneDrive for Business」ドキュメントライブラリ「OneDrive」ファイル「ファイルパスを確認して指定」等を指定します。そうするとWord内で設定した動的変数が自動的に表示されます。Wordの各項目に「JSONの解析」から動的なコンテンツをセットします。

ひとつ前のアクションで動的なコンテンツはセットされましたが、ここではまだ保存されていない状態なので、OneDriveのフォルダに「ファイルの作成」アクションで一時的に保存します。ファイル名は適当につけておきます。ファイルコンテンツにはひとつ前のアクションで生成された「Microsoft Word 文書」をセットします。

この段階で作成されるwordファイルはPDF変換する前の一時的なファイルです。最終的に使用するのはPDFファイルなので後でファイル削除のアクションが必須です。Wordファイルが残っているとデータの改竄が簡単に出来てしまうのは危険ですからね。




「Word Online (Business)」コネクタの「Word文書をPDFに変換します」アクションを選択して、ファイルにPDF変換する対象ファイルをセットします。この場合、動的なコンテンツからひとつ前のアクションで生成された「表示名」にファイル名(拡張子付き)を指定します。

そしてこの段階ではまだ保存されていない状態なので、OneDrive「ファイルの作成」アクションを選択してpdfフォルダ内に変換したPDFファイルを保存します。

最後にOneDrive「ファイルの削除」アクションを選択して、動的なコンテンツから最初に作成したファイルのIDをセットします。このファイルの削除は大事なので忘れないようにしましょう。




これで一通りのフローは完成です。

最後に、Power Appsの「PDFファイル作成」ボタンを選択した状態で、アクションタブからPower Automateを選び、先ほど作成した「pdf自動生成(OneDrive)」フローを選択します。



「pdfファイル作成」ボタンのOnSelectプロパティに数式を入力して、各テキスト入力コントロールのResetプロパティに変数 isReset をセットしておいてください。



これで完成です!
試しにアプリの各項目を適当に入力してボタンを押してPower Automateのフローを走らせてみましょう!
実行後、OneDriveのpdfフォルダ内を確認すると、新規pdfファイルが生成されているはずです。
ファイルを開いてPower Appsで入力した内容がきちんと反映されていたら成功です!



もし、Power Appsの画面を作成するのがめんどくさいと思ったら、「手動でフローをトリガーします」を最初のトリガーにしておけば大丈夫です!




これでPower AppsとPower Automateを活用した簡単な「書類の自動発行アプリ」作成が完了しました!
今回は簡単な書類の自動発行機能を作成してみましたが、「Power Apps」コネクタの「Power App または Flowに応答する」アクションを活用し、Automateフローの値をPower Appsに返すことでPower Apps側の操作の幅が広がります!非常に簡単なので是非試してみてください!