3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Power AutomateAdvent Calendar 2024

Day 19

Power AutomateでSharePointリストの5000件以上の項目からデータを抽出する

Last updated at Posted at 2024-11-27

やりたいこと

Power AutomateでSharePointリストの5000件以上の項目を取得し、フィルター条件に合致した項目のみを抽出する。

前提条件

  • Microsoft 365 開発者プログラムをアクティブ化し、以下製品ライセンスを有効化する
    • Microsoft 365 E5 Developer
    • Microsoft Power Automate Free

  • SharePointリストの項目数は5000件以上
  • トリガーはフローを定期的に実行できる[繰り返し]を使用する

手順1.[HTTP要求を送信する]でSharePoint REST APIを使用する

一般的には、SharePointの[複数の項目の取得]アクションで5000件以上のデータを取得しますが、以下記事を参照したところ、パフォーマンスプロファイル = 低 のライセンスおよび[繰り返し]トリガーの場合、[複数の項目の取得]アクションで5000件以上の項目を取得し、フィルター処理をすることができません。フロー保存時にエラーとなってしまいます。

[SharePoint - HTTP要求を送信する]アクションで5000件以上の項目に対してフィルター処理をすることができます。ただし、SharePoint REST APIの制限で、1回のAPIコールで5000件以上の項目を取得することはできません。したがって、5000件以上の項目からfilterクエリおよびtopクエリで5000件未満の項目を抽出します。

HTTP
GET https://{site_url}/_api/web/lists/GetByTitle('list_name')/items?$filter=ColumnName eq 'Hello World' &$top=5000
Accept: "application/json;odata=nometadata"

SPO REST API.png


SharePoint REST API 実装およびODataクエリ操作の詳細は、以下記事をご参照ください。

手順2. SharePointリストでインデックスを作成する

filterクエリで使用するSharePointの列にインデックスを作成する必要があります。SharePoint Onlineサイトの設定から[リストの設定]⇒[インデックス付きの列]⇒[新しいインデックスの作成]をクリックし、対象の列を選択してインデックスを作成します。

SharePointリストのインデックス作成手順は以下公式ドキュメントをご参照ください。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?