Power Appsのカメラで撮影した写真をExcelで管理する
解決できる課題
Power Appsのカメラで撮影した画像の管理に困っていませんか? ・カメラコントロールは使えるが、保存に留まっている ・保存された画像にサクッとアクセスしたい ・保存先の状態を一覧で管理したい このレシピを使えば、アプリによる画像取得だけでなく、Excelでのファイル管理もできるようになります。 保存先のSharePointをいちいち確認する手間が省け、Excelで確認作業を共有できます。
完成イメージ

必要なもの
Power Apps コネクタ
Excel コネクタ
作り方
Power Appsのカメラコントロールの使い方は、別のレシピサイト(クイック報告アプリ)を確認してください。
カメラコントロールはデバイスのカメラ機能を使用し、写真を撮影するもので、保存は別途処理が必要です。
保存先によく使われるのがSharePointのドキュメントで、画像が多くなると管理が大変になります。
そこで、保存時にExcelの管理台帳にアクセスリンクを追加します。
- 1. トリガー「Power Apps がフローを呼び出したとき (V2)」を設定
Power AutomateでPower Appsコネクタを使う場合、トリガーはこのアクションになります。
「入力を追加する」を押下すると、Power Appsから送られる値の型と名前を指定します。
このレシピでは、[テキスト]を使い、「fileContent」と「fineName」を設定しています。
※入力欄の左側がPower Automateで使う名前、右側が値です

- 2. アクション「ファイルの作成」を設定
Power Appsで撮影した画像を保存します。
保存先は[サイトのアドレス]と[フォルダーのパス]で任意の場所に指定します。
[ファイル名]は、ステップ1の「fineName」を使用します。
[ファイルコンテンツ]はdataUriToBinary関数とjson関数を使い、「fileContent」をバイナリに変換します。
※式はdataUriToBinary(json(triggerBody()['text']))です
Power Appsのカメラはbase64エンコードされたJSON形式のテキスト文字列URIを返します
URI→バイナリにすることで、Power Automateが扱えるデータにします
dataUriToBinary関数とjson関数は、公式リファレンスを参照

- 3. アクション「ファイルのプロパティの取得」を設定
Excelに入力するURLを取得します。
[サイトのアドレス]と[ライブラリ名]はステップ2と同じものを使用します。
[ID]は「body/ItemId」にします。

- 4. アクション「表に行を追加」を設定
ExcelにURLを入力します。
[場所]と[ドキュメントライブラリ]、[ファイル]、[テーブル]は任意のものを設定します。
詳細パラメーターから、テーブルに用意していたURL入力量の項目名を選択し、「アイテムへのリンク」を選択します。

- 5. 動作確認
Power Appsのアプリからカメラで撮影を実行し、保存処理を行います。

上図の「画像保存」ボタンに設定したPower Automateのフロー実行をトリガーに、フローが処理され、画像がSharePointに保存されます(ステップ2)。

同時に、その保存先へのアクセスリンクをExcelに入力します(ステップ3)。

- 6. 保存方法を改良する
動作確認にある一枚目の画像を見ると、「画像保存」とは別に「保存する」のボタンがあります。
このボタンは、画像ではなく、フォームの入力値をExcelに保存するものです。
二つの保存ボタンをそれぞれ押下すると、保存処理は問題ないですが、Excelの入力列が分かれます。
※画像URLとフォーム入力の内容が同じ列にならない
そこで、Excelへの入力タイミングを揃えるため、入力処理はPower Automateではなく、Power Appsに任せます。
- 7. 変更したフロー図の確認
このレシピの先頭にあるフローから、下図に変更します。
変更箇所は、最後のアクションのみです。

- 6. アクション「Power App またはフローに応答する」に変更
Power Appsに値を渡すアクションです。
設定方法はトリガーと同じで、データの型と名前を指定します。
このレシピでは、ステップ3で画像URLを取得しているので、名前を「imageUrl」、値を動的コンテンツの「アイテムへのリンク」にします。

改良後の結果はPower Appsのレシピサイトで確認してください。