---
title: "サイトおよびテナントの足場にモジュールを追加してください"
slug: "add-modules-to-site-and-tenant-scaffolding"
abstract: "足場型のアイテムを追加してSXAを拡張しましょう。"
---
# サイトおよびテナントの足場にモジュールを追加してください

スキャフォールディングは [、サイトやテナント](https://doc.sitecore.com/xp/ja/developers/sxa/93/sitecore-experience-accelerator/create-a-tenant-and-a-site.html "Create a tenant and a site")にモジュールを追加することを可能にします。SXAモジュールはFeatureまたはFoundationフォルダに保存されます:

-   */sitecore/System/Settings/Foundation/Experience Accelerator/*
-   */sitecore/System/Settings/Feature/Experience Accelerator/*

新しいモジュールを定義するには、モジュールにSite Setup、Tenant Setup、またはGrid Setupの項目を追加し、Scaffoldingフォルダ(*sitecore/Templates/Foundation/Experience Accelerator/Scaffolding/*)からアクションタイプを追加する必要があります。

## モジュールスキャフォールディングの定義を追加する

モジュールのスキャフォールディングの定義を追加するには:

1.  */sitecore/System/Settings/Foundation/*か*/sitecore/System/Settings/Feature/*に移動してフォルダを追加してください。
    
2.  新しいフォルダを右クリックして、「 **テンプレートから挿入**」をクリックします。
    
3.  テンプレート **から挿入** するダイアログボックスで*sitecore/Templates/Foundation/Experience Accelerator/Scaffolding/Roots*に移動し、追加したいモジュールの種類に応じて「 **グリッド設定」「サイト設定」「テナント設定**」をクリックし、「 **挿入**」をクリックします。
    
    ![Add new site setup.](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/sxa/93/sitecore-experience-accelerator/images/663B4AE6AA76413EA1036C53BFE1E590.png)
    
4.  **「データ**」セクションでは、設置したいモジュールの種類に応じて、以下の項目を入力してください:
    
    **セットアップ**
    
    **フィールド**
    
    **説明**
    
    サイト設定
    
    名称
    
    サイト作成ウィザードで表示したいサイトモジュールの名前です。
    
    依存関係
    
    モジュールの設置順を指定してください。
    
    デフォルトで含める
    
    サイト作成ウィザードでモジュールを有効にすることをデフォルトで選択してください。
    
    インストールされた場合は含めてください
    
    選択したアクションが現在のテナントに適用されたかどうかによって、モジュールは自動的に含まれます。  
      
    Selectedフィールドが空の場合は、このモジュールをインストールするかどうかを新サイト作成ウィザードで決定できます。
    
    はシステムモジュールです
    
    モジュールを自動的にインストールする選択をしてください。この場合、モジュールはダイアログボックスに表示されません。
    
    テナント設定
    
    名称
    
    テナント作成ウィザードで表示したいテナントモジュールの名前です。
    
    デフォルトで含める
    
    テナント作成ウィザードでモジュールをデフォルトで有効にするオプションを選択してください。
    
    はシステムモジュールです
    
    モジュールを自動的にインストールするオプションを選択してください。この場合、モジュールはテナント作成ウィザードに表示されません。
    
    グリッドのセットアップ
    
    名称
    
    サイト作成ウィザードで表示したいグリッドシステムの名前です。
    
    依存関係
    
    モジュールの設置順を指定してください。
    
    グリッドの定義
    
    グリッド定義項目を指します。例えば、Foundationグリッドシステムの場合:設定/機能/Experience Accelerator/Foundation/Foundation
    

## 足場の動作を追加

モジュールを定義するために様々なアクションタイプを使うことができます。アイテムの追加、テンプレートの編集、PowerShellスクリプトの実行が可能です。利用可能なアクションはActionsフォルダ(sitecore/Templates/Foundation/Experience Accelerator/Scaffolding/Actions)に格納されています。

![Scaffolding actions](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/sxa/93/sitecore-experience-accelerator/images/BB1A6C25A85643579A97988F6A8C3847.png)

足場の動作を追加するには:

-   新しいモジュールに移動し、追加したセットアップアイテムを右クリックします。例えば、サイトセットアップアイテムを右クリックして「 **Add Site Item Entry** 」アクションを挿入します。
    
    ![Add Site item](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/sxa/93/sitecore-experience-accelerator/images/7CE6802867CA4624B663376868C1955B.png)
    

以下のアクションが利用可能です:

**アクションタイプ**

**フィールド**

**概要**

テナントアイテムの追加

所在地

新しいアイテムをテナントの下に追加します。

テンプレート

新しいテナント項目を作成するためのテンプレート。

名称

アイテムの名前。

フィールド

新しいアイテムの作成後にフィールドを設定するためのフィールド/値マッピング。

テナントテンプレートを編集

テンプレート

テンプレートを選択してテナントテンプレートにコピーします。テンプレートは定義された設定に従って編集されます。

作戦の種類

アクションタイプを選択します。

ベーステンプレートまたは挿入オプションテンプレート

前のフィールドで選択されたアクションの引数として使用するアイテムを選択します。

テナントスクリプトを実行する

文字

実行するPowerShellスクリプトを選択します。スキャフォールディングスクリプトを使ってサイトやテナント作成の一部を自動化できます。例えば:  
  
csharp<br>function Invoke-ModuleScriptBody {<br>CmdletBinding()<br> param(<br> # Depending on context could be a Tenant or Site item<br> Parameter(Mandatory=$true, Position=0 )<br>Item$Root,<br>Parameter(Mandatory=$true, Position=1 ) <br> Item$TenantTemplates <br> )<br>begin {<br>Write-Verbose "Cmdlet Invoke-ModuleScriptBody - Begin"<br>}<br>process {<br>Write-Verbose "Cmdlet Invoke-ModuleScriptBody - Process"<br> # Script body<br> # Put your custom logic here<br>}<br>end {<br>Write-Verbose "Cmdlet Invoke-ModuleScriptBody - End"<br>}<br>}<br>

サイト項目を追加

所在地

サイトの下に新しいアイテムを追加します。

テンプレート

新しいサイトアイテムを作成するためのテンプレート。

名称

新しいサイトアイテムの名前。

フィールド

新しいアイテムの作成後にフィールドを設定するためのフィールド/値マッピング。

サイト項目を編集

テンプレート

追加の挿入オプションを追加してサイト項目を編集できます。

作戦の種類

アクションタイプを選択します。

オプション挿入

アイテムの挿入オプションを定義します。

サイトスクリプトを実行する

文字

実行するPowerShellスクリプトを選択します。スキャフォールディングスクリプトを使ってサイトやテナント作成の一部を自動化できます。例えば:  
  
csharp<br>function Invoke-ModuleScriptBody {<br>CmdletBinding()<br> param(<br> # Depending on context could be a Tenant or Site item<br> Parameter(Mandatory=$true, Position=0 )<br>Item$Root,<br>Parameter(Mandatory=$true, Position=1 ) <br> Item$TenantTemplates <br> )<br>begin {<br>Write-Verbose "Cmdlet Invoke-ModuleScriptBody - Begin"<br>}<br>process {<br>Write-Verbose "Cmdlet Invoke-ModuleScriptBody - Process"<br> # Script body<br> # Put your custom logic here<br>}<br>end {<br>Write-Verbose "Cmdlet Invoke-ModuleScriptBody - End"<br>}<br>}<br>

編集テーマ

基本テーマ

編集テーマインスタンスに追加する基本テーマのリスト。

サイトテーマを編集

基本テーマ

編集テーマインスタンスに追加する基本テーマのリスト。

セットアップ後のステップ

文字

実行するPowerShellスクリプトを選択します。サイト作成後は、スキャフォールディングスクリプトを使ってアクションを実行できます。  
  
csharp<br>function Invoke-Step {<br> CmdletBinding()<br> param(<br> Parameter(Mandatory = $true, Position = 0 )<br> Sitecore.XA.Foundation.Scaffolding.Models.CreateNewSiteModel$Model<br> )<br> begin {<br> Write-Verbose "Cmdlet Invoke-Validation - Begin"<br> }<br> process {<br> Write-Verbose "Cmdlet Invoke-Validation - Process"<br> }<br> end {<br> Write-Verbose "Cmdlet Invoke-Validation - End"<br> }<br>}<br>

入力検証ステップ

文字

実行するPowerShellスクリプトを選択します。サイト作成前にスキャフォールディングスクリプトを使ってモデルを検証できます。検証スクリプトのいずれかで返される結果がfalseであれば、新設サイトのダイアログボックスが再度表示され、以前選択された値の一部を修正できます。  
  
csharp<br>function Invoke-Validation {<br> CmdletBinding()<br> param(<br> Parameter(Mandatory = $true, Position = 0 )<br> Sitecore.XA.Foundation.Scaffolding.Models.CreateNewSiteModel$Model<br> )<br> begin {<br> Write-Verbose "Cmdlet Invoke-Validation - Begin"<br> }<br> process {<br> Write-Verbose "Cmdlet Invoke-Validation - Process" <br> # Return $true or $false as a result of validation<br> $true<br> }<br> end {<br> Write-Verbose "Cmdlet Invoke-Validation - End"<br> }<br>

セットアップ後のステップ

文字

実行するPowerShellスクリプトを選択します。テナントが作成されたら、スキャフォールディングスクリプトを使ってアクションを実行できます。  
  
csharp<br>function Invoke-Step {<br> CmdletBinding()<br> param(<br> Parameter(Mandatory = $true, Position = 0 )<br> Sitecore.XA.Foundation.Scaffolding.Models.CreateNewTenantModel$Model<br> )<br> begin {<br> Write-Verbose "Cmdlet Invoke-Validation - Begin"<br> }<br> process {<br> Write-Verbose "Cmdlet Invoke-Validation - Process"<br> }<br> end {<br> Write-Verbose "Cmdlet Invoke-Validation - End"<br> }<br>}<br>

入力検証ステップ

文字

実行するPowerShellスクリプトを選択します。テナント作成前にスキャフォールディングスクリプトを使ってモデルを検証できます。検証スクリプトで返された結果が偽の場合、新設テナントダイアログボックスが再度表示され、以前に選択された値を修正できます。  
  
csharp<br>function Invoke-Validation {<br> CmdletBinding()<br> param(<br> Parameter(Mandatory = $true, Position = 0 )<br> Sitecore.XA.Foundation.Scaffolding.Models.CreateNewTenantModel$Model<br> )<br> begin {<br> Write-Verbose "Cmdlet Invoke-Validation - Begin"<br> }<br> process {<br> Write-Verbose "Cmdlet Invoke-Validation - Process"<br> # Return $true or $false as a result of validation<br> $true<br> }<br> end {<br> Write-Verbose "Cmdlet Invoke-Validation - End"<br> }<br>}<br>

プリ・デートステップ

文字

実行するPowerShellスクリプトを選択します。スキャフォールディングスクリプトを使って、サイトやテナントの削除プロセスの一部を自動化できます。このアクションはRemove-TenantやRemove-Siteコマンドレットが呼び出されたときに実行されます。カスタムモジュールで作成されたアイテムのクリーンアップにも使えます。なぜなら、デフォルト削除プロセスでは削除されていない(例えば、アイテムが異なるフォルダにある場合など)です。  
  
csharp<br>function Invoke-Step {<br> CmdletBinding()<br> param(<br> Parameter(Mandatory = $true, Position = 0 )<br> Item$Root<br> )<br> begin {<br> Write-Verbose "Cmdlet Invoke-Validation - Begin"<br> }<br> process {<br> Write-Verbose "Cmdlet Invoke-Validation - Process"<br> }<br> end {<br> Write-Verbose "Cmdlet Invoke-Validation - End"<br> }<br>}<br>

削除後ステップ

文字

実行するPowerShellスクリプトを選択します。スキャフォールディングスクリプトを使って、サイトやテナントの削除プロセスの一部を自動化できます。このアクションは、誰かが Remove-Tenant またはコマンドレットを呼び出したときに実行 Remove-Site します。これにより、標準的な削除時に削除されないカスタムモジュールで作成されたアイテムをクリーンアップできます(例えば、テナント/サイトルートアイテム、テナント/サイトメディアライブラリ、テナントテンプレートなど、よく知られたフォルダの外にアイテムを保存した場合など)  
  
csharp<br>function Invoke-Step {<br> CmdletBinding()<br> param(<br> Parameter(Mandatory = $true, Position = 0 )<br> Item$Root<br> )<br> begin {<br> Write-Verbose "Cmdlet Invoke-PostDeleteStep - Begin"<br> }<br> process {<br> Write-Verbose "Cmdlet Invoke-PostDeleteStep - Process"<br> }<br> end {<br> Write-Verbose "Cmdlet Invoke-PostDeleteStep - End"<br> }<br>}<br>

Pre Delete検証ステップ

実行するPowerShellスクリプトを選択します。スキャフォールディングスクリプトを使って、サイトやテナントの削除プロセスの一部を自動化できます。  
  
テナントやサイトを削除する前に、スキャフォールディングスクリプトを使って状態を検証できます。検証スクリプトのいずれかで返された結果が誤りの場合、削除操作はキャンセルされます。  
  
csharp<br>function Invoke-Validation {<br> CmdletBinding()<br> param(<br> Parameter(Mandatory = $true, Position = 0 )<br> Item$Root<br> )<br> begin {<br> Write-Verbose "Cmdlet Invoke-Validation - Begin"<br> }<br> process {<br> Write-Verbose "Cmdlet Invoke-Validation - Process"<br> # Return $true or $false as a result of validation<br> $true<br> }<br> end {<br> Write-Verbose "Cmdlet Invoke-Validation - End"<br> }<br>}<br>