本記事ではCData SharePoint ドライバーで複数のサイトからファイル情報を取得できるAllFiles ビューの使い方を説明します。この機能は2025年3月のドライバーアップデートで追加されました。これまでCData SharePoint ドライバーはデフォルトでメインサイトのデータにしかアクセスできず、特定のサイトからファイル情報を取得する場合はURL プロパティにサイトのURL を指定していました。そのため、複数のサイトのファイル情報やリスト情報にアクセスする際は複数のコネクションを持つ必要がありました。今回AllFiles ビューをサポートしたことにより、一つのコネクションでサイトを横断してファイル情報を取得することが可能になりました。
以下からはAllFiles ビューの使い方を説明します。なお、本記事でとりあげるAllFiles、AllLists、Sites ビューはREST スキーマでのみサポートしています。
全サイトのファイル情報を取得する
SharePoint 環境にあるすべてのサイトのファイル情報を取得する場合、以下のようにAllFiles ビューをクエリします。
SELECT * FROM AllFiles;
AllFiles ビューには、ファイルがあるサイトのURL を取得するSiteURL カラムと、ライブラリのId を取得するLibraryId カラムがあります。これらの情報により、各ファイルがSharePoint 上のどの場所にあるのかが分かります。例えば以下のクエリでは全ファイルのファイル名、そのファイルが属するサイトURL とライブラリId を取得します。
クエリ
SELECT Name, SiteURL, LibraryId FROM AllFiles;
結果
| Name |
SiteURL |
LibraryId |
| Sales_2025.xlsx |
https://test.sharepoint.com/sites/Sales |
b051-4562-47ac-9b42-1d |
| Customers.xlsx |
https://test.sharepoint.com/sites/Sales |
5a64-b9d9-511d-27f1-2b |
| Prod_Plan.xlsx |
https://test.sharepoint.com/sites/Prod |
3ba5-t712-781f-a8a9-00 |
| memo.txt |
https://test.sharepoint.com/sites/Prod |
6a01-7821-6671-ba89-12 |
| Stock.accdb |
https://test.sharepoint.com/sites/SCM |
781a-b783-ff67-5412-90 |
特定のサイトのファイル情報を取得する
特定のサイトのファイル情報を取得する場合、以下のようにWHERE 句のフィルタ条件で「SiteURL = サイトのURL」を指定します。
SELECT * FROM AllFiles WHERE SiteURL = 'サイトのURL';
例えば以下のクエリを実行するとサイト「https://test.sharepoint.com/sites/Sales」のファイル情報のみを取得します。
クエリ
SELECT Name, SiteURL, LibraryId FROM AllFiles WHERE SiteURL = 'https://test.sharepoint.com/sites/Sales';
結果
| Name |
SiteURL |
LibraryId |
| Sales_2025.xlsx |
https://test.sharepoint.com/sites/Sales |
b051-4562-47ac-9b42-1d |
| Customers.xlsx |
https://test.sharepoint.com/sites/Sales |
5a64-b9d9-511d-27f1-2b |
サイトのURL はSites ビューで取得することができます。例えば以下のクエリを実行すると全サイトのサイト名、サイトURL、サイトの説明文を取得します。
SELECT Title, SiteURL, Description FROM Sites;
特定のライブラリのファイル情報を取得する
特定のライブラリ内のファイル情報を取得する場合、以下のようにWHERE 句のフィルタ条件で「SiteURL = 当該ライブラリが属するサイトのURL」と「LibraryId = ライブラリのId」を指定します。
SELECT * FROM AllFiles WHERE SiteURL = 'https://test.sharepoint.com/sites/Sales' AND LibraryId = 'b051-4562-47ac-9b42-1d';
以下のようにIN 句を使用して複数のライブラリを指定することもできます。
SELECT * FROM AllFiles WHERE SiteURL = 'https://test.sharepoint.com/sites/Sales' AND LibraryId IN ('b051-4562-47ac-9b42-1d', '5a64-b9d9-511d-27f1-2b');
特定のサイトにあるライブラリのId はAllLists ビューで取得できます。AllLists ビューはライブラリを含むすべてのリストの情報を取得します。また、AllFiles ビューと同様に、SiteURL カラムでフィルタすることで特定のサイトのリスト情報を取得することができます。例えば以下のクエリを実行すると、サイト「https://test.sharepoint.com/sites/Sales」にあるライブラリを含むリスト情報を取得します。
クエリ
SELECT Id, Title FROM AllLists WHERE SiteURL = 'https://test.sharepoint.com/sites/Sales';
結果
| Id |
Title |
| b051-4562-47ac-9b42-1d |
ドキュメント |
| 5a64-b9d9-511d-27f1-2b |
顧客 |
| 371a-7efe-4a92-9621-bc |
案件リスト |
おわりに
本記事ではCData SharePoint ドライバーで複数のサイトからファイル情報を取得できるAllFiles ビューの使い方を説明しました。SharePoint ドライバーは30日間無料で試用できます。SharePoint との連携をご検討の方はぜひお試しくださ