鍋綿ブログ

C#・SharePoint・SharePoint Framework・Office365を中心に扱うブログです。

SharePointのテンプレート化方法まとめ

SharePointのサイトやリストは設定値が非常に多いです。
似たものを複数展開する際、それぞれを手動で設定することもできますが、
テンプレート化して展開するほうが簡単でミスなく構築できます。
テンプレート化の方法はいくつかあり、柔軟性が高いほど難易度も高くなります。

 

 

手法の一覧

機能名 操作方法
画面 PowerShell / C#
サイトテンプレート / リストテンプレート
サイトデザインとサイトスクリプト
PnP プロビジョニング ×

※△:テンプレートを利用して新規サイト作成する際は画面で操作

   テンプレートの作成はPowerShellで実施

サイトテンプレート / リストテンプレート

昔からある方法です。
出来上がったサイト・リストを「テンプレート」としてファイルに保存し、
それを使って別のサイト・リストを新規作成することができます。

  • 良いところ
    • すべて画面から操作を行うことができるため手軽である
    • 中身のファイルやデータごとテンプレート化する設定も可
  • 悪いところ
    • 一部テンプレートに含まれない機能があり分かりづらい
    • 絶対パスで記述されているところは全てそのままの値になる(リンクなど)
    • モダンサイトでは使えない
    • 発行機能が有効なサイトでは使えない 

サイトデザインとサイトスクリプト

ロゴや外観などのデザインとサイト新規作成時に行うアクションをJSON形式の設定ファイルに書いておき、SharePointに覚えさせる方法です。
PowerShellコマンドを使用すると、既存のサイトコレクションにサイトデザインを適用することも可能です。
設定ファイルには以下のようなものを記述できます。

  • リスト / ライブラリの構築
  • データ / ファイルの登録
  • 機能の有効化
  • Flowの実行
  • など

SharePoint サイト デザインとサイト スクリプトの概要 | Microsoft Docs

  • 良いところ
    • モダンサイトに適用できる
    • 既存サイトに適用できる
    • 定義をすべてJSONに記述するのでサイトに含まれるものが分かりやすい
    • Flowを実行できるのでREST API実行アクションを使えば開発も視野に入る
  • 悪いところ
    • JSONをすべて手書きする必要がある(ツラい)
    • 昔からあるサイト作成画面では使えない(代わりにSharePointホームページから作成する)
    • サブサイトに適用できない

PnP プロビジョニング

サイトの設定値や含まれるコンテンツなどを任意の場所に保管しておき、それをサイトに適用するという方法です。サイトスクリプトとは目的が違います。

  • サイトスクリプトは、組織の管理者がユーザーにサイト新規作成を委ねる場合に、共通のコンテンツを提供することを目標にする機能です。
  • PnP プロビジョニングは、開発者が顧客に対するコンテンツ展開を自動化することが目標です。

サイトスクリプトでもPnP プロビジョニングでも同じコンテンツを展開できるのですが、PnP プロビジョニングには画面がまったくありません。(自動化が目標なので画面での操作は邪魔になります。)

別の記事で取り上げましたので詳細は以下をご覧ください。

PnP プロビジョニングを利用したSharePointサイトのテンプレート展開 - 鍋綿ブログ

  • 良いところ
    • すべてコードで操作できるのでコンテンツ展開の自動化が可能
    • 既存サイトの定義を吸い出せる ⇒ 定義はすべて手書きしなくても良い
  • 悪いところ
    • 既存サイトに適用できる(既存サイトと異なる定義だけが適用される)
    • モダンサイトでもクラシックサイトでも適用できる
    • 画面が一切ない(完全に管理者・開発者向け)

 

以上、参考になれば幸いです。