JSSコード優先インポート プロセスで使用されるパイプライン

Version: 22.x
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

インポート プロセスでは、JSSマニフェスト ファイルのデータに基づいてテンプレート、レイアウト、メディア、およびコンテンツ アイテムを作成するjavaScriptServicesグループ内の一連のパイプラインを使用します。

パイプラインは \App_Config\Sitecore\JavaScriptServices\Sitecore.JavaScriptServices.AppServices.configで設定します。パイプラインを調整するには、構成パッチを使用します。

次の図は、インポート プロセスで使用されるパイプラインのシーケンスを示しています。

Import process sequence of pipelines

インポートプロセスでは、次のパイプラインを使用します。

パイプライン

形容

import

インポート プロセスのプライマリ パイプライン。インポートのコンテキストを初期化し、テンプレートとレイアウトのアイテムを作成し、コンテンツアイテムパイプラインの作成をトリガーします。

create.item

コンテンツ項目を検索または作成します。

update.item

コンテンツアイテムのフィールド値を入力または更新し、アイテムレイアウトの更新をトリガーします。

import.field

コンテンツアイテムのフィールドの値をインポートします。

create.media

マニフェストに関連付けられたアセットからメディアアイテムを作成します。

import.layout

インポートされたアイテムのレイアウトを入力します。

create.renderingInstance

読み込まれたアイテムのレイアウトで使用するレンダリング インスタンスを作成します。

パイプラインプロセッサ

各パイプラインは、プロセッサを活用してタスクを実行します。 creating項目として記述されているプロセッサは、最初に同じ名前の既存の項目を検索し、既に存在する場合は更新を試みます。項目を作成または書き込むすべてのプロセッサは、item:createitem:writeのアクセス許可を適切にチェックし、アクセス許可で許可されていない場合はそれらのアクションをスキップします。

import

このパイプラインの名前空間はSitecore.JavaScriptServices.AppServices.Pipelines.Importです。

このパイプラインは、アプリ設定で定義されたdatasourceStrategyを使用して、作成されたレンダリングで許可されるデータソースの場所を決定します。

プロセッサー

形容

EnableSecurity

セキュリティ権限が適用されていることを確認します。通常はセキュリティが無効になっているコンテキスト (更新パッケージのポストステップなど) 内での実行に必要です。

SwitchUser

ユーザー コンテキストを、構成されたインポート ユーザーに切り替えます。

SwitchSite

Sitecoreコンテンツ ワークフローは、サイトごとに有効にできます。このモックサイトは、インポートプロセス中にコンテンツワークフローが実行されることを保証します。

SwitchDatabases

データベース・コンテキストを、構成されたインポート・データベースに切り替えます。

SwitchLanguage

言語コンテキストを、設定されたインポート言語に切り替えます。

SwitchBulkUpdateContext

インポート インデックスの最適化が有効になっている場合は、BulkUpdateContextを入力します。

VerifyAppConfiguration

アプリにすべての必須属性があり、アプリ上に構成されたアイテム パスが存在することを確認します。 args.Itemsに値を入力します。

Deserialize

インポートJSONをインポート データ モデル クラスに逆シリアル化します。

WipePreviousImport

フル ワイプ モードが有効になっている場合、プロセスは、アプリで構成されているインポート パス内の既存の項目の削除を試みます。

CreateTemplatesContainer

インポートされたテンプレートの親アイテムを作成します。

CreateRouteTemplate

ルート項目のアプリ固有のテンプレートを作成します。

CreateAppContainer

アプリのルートとデータ項目のルート項目を作成します。インポート ユーザーに、作成したアイテムに対するitem:createアクセス権を付与し、生成されたルート テンプレートを挿入オプションとして割り当てます。

CreatePlaceholdersContainer

インポートされたプレースホルダー設定の親アイテムを作成します。

CreateRenderingsContainer

読み込まれたレンダリングの親アイテムを作成します。JSSレンダリングタイプを挿入オプションとして割り当てます。

