CData SharePointドライバーに接続すると、サイト内のリストやドキュメントライブラリが自動的にテーブルとして公開されます。便利な反面、サイトの規模が大きくなるとテーブル数が数百単位に膨れ上がり、SQLクライアントやBIツールのテーブル一覧が使いづらくなることがあります。この記事では、公開するテーブルの種類と対象を絞り込む2つの接続プロパティ、ExposedTableTypes と TableListTypes の使い方を解説します。
以下はテスト環境で、ExposedTableTypesとTableListTypesを設定せずにテーブル一覧を表示した画面です。以降ではこれらのプロパティを設定することでこのテーブル一覧がどのように変化するかを示します。

設定手順
1. ExposedTableTypesでテーブルの粒度を決める
ExposedTableTypes は、SharePointのリストとビューのどちらを、どの粒度でテーブルとして見せるかを決めるプロパティです。デフォルトは ListsOnly で、この場合はリストそのものだけがテーブル化され、ShowHiddenColumns や ShowPredefinedColumns といった既存の列制御系プロパティがそのまま有効になります。
用途に応じて以下のいずれかに切り替えられます。
設定値 | 内容 |
|---|
ListsOnly(既定)
| リストのみを公開。列の表示制御は既存プロパティに従う |
DefaultViewsOnly
| 各リストの既定ビューのみを公開。列はそのビューで定義されたフィールドとID列に限定される |
ListsAndDefaultViews
| リストと既定ビューの両方を公開 |
ListsAndAllViews
| リストと、そのリストが持つすべてのビューを公開 |
たとえば、エンドユーザーがSharePoint上で「進捗ビュー」のように必要な列だけを絞り込んだビューを作成している場合、DefaultViewsOnly や ListsAndAllViews を使うことで、そのビュー定義をそのままテーブル定義として引き継げます。逆に、すべての列を扱う必要があるバッチ処理やデータ連携基盤では、ListsOnly のままにしておくのが無難です。なお、フィールドを持たないビューは公開対象から除外され、ビューベースのテーブルには常にID列が含まれます。
接続文字列の例
AuthScheme=AzureAD;URL=http://sharepointserver/mysite;ExposedTableTypes=DefaultViewsOnly;
以下は上記設定でテーブル一覧を表示した例です。この設定では既定ビューのみが公開されます。

2. TableListTypesでリストテンプレートを絞り込む
ExposedTableTypes がテーブルの「粒度」を決めるのに対し、TableListTypes は「どの種類のリストを対象にするか」を絞り込むプロパティです。既定値は空文字列(フィルターなし=すべてのテンプレートが対象)です。
カンマ区切りで、SharePointのリストテンプレートを数値IDまたは文字列名で指定します。両方を混在させても構いません。
TableListTypes=GenericList,101,Tasks,106
代表的なテンプレート値は次のとおりです。
テンプレートID | 名称 |
|---|
100 | GenericList |
101 | DocumentLibrary |
103 | Links |
104 | Announcements |
105 | Contacts |
106 | Events |
107 | Tasks |
108 | DiscussionBoard |
109 | PictureLibrary |
1100 | IssueTracking |
一覧にない独自テンプレートやカスタムリストを使っている場合も、そのテンプレートの数値IDをそのまま指定すれば対象にできます。完全なテンプレートID一覧はMicrosoftの公式リファレンスを参照してください。
たとえば、ドキュメントライブラリだけを扱うレポーティング用途であれば、次のように設定してノイズになる管理用リストを除外できます。
TableListTypes=DocumentLibrary
以下は上記設定でテーブル一覧を表示した例です。この設定ではドキュメントライブラリのみが公開されます。
3. 2つのプロパティを組み合わせる
ExposedTableTypes と TableListTypes は独立して機能しますが、ExposedTableTypes がどのモードであっても、TableListTypes によるテンプレートの絞り込みは常に適用されます。つまり、次のような組み合わせが可能です。
ExposedTableTypes=ListsAndAllViews;TableListTypes=DocumentLibrary,GenericList;
この設定では、「ドキュメントライブラリとカスタムリストに限定したうえで、それぞれのリスト本体とすべてのビューをテーブルとして公開する」という挙動になります。大規模サイトでBIツールに接続する際、まず TableListTypes で業務上必要なリスト種別に絞り込み、そのうえで ExposedTableTypes で列構成を決める、という2段階の設計をしておくと管理がしやすくなります。
以下は上記設定でテーブル一覧を表示した例です。この設定ではドキュメントライブラリとカスタムリスト、それらのビューが公開されています。

まとめ
ExposedTableTypes と TableListTypes は、SharePointサイトの規模が大きくなるほど効果を発揮する接続プロパティです。まずは TableListTypes で業務に必要なリスト種別に絞り込み、次に ExposedTableTypes でリストとビューのどちらを、どの粒度でテーブル化するかを決める、という順序で設定を見直してみてください。BIツールやSQLクライアントのテーブル一覧が見違えるほど整理されるはずです。