Help us understand the problem. What is going on with this article?

大量にアイテムが保存された SharePoint Online リストに PowerApps からアクセスする

大量にアイテムが保存されたリストの問題

大量にアイテムが保存された SharePoint Online リストをギャラリーコントロールにバインドした際、次のようなエラーメッセージが表示されることがあります。

image.png

また、このときのギャラリー コントロールの Items プロパティは、次のようになっています。

Items
SortByColumns(Filter(Threshold, StartsWith(Title, TextSearchBox1.Text)), "Title", If(SortDescending1, Descending, Ascending))

image.png

タイトル列(Title)に対して操作が行われていることがわかります。どうやらこの操作が失敗しているようです。

このときに利用されている PowerApps 関数の SortByColumns 関数と Filter 関数(関数内で指定されている StartsWith 操作)は、いずれも SharePoint Online をデータソースとした場合、委任可能な関数となっています。

Delegable data sources in canvas apps
https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/delegation-list

つまりは、SharePoint Online 側の設定に問題がありそうです。

SharePoint Online リストに列インデックスを作成する

SharePoint Online の対象のリストにアクセスし、「リストの設定」を開きます。

image.png

列セクションの下にある「インデックス付きの列」を開きます。

image.png

「新しいインデックスの作成」を開きます。

image.png

「タイトル」を指定してインデックスを作成します。(今回は SortByColumns 関数や Filter 関数で利用している列がタイトルなのでタイトルを指定しています)

image.png

インデックスの作成処理がはじまります。「(インデックスを作成中です)」の表示が消えるまで待ちます。

image.png

動作を確かめる

インデックス作成完了後、PowerApps のアプリでデータ更新をすると、今度はエラーが返ることなく表示されます。

image.png

フィルターも動作します。

image.png

さいごに

PowerApps アプリで SharePoint Online リストをデータソースとする場合、同じようなエラーが発生したときは SharePoint Online リストの列インデックスの設定も確認してみてください。

ちなみに、今回の検証は、SharePoint Online のリストに 20,001 アイテムが保存された状態で行いました。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away