CreateMediaLibraryContainer

インポートされたメディアアイテムの親アイテムを作成します。

ProcessTemplates

マニフェスト内のすべてのテンプレートを、指定されたフィールドとともに作成します。また、標準値を作成し、設定されたワークフローをデフォルトのワークフローとして設定します。

ProcessPlaceholders

マニフェスト内のすべてのプレースホルダーとアプリ構成のルート プレースホルダーの設定項目を作成します。

ProcessRenderings

マニフェスト内のすべてのレンダリングのレンダリング項目を作成します。構成されたデータソース戦略を使用して、データソーステンプレートを使用したレンダリングの適切なデータソースの場所を設定します。マニフェスト内のデータに基づいてプレースホルダーのレンダリングを構成します。

AddPlaceholderAllowedControls

許可されたコントロール分析が有効になっている場合、インポートされたすべてのプレースホルダー設定は、インポートされたルート内のレンダリング使用状況に基づいて許可されたコントロールで更新されます。

CreateLayout

アプリのメイン レイアウト項目を作成します。アプリ構成のルート プレースホルダーに基づいてプレースホルダーを構成します。

SetRouteLayoutStandardValue

生成されたルート テンプレートの標準値でレイアウトに、生成されたレイアウト アイテムを入力します。

SetRouteTemplateInheritance

インポート マニフェストでカスタム ルート テンプレートが定義されている場合、その基本テンプレートは、上記で生成されたアプリ固有のルート テンプレートに設定されます。

ProcessItems

マニフェスト内のすべてのルート項目と非ルート項目をcreate.itemパイプラインを使用して作成します。

ProtectDeveloperItems

開発者アイテムの保護が有効になっている場合、プロセスはインポートされたテンプレートとレイアウト/レンダリングアイテムに読み取り専用/保護フラグを適用します。

RefreshIndexes

インポートインデックスの最適化が有効になっている場合、プロセスはIndexCustodian.RefreshTreeを使用してすべてのルート/親インポートアイテムのインデックスを更新します。

メモ

すべてのSwitch* プロセッサは、IDisposableコンテキストスイッチャーを設定します。すべてのIDisposableコンテキスト スイッチャーは、パイプライン自体の外部、つまりImportPipelineサービスで破棄されます。

create.item

このパイプラインの名前空間はSitecore.JavaScriptServices.AppServices.Pipelines.CreateItemです。

プロセッサー

形容

ResolveItemName

パイプライン引数で指定されたitemNamerに基づいて、検索または作成する項目の名前を決定します。

CheckPermissions

アイテム名に基づいて、アイテムがすでに存在するかどうかを確認します。存在しない場合は、アイテムを作成するためのアクセス許可が存在するかどうかを確認します。そうでない場合は、パイプラインを中止します。

ResolveTemplate

必要に応じて、新しいアイテムの作成に使用するテンプレートを決定します。

AddItem

アイテムがまだ存在しない場合は作成します。

UpdateItemValues

update.itemパイプラインを呼び出して項目の値を設定します。

CreateChildItems

マニフェストで見つかった項目の各子に対してcreate.itemパイプラインを再度呼び出します。

update.item

このパイプラインの名前空間はSitecore.JavaScriptServices.AppServices.Pipelines.UpdateItemです。

プロセッサー

形容

CheckPermissions

アイテムに書き込むためのアクセス許可が存在するかどうかを確認します。そうでない場合は、パイプラインを中止します。

SetDisplayName

パイプライン引数で指定された表示名関数/コールバックに基づいて、アイテムの表示名を設定します。

SetFieldValues

アイテム マニフェストの各フィールドに対してimport.fieldパイプラインを呼び出すことで、アイテムにフィールド値を設定します。

AssignInsertOptions

パイプライン引数で示されている場合は、アイテムの挿入オプションをアイテム自体のテンプレートに設定します。

ImportLayout

import.layoutパイプラインを呼び出して、アイテムのレイアウト/プレゼンテーションを更新します。

