PowerPlatForm_DX

PowerPlatFormの解説ブログ

【PowerApps初心者向け解説】Patch の使い方を実例を交えて解説

PowerAppsにおいて、データソースとして利用されるSharePointExcelなどのデータソースにデータを更新するための関数、Patch関数について解説します。
この記事では、Patch関数の基本構文や、実例を通しての具体的な使用方法について解説します。また、応用例として、複数のフィールドを一括で更新する方法についても紹介します。

目次

 

【基本構文】

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でデータを更新する際に非常に役立ちます。データソース内の単一のレコードまたは複数のレコードを更新することができ、多数のレコードを一度に更新できるため、効率的なデータ処理が可能です。また、非常に柔軟で、条件付きの更新やデータの削除など、多くの場面で使用できます。是非、実際に使ってみてください。