Power AppsでSharePointリストのデータを読み書きする。基本のCRUDパターン

Power AppsでSharePointリストのデータを読み書きするには、Filter関数・Patch関数・Remove関数の3つを使いこなすことが基本です。この記事では、一覧表示・追加・更新・削除という4つの操作(CRUD)を整理します。

CRUDとは

CRUDとは Create(追加)・Read(読み込み)・Update(更新)・Delete(削除)の頭文字です。データを扱うアプリで必ず必要になる4つの操作をまとめた言葉です。Power Appsでは、この4つをほぼすべてギャラリーとPatch関数・Remove関数で実装します。

SharePointリストとPower Appsの組み合わせは相性がいいです。追加や更新の処理がPatch関数1行で書けるため、コードが複雑になりません。Excelをデータソースにするよりも委任の制約が少なく、複数人の同時編集にも対応しています。SharePointリストの基本的な使い方はSharePointリストとMicrosoft Listsの解説で整理しているので参照してください。

Read——データの読み込みと一覧表示

ギャラリーで一覧表示する

SharePointリストのデータを画面に一覧表示するにはギャラリーコントロールを使います。ギャラリーのItemsプロパティにデータソース名を指定するだけで、リストの全件が表示されます。

Items = SharePointリスト名

絞り込みを行いたい場合はFilter関数を使います。例えばステータスが「未完了」のものだけを表示するには次のように書きます。

Filter(タスク管理リスト, ステータス = "未完了")

検索ボックスと組み合わせてキーワード検索にしたい場合はSearch関数が使えます。Filter・Search・LookUpの使い分けはFilter・Search・LookUp関数の解説にまとめています。

Create——データの追加

Patch関数でレコードを新規作成する

新しいレコードをSharePointリストに追加するにはPatch関数を使います。第1引数にデータソース、第2引数にDefaults関数を指定することで新規レコードとして扱われます。

Patch(
    タスク管理リスト,
    Defaults(タスク管理リスト),
    {
        タイトル: タイトル入力.Text,
        担当者: 担当者入力.Text,
        期日: 期日入力.SelectedDate
    }
)

Defaults関数は「このリストの空の新規レコード」を意味します。第2引数にDefaultsを渡すことで、既存レコードの更新ではなく新規追加になります。

Update——データの更新

選択したレコードを上書きする

ギャラリーで選択した行を更新する場合は、Patch関数の第2引数にギャラリーの選択状態(Selected)を渡します。これがCreateとの大きな違いです。

Patch(
    タスク管理リスト,
    ギャラリー1.Selected,
    {
        タイトル: タイトル入力.Text,
        ステータス: ステータスドロップダウン.Selected.Value
    }
)

第2引数に更新したいレコードを指定することで、そのレコードだけが上書きされます。指定しなかったフィールドは元の値が保持されます。Patch関数の詳しい使い方はPatch関数の解説にまとめています。

Delete——データの削除

Remove関数でレコードを削除する

レコードを削除するにはRemove関数を使います。削除ボタンのOnSelectプロパティに次のように書きます。

Remove(タスク管理リスト, ギャラリー1.Selected)

削除は取り消せないので、実際のアプリではConfirm関数と組み合わせて確認ダイアログを出してから実行するのが安全です。

If(
    Confirm("このレコードを削除しますか?"),
    Remove(タスク管理リスト, ギャラリー1.Selected)
)

私が現場で作った申請管理アプリでも削除機能は最初は入れていませんでした。誤操作が怖かったのです。結局、管理者権限を持つ担当者だけが使えるボタンとして後から追加しました。最初からすべての機能を実装しようとせず、必要になってから追加するくらいで十分です。

フォームコントロールを使う方法との違い

Power AppsにはEditFormというフォームコントロールがあり、これを使うとデータの追加・更新をほぼ自動で処理してくれます。Patch関数を自分で書かなくていい分、実装が速いです。ただしフォームのレイアウト自由度が低く、細かいUI設計をしたいときは制約になります。

Patch関数で書くフォームコントロール
実装のしやすさコードを書く必要がある設定だけでほぼ完結
レイアウト自由度高い(完全に自由)低い(フォームの制約あり)
複雑な条件処理やりやすいやりにくい

業務アプリを素早く作りたいときはフォームコントロールを使い、細かいUIや複雑な条件が必要なときはPatch関数で書く——この使い分けが現実的です。フォームコントロールの使い方については別記事で詳しく解説する予定です。

まとめ

SharePointリストのCRUDは、Filter(一覧)・Patch + Defaults(追加)・Patch + Selected(更新)・Remove(削除)の組み合わせで実装できます。最初はこの4つのパターンをそのままコピーして動かしてみてください。

1本のCRUDアプリが完成すると、Power Appsでできることの感覚が一気につかめます。まず動くものを作ることが大切です。Power Apps開発の全体像はPower Apps開発の全体マップで整理しているので合わせて確認してみてください。

Xでフォローしよう