【PowerApps初心者向け解説】Patch の使い方を実例を交えて解説
PowerAppsにおいて、データソースとして利用されるSharePointやExcelなどのデータソースにデータを更新するための関数、Patch関数について解説します。
この記事では、Patch関数の基本構文や、実例を通しての具体的な使用方法について解説します。また、応用例として、複数のフィールドを一括で更新する方法についても紹介します。
目次
- 【基本構文】
- 【実例1】Patch関数を使用して、SharePointリストのレコードを更新
- 【実例2】Patch関数を使用して、新しいレコードを作成
- 【実例3】データソース内の特定のレコードを更新
- 【応用実例】データソース内の複数のレコードを一度に更新
- 【まとめ】
【基本構文】
Patch(データソース, レコード, 新しい値)
Patch関数は、指定されたデータソースの指定されたレコードに対して、新しい値を適用します。第1引数には、対象のデータソースを指定します。第2引数には、レコードのID、または特定のフィールドを指定します。第3引数には、指定されたフィールドに適用する新しい値を指定します。
【実例1】Patch関数を使用して、SharePointリストのレコードを更新
Patch(SharePointList, {ID: 1}, {Title: "新しいタイトル"})
この例では、SharePointリストのIDが1のレコードのタイトルフィールドを「新しいタイトル」に更新することができます。SharePointListはデータソースの名前であり、{ID: 1}は更新対象のレコードを特定するための条件式であり、{Title: "新しいタイトル"}は更新するフィールドとその値を表しています。
【実例2】Patch関数を使用して、新しいレコードを作成
Patch(SharePointList, Defaults(SharePointList), {Title: "新しいタイトル"})
この例では、SharePointリストに新しいレコードを作成し、タイトルを「新しいタイトル」に設定することができます。Defaults(SharePointList)は、データソースの既定値を取得するための式であり、{Title: "新しいタイトル"}は新しいレコードに設定する値を表しています。
【実例3】データソース内の特定のレコードを更新
Patch関数を使用して、テキスト入力とドロップダウンの値をデータソースに挿入しました。もう1つの使用例として、データソース内の特定のレコードを更新する方法があります。
例えば、テキストボックスで入力された値をデータソースの特定の列に更新する場合、次のようにPatch関数を使用できます。
Patch(
DataSource,
LookUp(DataSource, ID = SelectedID),
{
Column1: TextInput1.Text,
Column2: TextInput2.Text
}
)
この例では、データソース内のID列がSelectedID変数と一致するレコードが更新されます。更新される列は、TextInput1およびTextInput2で入力されたテキスト値によって指定されます。
【応用実例】データソース内の複数のレコードを一度に更新
上記の例では、データソースの単一のレコードを更新しましたが、Patch関数を使用すると、データソース内の複数のレコードを一度に更新できます。
例えば、以下のデータソースを考えてみます。
ID | Name | Age |
---|---|---|
1 | John | 25 |
2 | Jane | 30 |
3 | Tom | 35 |
このデータソースに対して、複数のレコードを更新する場合、次のようにPatch関数を使用できます。
Patch(
DataSource,
Filter(DataSource, Age > 30),
{
Name: "Updated Name",
Age: 40
}
)
この例では、データソース内のAge列が30より大きいレコードが更新されます。更新される列は、NameとAgeで指定され、すべての更新されたレコードに"Updated Name"と40が挿入されます。
Filter関数を使用して、データソース内の条件に基づいてレコードをフィルタリングしています。そして、Patch関数を使用して、フィルタリングされたレコードを更新しています。これにより、データソースの複数のレコードを一度に更新することができます。
【まとめ】
Patch関数は、PowerAppsでデータを更新する際に非常に役立ちます。データソース内の単一のレコードまたは複数のレコードを更新することができ、多数のレコードを一度に更新できるため、効率的なデータ処理が可能です。また、非常に柔軟で、条件付きの更新やデータの削除など、多くの場面で使用できます。是非、実際に使ってみてください。