Power Platform 等でアプリを作成する際に SharePoint Online のカスタムリストを利用する場合、DBでのテーブルの列にあたる、カスタムリストの列の定義情報を一覧にして設計書を残したいという要望があると思います。
これを手作業で確認するとすごく大変なのですが、Excel と Power Query と SharePoint REST APIを使うと、簡単に Excel にダウンロードし、一覧にできます。
手順
- 対象のカスタムリストが配置してある、サイトのURLと、カスタムリストの名前を調べる
- 列情報を取得する SharePoint REST API のエンドポイントURIを作成する
- Excel を開き、Power Query を実行する
1. 対象のカスタムリストが配置してある、サイトのURLと、カスタムリストの名前を調べる
今回はこんなリストを用意しました。
サイトURL
https://samplehost.sharepoint.com/sites/samplesite
カスタムリスト名
列チェックリスト
2. 列情報を取得する SharePoint REST API のエンドポイントURIを作成する
先ほど調べた情報を組み合わせてエンドポイントURIを作成します。
エンドポイントURI
https://samplehost.sharepoint.com/sites/samplesite/_api/web/Lists/getbytitle('列チェックリスト')/fields
↑以下に先ほどの値から取得した値を埋め込んだもの↑
https://{hostname}/sites/{sitename}/_api/web/Lists/getbytitle('{listname}')/fields
3. Excel を開き、Power Query を実行する
準備が整ったので Excel で一覧にしていきます。
-
以下のような画面が表示されるので、2.で作成したエンドポイントURIを入力し、"OK"を選択します。
※この後、SharePoint Online の環境に関して、サインインを求めるダイアログが表示される可能性があります。その場合、画面の指示に従って、サインインしてください。
-
少しの待ち時間の後、その後以下のような画面が表示されますので、"読み込み"を選択します。
-
もとの Excelファイルに戻ってくると、列の内部名(InternalName/StaticName)、表示名(Title)を含む情報が一覧になっていることが確認できます。
日本語で列名を付けたものは、わかりにくい内部名ですが、それも取得できています。
Excel にデータがきてしまえばこっちのもの?あとは自由にご利用ください。
まとめ
設計書とか必要なレベルのものを作るべきかどうかは別として、自由に作られてきたカスタムリストを急に管理しなくてはならなくなった時などに使えるかなと思います。
REST API をご存じであれば、sitegroup 等その他のエンドポイントにも応用が可能です。
API 2.0 でも利用できますが、あちらは、Odataフィードだとうまくいかなかったので、JSONとして扱うことで同様の処理が可能です。