ウォークスルー
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このウォークスルーは「 テキストファイルのカスタムプロバイダーを実装 する」ウォークスルーシリーズの第4部であり、データアクセスコンポーネントの実装方法を説明します。データアクセスコンポーネントは、データ同期プロセス中に値を読み書きするロジックを表します。この例のデータアクセスコンポーネントは、テキストファイルの行から特定の位置で値を読み取る能力を表しています。
例えば、新規顧客の詳細を示すカンマ区切られた値(CSV)を含むファイルを考えます。そのファイルは以下のようになります:
first,last,company Aaron,Adkins,Ace Corp Brad,Bedford,Burnside Bread Charlotte,Colson,Carefree Farms
パイプラインステッププロセッサReadTextFileStepProcessorファイルから各行を読み込み、指定された区切り符を使って値の配列を作成します。この例では、区切り符はコンマです。
データアクセスコンポーネントを使って、その配列内の値へのアクセス方法を制御します。この例では、データアクセスコンポーネントを使って以下のものを特定します:
- ファーストネームはポジション1に位置しています
- 姓(姓)は2番目に位置します
- 会社名は3位に位置しています
このウォークスルーでは、以下の方法を説明します:
- 値アクセス用のテンプレートを作成する
- 値アクセスコンバータを実装してください
- 値アクセスツールのテンプレートでデフォルト値を設定します
- 値アクセスセットのテンプレートを作成します
- 値アクセスツールのデフォルト値を設定する Set テンプレート
値アクセス用のテンプレートを作成する
このウォークスルーでは、入力テキストファイルの各行を配列に分割します。配列内の個々の値はデータ同期プロセスで使用できます。テンプレートを作成し、そのアイコンを設定し、ユーザーが配列内のどの値を読み取るか指定できるフィールドを追加する必要があります。
テンプレートを作成するには:
-
コンテンツエディターでTemplatesに移動します。メニューリボンの ホーム タブで「 新しいテンプレート」をクリックします。
-
「 名前選択 」ダイアログで、以下の値を入力してください:
フィールド
価値
名称
Array Value Accessor
ベーステンプレート
テンプレート/データ交換/フレームワーク/データアクセス/値アクセス/値アクセス/値アクセス
-
次へクリック。
-
ロケーションダイアログで、テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセスを選択。「次へ」をクリックします。確認ダイアログで「閉じる」をクリックします。
-
値アクセルのアイコンを設定するには、コンテンツエディターで新しいテンプレートを選択してください。例えば、テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセサ/配列値アクセサ。
-
右側のペインの 「コンテンツ 」タブで、タイトルの横にあるアイコンをクリックします。

-
アイコン 変更 ダイアログの アイコン 欄で、例えばOffice/32x32/radio_button_selected.pngと入力します。 OKをクリックします。
-
値アクセサにフィールドを追加するには、新しいテンプレートでテンプレートセクションを追加し、Settingsと名付けてください。
-
以下のフィールドを追加してください:
フィールド
価値
名称
Position
種類
Integer
共有
選ばれました
-
アイテムを保存してください。
値アクセスコンバータを実装してください
値アクセサ項目の設定をプラグインに変換できるコンバーターを作成する必要があります。その後、バリューアクセサテンプレート上でコンバーターを指定して、パイプラインステップを読み取るエンドポイントを特定できます。
コンバーターを作成するには:
-
Visual Studioで、次のクラスを追加します:
using Sitecore.DataExchange.Attributes; using Sitecore.DataExchange.Converters.DataAccess.ValueAccessors; using Sitecore.DataExchange.DataAccess; using Sitecore.DataExchange.DataAccess.Readers; using Sitecore.DataExchange.DataAccess.Writers; using Sitecore.DataExchange.Repositories; using Sitecore.Services.Core.Model; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Examples.DataExchange.Providers.FileSystem { SupportedIds(ArrayValueAccessorTemplateId) public class ArrayValueAccessorConverter : ValueAccessorConverter { public const string ArrayValueAccessorTemplateId = "ARRAY VALUE ACCESSOR TEMPLATE ID"; public const string TemplateFieldPosition = "Position"; public ArrayValueAccessorConverter(IItemModelRepository repository) : base(repository) { } protected override IValueReader GetValueReader(ItemModel source) { var reader = base.GetValueReader(source); if (reader == null) { var position = this.GetIntValue(source, TemplateFieldPosition); if (position < 0) { return null; } reader = new ArrayValueReader(position); } return reader; } protected override IValueWriter GetValueWriter(ItemModel source) { var writer = base.GetValueWriter(source); if (writer == null) { var position = this.GetIntValue(source, TemplateFieldPosition); if (position < 0) { return null; } writer = new ArrayValueWriter(position); } return writer; } } }
!重要ARRAY VALUE ACCESSOR TEMPLATE IDの値を、前のステップで作成した値インセクターテンプレートのArray Value AccessorのIDと一致させる必要があります。
-
プロジェクトをコンパイルします。
-
Examples.DataExchange.Providers.FileSystem.dllをSitecoreサーバーにデプロイしてください。
値のアクセサテンプレートでデフォルト値を設定します
値アクセスツールテンプレートを使う前に、そのコンバータータイプを設定しなければなりません。この例では、コンバータータイプはVisual Studioで作成した プラグイン を指し示さなければなりません。
コンバータータイプの設定:
-
コンテンツエディターで、テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセス/配列値アクセルに移動します。
-
右側のペインで「 ビルダー 」タブをクリックします。
-
メニューリボンのビル ダーオプション タブで「 標準値」をクリックします。

