Power AppsでSharepoint Listのデータを追加・更新する方法
本記事でわかること
Patch関数の使い方
基本構造
Patch関数は、最初に[データソース]、次に[更新したいレコード(行)]、最後に[更新したい列名と値の組み合わせ]を指定します。
Patch(
更新したいデータソース名(Share Point Listのテーブル名など),
更新したいレコード(行),
更新したい列名と値の組み合わせを{列名: 値}で指定
)
使い方1. 新規作成
新規作成の場合は、Defaults関数を使って新しいレコード(行)を作成します。※おまじないと思ってOK
Patch(
商品テーブル,
Defaults(商品テーブル), //新しいレコードを作成するおまじない
{
商品名: "ノートPC",
価格: 100000,
カテゴリ: { Value: "電子機器" }
}
)
使い方2. 既存レコードの更新
既存レコードを更新する場合は、LookUp関数などを使って更新したいレコードを指定し、更新したい列名と値の組み合わせを指定します。
Patch(
商品テーブル,
LookUp(商品テーブル, 商品名 = "ノートPC"), //更新したいレコードを指定
{
商品名: "ラップトップPC",
価格: 150000
}
)
外枠から順に指定していくイメージです。
LookUp関数の使い方
LookUpはデータソースから条件に一致するレコードを1件取得する関数です。
更新したいレコードの条件を指定することで、Patch関数で狙った行を更新できます。
基本構造
LookUp関数は、最初に[データソース]、次に狙ったレコードの[条件]を指定します。
LookUp(取得したいデータソース名, 条件式)
使い方1. 条件が1つの場合
例: ID列が1のレコードを1件取得したい
LookUp(商品テーブル, ID = 1)
使い方2. 条件が複数の場合
例: 商品名列がノートPC、日付列が今日、価格列が100000以上のレコードを1件取得したい
//「AかつB」のような複数条件は「A && B」のように&&でつなぎます。
//ちなみに「AまたはB」のようにOR条件で検索する場合は「A || B」のように||を使います。
LookUp(商品テーブル, 商品名 = "ノートPC" && 日付 = Today() && 価格 >= 100000)
参考: 取得した行をPatch関数で更新する例
Patch(
商品テーブル,
LookUp(商品テーブル, 商品名 = "ノートPC" && 日付 = Today() && 価格 >= 100000), //LookUpで更新行を指定
{
商品名: "ラップトップPC",
価格: 120000
}
)
例のように、Patch関数に「この行を更新して!」と指示するイメージで使えます。
列型ごとのチートシート
Patch関数で更新したい{列:値}を指定する際、更新したい列の型ごとに書き方が異なります。ここでは、その型ごとの記載方法をまとめました。
特に「選択肢列」「ユーザー列」は独特で、皆さん詰まりやすいので注意しましょう。
| 列の種類 | Patchの引数の記載例 | 備考 |
|---|---|---|
| テキスト列 |
|
「"」(ダブルクォーテーション)で囲う Tips: Power Appsで文字列を記載する際は「"」が必要 |
| 数値列 |
|
数値は「"」(ダブルクォーテーション)なし Tips: 「型が違う」とエラーになる場合は Value()関数で囲うことも有効。 |
| 選択肢列 |
|
選択肢は{}を使って行として指定 Tips: 選択肢列は行の中にValueという列があり、そこに値を入れるイメージ。 |
| ユーザー列 |
|
ユーザー列も{}で行として指定 Tips: Claimsには i:0#.f|membership|(おまじないと思ってOK)のあとに続けてユーザーのログインIDを指定。ログインIDは User().Emailなどでも取得可能。
|
まとめ
Patch関数は、データソースへのデータ新規登録・更新の両方を担える強力な関数です。
この関数をマスターすれば、Power
Appsからデータを操作することができるようになり、データ操作の大部分をカバーできます。
データソースの列型によって記載方法が異なるため、上記のチートシートを参照して開発にお役立てください。
300名以上のご支援実績があります。是非お気軽にお問い合わせください♪