---
title: "ResolveマルチランゲージSitecoreアイテム辞書および選択言語パイプラインのステップ"
slug: "the-resolve-multilanguage-sitecore-item-dictionary-and-select-languages-pipeline-steps"
abstract: "Data Exchange Frameworkにおける多言語関連パイプラインステップの設定方法"
---
# ResolveマルチランゲージSitecoreアイテム辞書および選択言語パイプラインのステップ

パイプラインでは、選択されたすべての言語バージョンでアイテムを解決するためにResolve Multilanguage Sitecore Item Dictionaryパイプラインステップを使用できます。このパイプラインステップはSelect Languagesパイプラインステップと併用しなければなりません。

両方のパイプラインステップのテンプレートは */sitecore/templates/Data Exchange/Providers/Sitecore/Pipeline Steps*で見つけることができます。

## セレクト言語パイプラインの構成ステップ

パイプラインの最初にこのパイプラインステップを使います。

パイプラインステップで以下の情報を設定できます:

-   *Languages* – パイプラインステップが解決時にアイテムから取得する言語のリストです。Sitecoreに追加した言語を選択できます。

この情報はパイプラインコンテキスト上で設定します。パイプラインコンテキスト内のすべての多言語パイプラインステップに適用されます。

## ResolveマルチランゲージSitecoreアイテム辞書パイプラインの設定ステップ

Resolve Multilanguage Sitecore Item Dictionaryパイプラインステップで以下の情報を設定できます:

セクション

フィールド

概要

**新しいアイテムを作成する**

**DoNotCreateItemIfItDoesNotExist**

これを選択すると、そのアイテムはメモリ内のみで作成されます。クリアすると、サーバー上で即座にアイテムが作成されます。

**TemplateForNewItem**

*Parent For Item*フォルダにアイテムが存在しない場合は、このテンプレートを使って作成します。

**アイテムネームバリューアクセス**

新しい項目の名前を決定するために使われた値アクセス器。

**エンドポイント**

**エンドポイントから**

データを読み取るエンドポイント。こちらから Sitecore Item Model Repository エンドポイントを選択してください。

**識別子**

**IdentifierValueAccessor**

Value AccessorはIdentifier Objectから識別子の値を読み取るために使われました。その値は **MatchingFieldValueAccessor**の値と比較されます。

**識別子オブジェクト位置**

識別子の値を読み取るオブジェクトの場所です。例えば、 *Pipeline Context Source* のxConnectコンタクトを使い、 xConnect First Name Property on Personal Info Facet 値のアクセサで読み取ることができます。

**ValueReaderToConvertIdentifierValueForComparison**

識別子の値が他の値と比較できる形式に変換するためのコンポーネントです。 **IdentifierValueAccessor** のリターンタイプが **MatchingFieldValueAccessor** のリターンタイプと一致しない場合は、この方法を使用しなければなりません。

**オブジェクト解像度**

**ResolvedObjectLocation(リゾブドオブジェクトロケーション)**

アイテムが解決または作成された場合、この場所に追加され、その後のパイプラインステップで利用可能となります。

**既存アイテムを探す**

**ParentForItem(親のためのアイテム)**

解決する項目のルートフォルダーです。また、パイプラインステップが新しい項目を配置する場所でもあります。  
  
例えば、これを *sitecore/content/MyItems* に設定すると、パイプラインはこのフォルダで既存のアイテムを検索します。もしアイテムが見つからなければ、 *Myitems*の下に新しいアイテムを作成します。

**ParentForItemLocation(親のためのアイテム位置)**

これを使って、動的に作成されたフォルダにアイテムを解決または保存します。例えば、 Pipeline Context Sourceを選択した場合、パイプラインステップはソースパイプラインの場所からオブジェクトを取得し、Sitecoreアイテムに変換しようとし、このアイテムを親として使用することで **ParentForItem** 設定を上書きします。  
  
場所を指定すると、その場所のオブジェクトがSitecoreのアイテムであれば、 **ParentForItem** フィールドで指定されたアイテムの代わりに、このアイテムが親として使われます。

**マッチングフィールドバリューアクセサ**

識別子値と照合するために使われるSitecoreアイテムフィールドの値のアクセサです。例えば、 Item Name Value Accessor を使って名前でアイテムを照合できます。その値は **IdentifierValueAccessor**の値と比較されます。

## パイプラインステップロジック

パイプラインステップは以下のロジックを実行します。

-   パイプラインステップはパイプラインコンテキストから選択されたすべての言語を取得します。
-   パイプラインステップは、アイテムモデルリポジトリから各言語バージョンを要求し、それらをアイテムモデルとして辞書に格納します。
-   パイプラインステップで言語バージョンを解決できず、 DoNotCreateIfExistingObjectNotFound 設定を選択している場合、パイプラインステップはそれをスキップします。それ以外の場合、言語を未検出言語コレクションに追加し、処理の最後に空のアイテムモデルを作成します。
-   パイプラインステップが言語バージョンを解決していない場合、 RepositoryObjectStatus.DoesNotExist をパイプラインコンテキストに設定し、終了します。
-   パイプラインステップが少なくとも1つの言語バージョンを解決できれば、 RepositoryObjectStatus.Exists をパイプラインコンテキストに設定します。
-   DoNotCreateIfExistingObjectNotFoundを選択していない場合、パイプラインステップで欠落している言語バージョンをすべて空のアイテムモデルとして作成し、データをマッピングできるようにします。