見出し画像

Power Appsのススメ 〜雑談3〜 SharePointリストについて

SharePointリストはPower Appsなどで手軽に利用できるデータソースの1つです。

Googleスプレッドシートとの連携も簡単ですが、SharePointリストはMS365のサービスなのでアカウントの一元管理ができ、こちらの方がPower Appsとの相性は良いと思います。

今回はSharePointリストについて、雑談してみます。

SharePointリスト作成時の注意

SharePointリストはSharePointのホームから、サイドバーの「+(作成)」アイコンをクリックして作成します。

空のリストだけではなく、Excelシートや他のリストを元に作成することもできます。

なお、作成すると、必ず1つのカラムがもれなくついてきます。

日本語では「タイトル」、という名称のカラムですが、実は内部的には「Title」というカラム名になっています。

ただこのタイトル、名称をUI上では変更できず、詳細設定画面からでないと変更ができないので注意が必要です。

また、Googleスプレッドシートとの連携でも書きましたが、カラム名は半角英数字にしておいたほうが無難なので、その点留意しておいてください。

コネクタの接続

さて、SharePointコネクタの接続ですが、これまで通り、Power Apps編集画面のサイドバーにある「データ」から「データの追加」をクリックして、「コネクタ」から「SharePoint」を選択します。

続いて直接接続を選択した後、MS365アカウントでログインします。

ここまでは概ねこれまで通りですが、この後、SharePointリストをどこに保存してあるかでちょっと手間が変わります。

自分の管理しているサイト上に作成したリストであれば、検索すれば表示されますが、マイリストに保存してあるリストは表示されません

この場合に手軽な方法は、リストをひょうじさせた画面のURLをコピーして、「詳細情報」欄にペーストして接続ボタンを押せばOKです。

こうすれば作成したリストを選択することができます。

自動採番

SharePointリストには必ず自動採番される「ID」というカラムが付いています。

デフォルトでは見えませんが、ビューを作れば見ることができます。

追加したビュー

なお、IDは1ずつ増えていくので、途中のレコードを削除しても一度発行したIDは絶対に他のレコードとかぶりません。

ただしその場合、ID=レコード数とはならならい点は注意が必要です。

レコード数のカウントは、一旦ClearCollect関数でリストを読み込んでからCountRows関数で数えることになります。

5000件問題

SharePointリストは上限5000件までしか扱えない、といろいろなところで記載されいます。

Power Appsで扱う場合も例外ではありません。

したがって、5000件以上のデータソースを利用したい場合、データソースを別のものにしないとなりません。

なお、これはPower Appsの「データ行の制限」とは別問題です。

あくまでSharePointリストで扱える上限レコード数が5000件まで、ということで、Power Appsで委任せずに扱えるレコード数とは関係ありません。

データ行の制限と委任

Power Appsの設定には、「データ行の制限」という項目があり、デフォルトでは500行までとなっています。

データソースから読み込む行数の上限設定で、デフォルトは500行まで、最大2000行まで設定できます。

設定」画面で指定できますが、先程のSharePointの5000件と勘違いしないよう注意してください。

つまり、SharePointで2000件以上のデータが有った場合、最低でも2回に分けて読み込んで処理をしないとならない、ということになります。

ただしその場合、「委任」できる関数でなければ必要なレコードを抽出できないので、これにも要注意です。

委任」とは、処理をデータソース側で行うことを指し、いくつかの関数は委任が可能です。

簡単なケースで言うと、「カラム名」が数値で、全レコード3000件において1〜3000まであった場合、

ClearCollect(MyData, Filter(DataSource, カラム名>2000));

上記のFilter関数は委任されるため、きちんとカラム名が2001以上のレコードを1000件返してくれます。

ClearCollect(MyData, Search(DataSource, "mail1", mail_address));

Search関数は委任されないため、上限2000件までのレコードに対してのみ検索して結果を返します。

したがって、2001件目以降に該当するレコードがあっても結果は空になります。

なお、この「委任」に対応したデータソースも限られており、DetaverseSharePointSQL ServerSalesforceのみとなっています。

まとめ

  • SharePointリストはPower Appsと相性の良いデータソース

  • SharePointリストでは、上限5000件までしか扱えない

  • Power Appsが一度に扱える(読み込める)レコード数は最大で2000件

  • その際、データソースにあるレコードのうち、先頭から2000件までしか扱えないが、委任できる関数を利用する場合は、その限りではない。

この記事が気に入ったらサポートをしてみませんか?