[基礎] SharePointリストに切り替えて「複数人利用」に対応する
複数人での利用を前提に、データソースをExcelからSharePointリストへ変更します。
SharePointリストを選ぶメリット
Excelとは異なり、SharePointリストを使えば、「同時編集」が実現できます。
他にも、下記のメリットがあります。
- データ型の管理: Excelではセルにどんな値も入れられるが、SharePointリストはデータ型を厳密にできる
- 添付ファイルの取り扱い: Excelは値だけしか入力できないが、SharePointリストは画像添付も可能
- アイテムごとの権限設定: SharePointリストの単位はアイテムのため、アイテムごとに権限を決め、アクセス制御が可能
SharePointリストでアプリを作る手順
ExcelからSharePointへデータ移行
まず、Excelで用意した資産管理テーブルをSharePointリストへ移行します。
この手順は、シリーズ2を参考にしてください。
重要なのは前述の通り、データ型を厳密に取り扱えるので、テキストや日付などは正しく設定します。

SharePointリストでアプリ開発
- SharePointリストを作成後、Power Appsの「作成」>「Start from data」にある「SharePoint」を選択します。
- 接続するSharePointを選択し、一覧表示されたリストから該当のものを選びます。
- 「アプリを作成する」を押下後、自動的に画面が生成されます。
- RightContainer内のFormで「フィールド」を選択し、適切に並び替えて表示順序を変更します。
※添付ファイルは不要なので削除します - SidebarContainerのRecordGalleryで、「Items」を選択し、下記の式に変更します。
Search([@資産管理サンプル], SearchInput1.Text, 資産名, 管理者)
- アプリ名を設定して保存後、「アプリのプレビュー」からアプリを確認します。

Caution: Excelと違い、SharePointリストの列はデータ型の指定が必要です。
SharePointリストを選ぶデメリット
委任の壁
SharePointリストには、 委任(Delegation) の問題があります。
※委任については、公式リファレンスが詳しい
例えば、検索を行う場合、Power AppsはPower Fxによって検索の実行と表示を行い、処理はSharePoint側で行います。
つまり、Power AppsはSharePointに、検索の実処理を委任しているわけです。
具体的に、アプリの設定から「データ行の制限」を見ると、呼び出しの制限はデフォルト500件、最大2000件です。

上図にあるように、2000件以上のデータを持つ場合、SharePointリストは仕様を満たせません。
実際に、このステップで作成したアプリの下記の式を見ます。
// 例)⚠️ 委任警告が出るケース
Search([@資産管理サンプル], SearchInput1.Text, Title, 資産名)

つまり、2000件以上のリストデータあった場合、アプリとしては動きますが、データの完全性は保証できない仕様と言えます。
リスト行数の上限
SharePointリストは、アイテムを無限に作成できるわけではありません。
上限5000件の制限があり、この制限は仕様です。
参照列の上限
参照列とは、列と列にリレーションを持たせる機能のことです。
例えば、このレシピでは「管理者」としているところ、「管理部署」とする場合、参照列の使用が有効です。
別のリストで管理部署のマスターを作成し、資産管理用のリストの参照列で管理部署のリストと紐づけます。
管理部署のある部署名が変わった時、資産管理用ではなく、マスターを修正することで一括修正が可能です。
ただし、この参照列はリストあたり最大12列の制限があり、しきい値エラーが発生します。
なぜSharePointリストに制限があるのか
SharePointリストの制限は、SharePointリストの動作環境によるものです。
SharePointリストは、Excelのような表計算ソフトではなく、SharePointのドキュメントライブラリのようなものでもありません。
SharePointリストは、MicrosoftのSQL Serverで稼働しており、データベース上の制約がそのまま影響します。
例えば、SharePointリストのアイテムを作れば作るほど動作が遅くなっていくのは、Webページの読み込み速度というよりは、SQL Serverのレコード呼び出しが関係しています。
バックエンドがデータベースのため、型の制限や添付ファイルの受け付け、クエリや委任の問題が発生します。
扱うデータがそれほど大きくなく、複雑さも考慮しなくて良い場合、SharePointリストが有利です。
ですが、基幹システムのレベルを要求すると、SharePointリストでは限界があり、データソースはDataverseを検討することになります。
広告