以前作成して以下の記事で紹介したツールをアップデートし、サイト内のニュースをすべてエクスポートしてくれるようにしました。自作ツールとはいえ最近かなり役立っているので宣伝しておきます。
ツールの概要
PnPプロビジョニングという仕組みを使って、SharePointサイトの設定値やデータをXMLにエクスポートしたりインポートしたりするツールです。PnP自体はPowerShellから利用している同士も多い(はず)ですが、画面があったりバッチがあったりするとやっぱり楽だし気持ちが違うよねって話ですw
ソースコードはGitHubで公開しています。画面イメージや説明もこちらを参照してください。
利用シーン
開発環境から本番環境への移行
本番環境と別のサイトコレクションやテナントで開発を行い、チーム内やお客様とイメージを共有してから本番環境へそれを移行する、という使い方をしています。特にテナント間でSharePointサイトを簡単に移行できるのは非常にありがたいです。
トークンを使えば環境間の差異も楽々吸収できます。
テンプレートを利用した複数サイトコレクションの展開
組織毎にポータルを持ちたい、みたいな要望があった時に重宝しています。組織ポータルを1つ構築してイメージを擦り合わせてからサイトをテンプレート化し、他の組織の分も同じテンプレートを使って展開するなどのやり方をします。
複数の組織ポータルを展開した後にリストが追加になっちゃった!なんて時も大丈夫。1つのサイトでリストを作り、テンプレートを抽出してから必要なListInstance要素以外をざっくり削れば他のサイトにも同じリストをコマンド一発で展開できます。
アプリ / 列 / SharePointグループ などの大量作成
カスタムリストを50個作ってそれぞれに対応するSharePointグループを作り、リスト単位に権限設定をしてほしい、みたいなオーダー頂いたことがありますが、約2時間で作業が完了しました。
構築するものの一覧表を記入するためのExcelファイルを作ってお客様に記入頂き、Excel数式でXML定義を作ってXMLファイルにコピペからのツール実行で済みました。Excelマジ便利。
もちろん上記以外にもPnPプロビジョニングスキーマで表せるものならば何でも対応可能です。凄い。
パラメータシートへの入出力
XMLなら頑張ればExcelファイルに整形できますね。サイトから抽出した設定値がそのままパラメータシートになります。逆もまた真なり。
最近、そもそもパラメータシートなんて作らないですけどね。
データ移行
ニュース記事もテンプレートに含められるようになったので、サイトのお引越しにも使えるようになりました。
一応注意事項
PnPに関してここまで褒めちぎってきましたが、やはり完璧なるツールなど存在しないものです。サイトから抽出したXMLには余計なものがいっぱい入っているので、XMLファイルはそのまま適用するのではなく必要分だけに切り落として利用するとより再現性が高いものになります。
以上、参考になれば幸いです。