Power Appsのデータソースに対して一括でデータを登録する方法について聞かれたので、その方法をメモ。
Patch関数の第2引数にはコレクションとかを渡すことができる
意外と知られていないけど、Patch関数の第2引数にはデータソースのレコードのテーブルを渡すことができる。
このテーブルを渡す方法を使うことで、ForAll関数で何回もPatch関数を呼び出すことなくデータを一括登録することができる。
一括登録をForAllで実装すると




問題は一括登録するレコード数が増えたときに動作がそこそこ重くなること。
Patch関数の第2引数に直接渡してみる

※登録順が大事なときはソートが必要。

あんまり知られていないけどこっちの書き方の方が動作が圧倒的に早いのですごくおすすめ。
エラー「無効な引数の方です(Table)。代わりに、Record値が必要です。」が出る場合




どの列名が間違っているかわからない場合の対処法
SPOリストの場合はさっきの通り物理名を指定してあげればよいので原因を探りやすいけど、データソースによってはどの列名が間違っているか原因を特定するのが難しいときがある。
やり方は簡単でPatch関数の第2引数をShowColumn関数で囲ってあげて、エラーが出るまで登録したいレコードの列名を追加していくだけ。



こんな感じでエラーが出たときは地道に原因を探っていくしかないけど、一括登録は非常に便利でコードも読みやすいのでとてもおすすめ!
Patch vs UpdateIf vs ForAll


コメント