PowerAppsを使ってアプリを作成していると、データを更新・追加する場面で必ず出てくるのが Patch関数 です。
この記事では、Patch関数の基本的な使い方から、SharePointリストやDataverseへの具体的な更新例までを解説します。
目次
1. Patch関数とは?
Patch関数は、PowerAppsで データソースのレコードを更新・作成 するための関数です。
フォームを使わずに特定の列だけを更新したい場合や、条件付きでレコードを作りたい場合に便利です。
2. Patch関数の基本構文
Patch( データソース, レコード, { 更新内容 } )
- データソース:更新先のテーブル(例:SharePointリスト)
- レコード:どのレコードを更新するか(新規の場合は
Defaults()
を使う) - 更新内容:
{列名: 値}
の形式で指定
3. レコードを更新する例(SharePointリスト)
例)SharePointリスト「社員一覧」の「部署」列を更新する場合
Patch( 社員一覧, LookUp(社員一覧, ID = 1), { 部署: "営業部" } )
LookUp()
で更新対象のレコードを指定{ 部署: "営業部" }
で更新内容を指定
4. 新しいレコードを追加する例
Patch( 社員一覧, Defaults(社員一覧), { 氏名: "山田太郎", 部署: "総務部", 入社日: Today() } )
Defaults(社員一覧)
で新規作成モード- 複数列をまとめて設定可能
5. 複数レコードをまとめて更新する例
ForAll( Filter(社員一覧, 部署 = "開発部"), Patch( 社員一覧, ThisRecord, { 部署: "企画部" } ) )
ForAll()
で複数レコードをループ- 部署が「開発部」の人をまとめて「企画部」に変更
6. Patch関数の注意点
- 必須列は必ず指定する
データソースによっては、必須列を指定しないとエラーになります。 - 数値・日付型は型に注意
Text()
やValue()
で型変換が必要な場合があります。 - Delegation(委任)制限に注意
SharePointやSQLでは、条件検索が委任されないと取得件数が500件(既定)までになります。
7. まとめ
- Patch関数はフォームを使わずにレコードを追加・更新できる
LookUp()
やDefaults()
と組み合わせて使うのが基本- 複数更新には
ForAll()
が便利
PowerAppsで動的なデータ更新を実現するためには、Patch関数の理解が必須です。
まずは上記の例をコピーして試し、自分のデータソースに合わせてカスタマイズしてみましょう。
コメント