Power PlatformでDX推進を目指すプロぺリアDX支援のメインビジュアル プロぺリアDX支援

即使える!Power Platform技術紹介

「なるべく短時間で」「効果の高い本質的な知識を」「煩わしい広告なしに」獲得!

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
        }
      )
    
Point! Patch関数はとにかく「データソース」「行」「更新したい{列:値}」の3つを意識して使ってみてください!
外枠から順に指定していくイメージです。

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
    }
)
Point! LookUp関数は、条件を組み合わせてヒットする1行だけを取得します。
例のように、Patch関数に「この行を更新して!」と指示するイメージで使えます。

列型ごとのチートシート

Patch関数で更新したい{列:値}を指定する際、更新したい列の型ごとに書き方が異なります。ここでは、その型ごとの記載方法をまとめました。
特に「選択肢列」「ユーザー列」は独特で、皆さん詰まりやすいので注意しましょう。

列の種類 Patchの引数の記載例 備考
テキスト列
{ 商品名: "サンプル" }
「"」(ダブルクォーテーション)で囲う
Tips: Power Appsで文字列を記載する際は「"」が必要
数値列
{ 価格: 100 }
数値は「"」(ダブルクォーテーション)なし
Tips: 「型が違う」とエラーになる場合はValue()関数で囲うことも有効。
選択肢列
{ カテゴリ: { Value: "承認済み" } }
選択肢は{}を使って行として指定
Tips: 選択肢列は行の中にValueという列があり、そこに値を入れるイメージ。
ユーザー列
{ Approver: { Claims: "i:0#.f|membership|user@domain.com" } }
ユーザー列も{}で行として指定
Tips: Claimsにはi:0#.f|membership|(おまじないと思ってOK)のあとに続けてユーザーのログインIDを指定。
ログインIDはUser().Emailなどでも取得可能。
Point! 更新する列の型は常に意識しましょう!特に「選択肢列」は皆さん引っ掛かりやすいので、上記の書き方を頭の片隅に入れておきましょう。

まとめ

Patch関数は、データソースへのデータ新規登録・更新の両方を担える強力な関数です。
この関数をマスターすれば、Power Appsからデータを操作することができるようになり、データ操作の大部分をカバーできます。
データソースの列型によって記載方法が異なるため、上記のチートシートを参照して開発にお役立てください。

💻 ビデオ通話によるお悩み相談/レクチャーも好評いただいております!
300名以上のご支援実績があります。是非お気軽にお問い合わせください♪

あなたの仕事にも、変化を。

無料相談から、DXの第一歩を踏み出しませんか?

お問い合わせ ブログ一覧