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関数の理解が必須です。
まずは上記の例をコピーして試し、自分のデータソースに合わせてカスタマイズしてみましょう。
コメント