このページでは、データソースのレコードの作成や変更またはレコードをマージするPatch関数、データソースの既定値のレコードを返すDefaults関数を説明します。
Patch関数は、下記の3通りの動作を持っており、それぞれについて説明します。
①データソースの1つのレコードの新規作成や変更を行う
②データソースの複数のレコード(テーブル)の新規作成や変更を行う
③レコードをマージする
Power Appsを体系的に学習したい方は、下記もご覧ください。
匿名で投稿できる目安箱アプリについて知りたい方は、下記もご覧ください。
Teamsを利用して組織内のコミュニケーションを強化したい方は下記もご覧ください。
・【事例付き】Teamsを活用したマネジメントTIPS集
・【マネージャー向け】Teamsアプリを活用した「誰が何を知っているか」の集約・共有 事例集
・【Teamsアプリ活用事例集】メンター制度を置き換えて新人・異動者の育成を効率化する方法
・【問い合わせ管理でお困りの方向け】問い合わせ対応・ナレッジ蓄積へのTeams活用事例集
・【マネジメント・業務把握にお困りの方向け】マネジメント・報告業務へのTeams活用事例集
・【Teamsアプリを活用事例集】週報を自動で収集しサマリー&フィードバックする方法とは
Patch関数の説明
(データソースの1つのレコードの新規作成や変更)
Patch関数は、データソースの1つのレコードの新規作成や変更を行うことができます。
構文
Patch( データソース, 基本レコード, 変更後レコード1 [, 変更後レコード2, … ])
データソースには、レコードを新規作成や変更したい対象のデータソースを入れます。
基本レコードは、新規作成の場合は既定値のレコード、変更の場合は変更対象のレコードを入れます。既定のレコードはDefaults関数を利用します。Defaults関数については後述します。
変更後レコードは、作成したいレコードまたは変更後となるレコードを入れます。
使用例
はじめに、下記のSharePointリスト”売上管理表”をデータソースとして説明します。
SharePointリスト”売上管理表”をギャラリーで表示します。
ボタンを追加し、OnSelectプロパティに下記を入れます。
Default関数はデータソースのレコードの既定値のレコードを返す関数です。
既定値となるレコードをベースに、Date列を2021年9月30日、Title列をボールペン(黒)、Category列をボールペンとして作成するという内容です。なお、Category列はSharePointリスト側が選択形式のためValueに入れています。
1 |
Patch(売上管理表,Defaults(売上管理表),{Date:DateValue("2021/9/30","ja-jp"),Title:"ボールペン(黒)",Category:{Value:"ボールペン"}}) |
実行してみると、下記のように末尾にレコードが作成されます。
一部空欄があります。SharePointリスト側で既定値が設定されていない列は空欄として登録されます。取引先AはPatch関数で明示的に指定していませんが、SharePointリスト側で既定値として設定されているため表示されています。0の部分は単価×数量の集計値で、空欄のため0という結果になっています。
次に、作成したレコードに対して変更を行なってみます。ボタンのOnSelectプロパティに下記を入れます。
さきほど作成したレコードの空欄部分に値を入れるという内容です。
1 |
Patch(売上管理表,LookUp(売上管理表,And(Date=DateValue("2021/9/30","ja-jp"),Customer.Value="取引先A")),{'Unit price':100,Quantity:200,'In charge':"佐藤"}) |
実行してみると、下記のようにレコードの内容が変更されます。
このように、基本レコードに既定値を指定した場合は新規作成扱い、既存のレコードを指定した場合は変更扱いになります。
次に、変更後レコードを複数指定した場合の動きを見てます。ボタンのOnSelectプロパティに下記を入れます。変更後レコードに2つのレコードを入れています。
1 |
Patch(売上管理表,Defaults(売上管理表),{Date:DateValue("2021/10/1","ja-jp"),Title:"ボールペン(黒)",Category:{Value:"ボールペン"}},{Date:DateValue("2021/10/1","ja-jp"),Title:"蛍光ペン(黒)",Category:{Value:"蛍光ペン"},'Unit price':150}) |
実行してみると、下記のように追加されたレコードは1つのみです。複数のレコードを指定しても複数作成されるわけではなく、レコードのそれぞれの値が、後から記載した方に上書きされた内容で登録されます。
Patch関数の説明
(データソースの複数のレコード(テーブル)の新規作成や変更を行う)
Patch関数は、データソースの複数のレコード(テーブル)の新規作成や変更を行うことができます。
構文
Patch( データソース, 基本テーブル, 変更後テーブル1 [, 変更後テーブル2, … ])
データソースには、レコードを新規作成や変更したい対象のデータソースを入れます。
基本テーブルは、新規作成の場合は既定値のテーブル(複数のレコード)、変更の場合は変更対象のテーブル(複数のレコード)を入れます。既定のテーブル(複数のレコード)はDefaults関数を利用します。Defaults関数については後述します。
変更後テーブルは、作成したいテーブル(複数のレコード)または変更後となるテーブル(複数のレコード)を入れます。
使用例
はじめに、下記のSharePointリスト”売上管理表”をデータソースとして試してみます。
SharePointリスト”売上管理表”をギャラリーで表示します。
ボタンを追加し、OnSelectプロパティに下記を入れます。
既定値となるテーブルに、Table関数を使用し既定値レコードを2つ入れています。変更後テーブルにはTable関数を利用し2つのレコードを入れています。
1 |
Patch(売上管理表,Table(Defaults(売上管理表),Defaults(売上管理表)),Table({Date:DateValue("2021/10/1","ja-jp"),Title:"ボールペン(黒)",Category:{Value:"ボールペン"}},{Date:DateValue("2021/10/1","ja-jp"),Title:"蛍光ペン(黒)",Category:{Value:"蛍光ペン"},'Unit price':150})) |
実行してみると、下記のように末尾に2つのレコードが作成されます。このように複数のレコードを指定することができます。この時、第二引数の基本テーブルと、第三引数の変更後レーブルのレコード数は合わせる必要があります。
一部空欄があります。既定値が設定されていない列は空欄として登録されます。
次に、作成した複数のレコードに対して変更を行なってみます。ボタンのOnSelectプロパティに下記を入れます。さきほど作成したレコードの空欄部分に値を入れるという内容です。
基本テーブルには、Filter関数を利用し対象となる2つのレコードを指定しています。変更後テーブルには、変更したい値を指定した2つのレコードを指定しています。レコードの数は一致させる必要があります。
1 |
Patch(売上管理表,Filter(売上管理表,Date=DateValue("2021/10/1","ja-jp")),Table({Quantity:200,'In charge':"佐藤"},{'Unit price':100,Quantity:200,'In charge':"佐藤"})) |
実行してみると、下記のようにレコードの内容が変更されます。
このように、基本テーブルに既定値を指定した場合は新規作成扱い、既存のテーブルを指定した場合は変更扱いになります。
Patch関数の説明
(レコードをマージする)
Patch関数は、レコードをマージすることができます。
構文
Patch( レコード1, レコード2 [, …] )
レコードには、マージしたい2つ以上のレコードを入れます。第一引数から順に処理され、最初のプロパティ値は後のプロパティ値によって上書きされてマージされます。データソース内の値を変更するわけではなく、マージされたレコードが返されるだけの関数になります。
使用例
レコードのマージの動作を見てみるため、ボタンのOnSelectプロパティに下記を入れます。
1 |
ClearCollect(test,Patch({列A:"aaa",列B:"bbb",列C:"ccc"},{列A:"aaa",列B:"BBB",列D:"DDD"})) |
実行してボタンをクリックした後にコレクションのデータを確認すると下記になります。
列Bは、後から指定したレコードの値に上書きされています。最初のレコードのみにあった列Cは残ったままです。このように、Patch関数によるレコードのマージは、最初のレコードに後から指定したレコードの値が上書きされる動作になります。
Defaults関数の説明
Defaults関数は、データソースの既定値のレコードを返します。Patch関数で新規レコードを作成する際の既定値として利用します。
構文
Defaults( データソース )
データソースには、既定値を抽出したいデータソースを指定します。
使用例
使用例については、このページの「Patch関数の説明(データソースの1つのレコードの新規作成や変更)」の使用例をご覧ください。
まとめ
このページでは、データソースの既定値のレコードを返すDefaults関数、およびPatch関数の下記3通りの動作を説明しました。
①データソースの1つのレコードの新規作成や変更を行う
②データソースの複数のレコード(テーブル)の新規作成や変更を行う
③レコードをマージする
Power Appsを学びたい方は、下記のおすすめ学習方法もご覧ください。
匿名で投稿できる目安箱アプリについて知りたい方は、下記もご覧ください。
Teamsを利用して組織内のコミュニケーションを強化したい方は下記もご覧ください。
・【事例付き】Teamsを活用したマネジメントTIPS集
・【マネージャー向け】Teamsアプリを活用した「誰が何を知っているか」の集約・共有 事例集
・【Teamsアプリ活用事例集】メンター制度を置き換えて新人・異動者の育成を効率化する方法
・【問い合わせ管理でお困りの方向け】問い合わせ対応・ナレッジ蓄積へのTeams活用事例集
・【マネジメント・業務把握にお困りの方向け】マネジメント・報告業務へのTeams活用事例集
・【Teamsアプリを活用事例集】週報を自動で収集しサマリー&フィードバックする方法とは