import.field

このパイプラインの名前空間はSitecore.JavaScriptServices.AppServices.Pipelines.ImportFieldです。

プロセッサー

形容

ResolveField

JSONフィールドモデルで指定された名前でアイテムのフィールドを検索します。見つからない場合はパイプラインを中止します。

LinkFieldValue

フィールドが設定されたリンク フィールド タイプの1つである場合、create.itemパイプラインを呼び出してリンクされたアイテムを作成し、パイプで区切られたIDをフィールドに入力してパイプラインを中止します。

MediaFieldValue

フィールドが設定されたイメージ フィールド タイプの1つである場合、create.mediaパイプラインを呼び出してメディア アイテムを作成し、フィールドにメディアIDを入力してパイプラインを中止します。

DefaultFieldValue

JSONフィールド モデルからの未加工/リテラル値をフィールドに入力し、パイプラインを中止します。

create.media

このパイプラインの名前空間はSitecore.JavaScriptServices.AppServices.Pipelines.CreateMediaです。

プロセッサー

形容

CalculateItemPath

設定されたアプリメディアライブラリのパスとインポートマニフェストのアセットのパスに基づいて、メディアライブラリ内の適切な場所を決定します。

CheckPermissions

メディア項目が既に存在するかどうか、および項目に対する書き込み権限が許可されているかどうかを確認します。そうでない場合は、既存の項目が返され、パイプラインは中止されます。

CalculateFilePath

インポートパッケージのパスとマニフェストのアセットパスに基づいて、アセットのファイルシステムパスをマッピングします。計算されたパスにファイルが存在しない場合、パイプラインは中止されます。

BuildMediaCreatorOptions

メディアのインポートに使用するSitecore.Resources.Media.MediaCreatorOptionsオブジェクトを作成します。

CreateFromFile

Sitecore.Resources.Media.MediaCreatorを呼び出して、メディア・ファイルをメディア・ライブラリにインポートします。

import.layout

このパイプラインの名前空間はSitecore.JavaScriptServices.AppServices.Pipelines.ImportLayoutです。

プロセッサー

形容

CheckForLayout

インポートされたアイテム マニフェストにレンダリングが定義されているかどうかを確認します。そうでない場合は、パイプラインを中止します。

InitializeLayout

新しいLayoutDefinitionを作成し、構成されたデバイスのメインレイアウトを初期化します。

AddRenderings

アイテム マニフェストで定義されている各レンダリングのcreate.renderingInstanceパイプラインを呼び出し、構成されたデバイスにレンダリングを追加します。

SaveLayout

アイテムの共有レイアウトにレイアウトXMLを設定し、LayoutFieldを使用してレイアウト差分計算が実行されるようにします。プロセッサがそのように構成されている場合は、アイテムのFinal Layoutフィールドをリセット/クリアします (ClearFinalLayout)。

create.renderingInstance

このパイプラインの名前空間はSitecore.JavaScriptServices.AppServices.Pipelines.CreateRenderingInstanceです。

このパイプラインは、アプリ設定で定義されたdatasourceStrategyを使用して、作成されたレンダリングで許可されるデータソースの場所を決定します。

プロセッサー

形容

ResolveRenderingItem

レンダリング インスタンスのインポートされたレンダリング定義アイテムを検索します。見つからない場合はパイプラインを中止します。

CreateRenderingInstance

新しいRenderingDefinitionを作成し、そのレンダリングID、プレースホルダー、UID、レンダリングパラメーター、およびその他のプロパティを入力します。

CheckForDatasourceFields

レンダリング マニフェストにデータソース フィールドがあるかどうかを確認します。そうでない場合は、パイプラインを中止します。

CreateDatasourceItem

構成されたデータソース戦略を使用して、レンダリングデータソースの親アイテムを作成/決定し、create.itemパイプラインを呼び出してデータソースアイテムを作成または検索します。レンダリングをデータソースIDで更新します。

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、