JSSコードファーストインポートプロセスで使用されるパイプライン
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
インポートプロセスでは、javaScriptServicesグループの一連のパイプラインを使い、JSSマニフェストファイルのデータに基づいてテンプレート、レイアウト、メディア、コンテンツ項目を作成します。
パイプラインは \App_Config\Sitecore\JavaScriptServices\Sitecore.JavaScriptServices.AppServices.configで設定されています。パイプラインの調整を行うには、設定パッチを使用してください。
以下の図はインポートプロセスで使用されるパイプラインの順序を示しています:

インポートプロセスでは以下のパイプラインを使用します:
パイプライン
概要
import
インポートプロセスの主要なパイプラインです。インポートのコンテキストを初期化し、テンプレートやレイアウトアイテムを作成し、コンテンツアイテムパイプラインの作成をトリガーします。
create.item
コンテンツアイテムを見つけたり作成したりします。
update.item
コンテンツアイテムのフィールド値を埋めたり更新したりすると、アイテムレイアウトの更新がトリガーされます。
import.field
コンテンツ項目のフィールドの値をインポートします。
create.media
マニフェストに関連する資産からメディアアイテムを作成します。
import.layout
インポートアイテムのレイアウトを埋めます。
create.renderingInstance
インポートしたアイテムレイアウトで使用するレンダリングインスタンスを作成します。
パイプラインプロセッサ
各パイプラインはプロセッサを活用してタスクを実行します。アイテムを作成するプロセッサは、まず同名の既存アイテムを探し、すでに存在すれば更新します。アイテムを作成または書き込むすべてのプロセッサは、権限を適切にチェックitem:createitem
、権限で許可できない場合はスキップします。!ヒント カスタムプロセッサでパイプラインの挙動を変更できます。
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
付与し、生成されたルートテンプレートを挿入オプションとして割り当てます。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
パイプラインのARGで示されている場合、アイテムの挿入オプションをアイテム自身のテンプレートに設定します。
ImportLayout
import.layoutパイプラインを呼び出してアイテムのレイアウトや表示を更新します。
import.field
このパイプラインの名前空間はSitecore.JavaScriptServices.AppServices.Pipelines.ImportFieldです。
プロセッサ
概要
ResolveField
JSONフィールドモデルで指定された名前でアイテム上のフィールドを見つけます。見つからなければパイプラインを中止します。
LinkFieldValue
フィールドが設定されたリンクフィールドタイプのいずれかであれば、 create.item パイプラインを呼び出してリンク項目を作成し、その後パイプ区切られたIDをフィールドに入力してパイプラインを中止します。
MediaFieldValue
フィールドが設定済みの画像フィールドタイプのいずれかであれば、 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 を使ってレイアウトデルタ計算が実行されることを保証します。プロセッサが設定されていれば、アイテムの 最終レイアウト フィールドをリセットまたはクリアします(ClearFinalLayout)。
create.renderingInstance
このパイプラインの名前空間はSitecore.JavaScriptServices.AppServices.Pipelines.CreateRenderingInstanceです。
このパイプラインは、アプリ設定で定義されたdatasourceStrategy値を用いて、作成されたレンダリングの許可されたデータソースの位置を特定します。
プロセッサ
概要
ResolveRenderingItem
レンダリングインスタンスのインポートされたレンダリング定義項目を見つけます。見つからなければパイプラインを中止します。
CreateRenderingInstance
新しい RenderingDefinition を作成し、そのレンダリングID、プレースホルダー、UID、レンダリングパラメータ、その他のプロパティを埋め込みます。
CheckForDatasourceFields
レンダリングマニフェストにデータソースフィールドがあるかどうかを確認します。なければパイプラインを中止します。
CreateDatasourceItem
設定されたデータソース戦略を使ってレンダリングデータソースの親項目を作成・決定し、その後 create.item パイプラインを呼び出してデータソースアイテムを作成または検索します。データソースIDでレンダリングを更新します。