やりたかったこと
ダイエットのために食事記録をつけようとPower Appsアプリを作ってました。 - SharePoint上にメニューマスタのリストを持ちカロリーやタンパク質などの情報保持
- 食事記録自体はドキュメントライブラリで作成
- アプリ上で撮影した画像を保持
- カロリーなどの情報は複数値の合計を自動算出
- メニューマスタから複数の値を選択可能(参照列)
ロジックはシンプルなのですぐ出来るだろうと思ってました。
アプリ上で撮影した画像を保持
これは記事がたくさんありますよう、Power AppsからSharePointに直接画像のアップロードはできません。なのでPower Automateへイメージ情報を渡し、ファイルのコンテンツを dataUriToBinary(イメージ情報) と指定することでアップロード可能です。ここは問題ありません。 カロリーなどの情報は複数値の合計を自動算出
前提として、SharePoint参照列の設定において複数値を許可しておきます。 あとはPower Appsの参照列の「OnChange」項目でForAll、要するにループして値をコレクトしていきます。参照列は直接読み取れなかったのでID列でLookUpして取得しています。 合計値はSum関数で算出できます。kcalは上述のコレクトする際に設定したプロパティ名です。
メニューマスタから複数の値を選択可能(参照列)
問題はこいつです。Power Automateで参照列の複数設定、これは可能です。  JSON形式でIDを指定します。これだけです。 この部分をPower Appsから渡せるようにフローを設定します。【Point】
ではこれをPower Appsから渡しましょう。
やはりこれも参照列の「OnChange」項目に設定します。
結果、jsonIDs に思った通りのJSON値が設定されます。
さて、問題はここから。フロー上でJSON値を受け取るように設定すると(【Point】)、Power Appsからフローを設定出来なくなります。下は登録ボタンにフローアクションを設定しようとした画面です。
エラーの詳細は開発ツールから確認できるようです。
401やら404、400と色々エラーが出ますねぇ。。
わけわからん!という話でした。解決策分かる方いらっしゃいましたら教えてください。