【SharePoint】サイトデザインでリストを作成してみる

f:id:tecchan365:20190617211517p:plain SharePointのサイトデザインを利用して、リストを作成する方法をご紹介します。

事前準備

SharePoint Management Shell をインストール、もしくはPowerShellギャラリーからモジュールをインストールしておいてください。

mynote365.hatenadiary.com

www.powershellgallery.com

今回実行するコードについて

今回実行するコードは、下記サイトを参考にしています。

docs.microsoft.com

サイトスクリプトを作成する

リストをつくるサイトスクリプト(JSONファイル)を作成し、保存しておきます。

{
    "$schema": "https://developer.microsoft.com/json-schemas/sp/site-design-script-actions.schema.json",
    "actions": [
      {
        "verb": "createSPList",
        "listName": "Customer Tracking",
        "templateType": 100,
        "subactions": [
          {
            "verb": "SetDescription",
            "description": "List of Customers and Orders"
          },
          {
            "verb": "addSPField",
            "fieldType": "Text",
            "displayName": "Customer Name",
            "isRequired": false,
            "addToDefaultView": true
          },
          {
            "verb": "addSPField",
            "fieldType": "Number",
            "displayName": "Requisition Total",
            "addToDefaultView": true,
            "isRequired": true
          },
          {
            "verb": "addSPField",
             "fieldType": "User",
            "displayName": "Contact",
            "addToDefaultView": true,
            "isRequired": true
          },
          {
            "verb": "addSPField",
            "fieldType": "Note",
            "displayName": "Meeting Notes",
            "isRequired": false
          }
        ]
      }
    ],
    "version": 1
  }

サイトスクリプトをテナントに追加する

作成したサイトスクリプトを、テナントに追加します。
下記のps1ファイルを作成します。

# サイトデザインを展開したいURL
$targetUrl = "https://<<tenant>>-admin.sharepoint.com/";

# SharePoint管理者のメールアドレス
$mailAddress = "hoge@contoso.com";

# サイトスクリプト(JSONファイル)のパス
$jsonPath = "C:\SiteScirpt.json";

# サイトスクリプトの名前
$siteScriptName = "CreateContsoList"

Connect-SPOService -Url $targetUrl -credential $mailAddress
Get-Content $jsonPath -Raw | Add-SPOSiteScript -Title $SiteScriptName

PowerShellを起動し、作成したps1ファイルのパスを貼り付け、[Enter] キーを押します。
f:id:tecchan365:20190617204057p:plain

認証が求められるのでパスワードを入力します。
f:id:tecchan365:20190617204456p:plain

認証が成功すると、サイトスクリプトが追加され、下記のような値が表示されます。
この中のIdはサイトデザインを追加する際に必要になります。
f:id:tecchan365:20190617205616p:plain

サイトデザインを追加する

サイトスクリプトが追加できたら、最後にサイトデザインの追加です。
先程と同様に、下記のps1ファイルを作成し、実行します。
$siteScriptIdには、先程取得したIdを入力します。

# サイトデザインを展開したいURL
$targetUrl = "https://<<tenant>>-admin.sharepoint.com/";

# SharePoint管理者のメールアドレス
$mailAddress = "hoge@contoso.com";

# サイトデザイン名
$siteDesignName = "Contso List";

# テンプレートナンバー
$webTemplate = "64";

# サイトスクリプトのId
$siteScriptId = "f205bb67-a21e-42df-b16c-9b33c535dda9";

# サイトデザインの説明
$siteDesignDescription =  "Creates customer list and applies standard theme"

Connect-SPOService -Url $targetUrl -credential $mailAddress

Add-SPOSiteDesign `
  -Title  $siteDesignName `
  -WebTemplate  $webTemplate `
  -SiteScripts $siteScriptId `
  -Description $siteDesignDescription

下記のような値が返って来た場合は、正常にサイトデザインが追加されています。
f:id:tecchan365:20190617210456p:plain

サイトデザインを実行する

サイトデザインを実行したいサイトを開き、[ギアマーク] > [サイトデザイン] の順にクリックします。
f:id:tecchan365:20190617211014p:plain

サイトデザインのプルダウンの中から、先程追加したサイトデザインを選択し、[サイトに適用] ボタンをクリックします。
f:id:tecchan365:20190617211205p:plain

サイトデザインが実行され、リストが作成されます。
f:id:tecchan365:20190617211554p:plain

無事、リストが作成されていました!

f:id:tecchan365:20190617211835p:plain

以上です。サイトデザインを活用できれば、いろいろできそうですね!

補足1:サイトスクリプトについて

サイトスクリプトを簡単に作成できるサイトがあります。
ご参考までに。 www.sitedesigner.io

補足2:PowerShellの実行について

今回はPowerShellを実行するに当たり、ps1ファイルを作成したり、作成したファイルパスを貼り付けたり色々めんどくさい操作をしましたが、Visual Studio Codeを使用すればチャチャっとできます。
後日その操作方法の記事を書きます。(多分)