はじめに
Power Apps で 検索したレコードの値を一括で修正したいという要望は多いかと思います。
まぁ一括変更というと ForAll
関数とPatch
関数を組み合わせればいいじゃないと思うかもしれません。
しかし、その際のレコード指定方法がちょっと変わっていたので、記事にまとめます。
Microsoft Learn では
ここでは、式の例が掲載されています。
しかしながら、実際に似たような形で書いてみると、以下のようなエラーが発生し、正しく登録することができません。
ThisRecord の ID で LookUp したレコードを指定する
ClearCollect(testdata1,Filter(テスト1,value>3));
ForAll(
testdata1,
Patch(
テスト1,
LookUp(
テスト1,
ID=ThisRecord.ID
),
{
text:TextInputCanvas1.Value
}
)
)
ですが、以下のようにネットワークエラーが発生してしまいます。
どうも正しく更新対象のレコードが取得できていないように思います。
※前はこれでいけてたように気がするけど・・・
[正解]ThisRecordを指定すればいいだけ
ダメ元で試した結果なんですが、ForAll
中の ThisRecord を Patch
の レコードとして指定すれば良いようです。
ClearCollect(testdata1,Filter(テスト1,value>3));
ForAll(
testdata1,
Patch(
テスト1,
ThisRecord,
{
text:TextInputCanvas1.Value
}
)
)
まとめ
ギャラリーとかで選択したものを一括変更はよくありますが、入力した文字列などで検索して一気に検索というパターンも需要があると思います。
そんなときは、こちらのやり方をぜひお試しください!