-
新しいアイテムを選択してください。

-
右側のパネルで、以下のフィールド値を設定します:
名称
Converter Type
価値
例:DataExchange.Providers.FileSystem.ArrayValueAccessorConverter、例:DataExchange.Providers.FileSystem
!注フィールドのコンバータータイプはデータ交換フレームワークのセクションにあります。フィールドを見る前にセクションを拡張する必要があるかもしれません。
-
アイテムを保存してください。
値アクセスセットのテンプレートを作成します
値のアクセス子セットを使って関連する値のアクセス子オブジェクトの集合をグループ化します。
特定の種類の値アクセルのみをサポートするカスタムテンプレートを作成できます。この例では、使用するすべてのバリューアクセサはArray Value Accessorテンプレートに基づいています。したがって、この例では配列バリューアクセサのみを許可する値アクセサセットの作成方法を示しています。値アクセルを作成したら、そのアイコンを設定しなければなりません。
配列の値アクセス者のみを表示する値アクセスセットテンプレートを作成するには:
-
コンテンツエディターでTemplatesに移動します。
-
メニューリボンの ホーム タブで 「新しいテンプレート」をクリックします。

-
「 名前選択 」ダイアログで、以下の値を入力してください:
フィールド
価値
名称
Array Value Accessor Set
ベーステンプレート
テンプレート/データ交換/フレームワーク/データアクセス/値アクセスセット/値アクセスセット/値アクセスセット
-
次へクリック。
-
ロケーションダイアログで、テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセスセットを選択します。

-
「次へ」をクリックします。確認ダイアログで**「閉じる**」をクリックします。
-
新しいテンプレートを選択してください。例えば、*テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセスセット/配列値アクセスセット。*右側のペインの 「コンテンツ 」タブで、タイトルの横にあるアイコンをクリックします。

-
アイコン 変更 ダイアログの アイコン 欄でOffice/32x32/radio_button_group.pngを入力してください。 OKをクリックします。
値アクセスツールのセットテンプレートでデフォルト値を設定します
配列値アクセスツールセットテンプレートを使う前に、テンプレートのデフォルトの挿入オプションを設定する必要があります。
テンプレートのデフォルト値を設定するには:
-
コンテンツエディターで、テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセスセット/配列値アクセスセットの集合へ移動します。
-
右側のペインで「 ビルダー 」タブをクリックします。
-
メニューリボンのBuilder OPTIONSタブの テンプレート グループで「 Standard value」をクリックします。

-
コンテンツツリーで新しい項目を選択してください。例えば、テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセスセット/_Standard値などです。メニューリボンのCONFIGタブの「Insert Options」グループで「 Assign」をクリックします。
-
選択リストからすべてのテンプレートを削除し、テンプレートのテンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセス/配列値アクセサを追加します。

-
OKをクリックします。商品を保存します。