8.0

ウォークスルー

日本語翻訳に関する免責事項

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

このウォークスルーは「 テキストファイルのカスタムプロバイダーを実装 する」ウォークスルーシリーズの第4部であり、データアクセスコンポーネントの実装方法を説明します。データアクセスコンポーネントは、データ同期プロセス中に値を読み書きするロジックを表します。この例のデータアクセスコンポーネントは、テキストファイルの行から特定の位置で値を読み取る能力を表しています。

例えば、新規顧客の詳細を示すカンマ区切られた値(CSV)を含むファイルを考えます。そのファイルは以下のようになります:

first,last,company Aaron,Adkins,Ace Corp Brad,Bedford,Burnside Bread Charlotte,Colson,Carefree Farms

パイプラインステッププロセッサReadTextFileStepProcessorファイルから各行を読み込み、指定された区切り符を使って値の配列を作成します。この例では、区切り符はコンマです。

データアクセスコンポーネントを使って、その配列内の値へのアクセス方法を制御します。この例では、データアクセスコンポーネントを使って以下のものを特定します:

  • ファーストネームはポジション1に位置しています
  • 姓(姓)は2番目に位置します
  • 会社名は3位に位置しています

このウォークスルーでは、以下の方法を説明します:

  • 値アクセス用のテンプレートを作成する
  • 値アクセスコンバータを実装してください
  • 値アクセスツールのテンプレートでデフォルト値を設定します
  • 値アクセスセットのテンプレートを作成します
  • 値アクセスツールのデフォルト値を設定する Set テンプレート

値アクセス用のテンプレートを作成する

このウォークスルーでは、入力テキストファイルの各行を配列に分割します。配列内の個々の値はデータ同期プロセスで使用できます。テンプレートを作成し、そのアイコンを設定し、ユーザーが配列内のどの値を読み取るか指定できるフィールドを追加する必要があります。

テンプレートを作成するには:

  1. コンテンツエディターでTemplatesに移動します。メニューリボンの ホーム タブで「 新しいテンプレート」をクリックします。

  2. 「 名前選択 」ダイアログで、以下の値を入力してください:

    フィールド

    価値

    名称

    Array Value Accessor

    ベーステンプレート

    テンプレート/データ交換/フレームワーク/データアクセス/値アクセス/値アクセス/値アクセス

  3. 次へクリック。

  4. ロケーションダイアログで、テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセスを選択。「次へ」をクリックします。確認ダイアログで「閉じる」をクリックします。

  5. 値アクセルのアイコンを設定するには、コンテンツエディターで新しいテンプレートを選択してください。例えば、テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセサ/配列値アクセサ。

  6. 右側のペインの 「コンテンツ 」タブで、タイトルの横にあるアイコンをクリックします。

    Array Value Accessor title icon on the Content tab
  7. アイコン 変更 ダイアログの アイコン 欄で、例えばOffice/32x32/radio_button_selected.pngと入力します。 OKをクリックします。

  8. 値アクセサにフィールドを追加するには、新しいテンプレートでテンプレートセクションを追加し、Settingsと名付けてください。

  9. 以下のフィールドを追加してください:

    フィールド

    価値

    名称

    Position

    種類

    Integer

    共有

    選ばれました

  10. アイテムを保存してください。

値アクセスコンバータを実装してください

値アクセサ項目の設定をプラグインに変換できるコンバーターを作成する必要があります。その後、バリューアクセサテンプレート上でコンバーターを指定して、パイプラインステップを読み取るエンドポイントを特定できます。

コンバーターを作成するには:

  1. 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と一致させる必要があります。

  2. プロジェクトをコンパイルします。

  3. Examples.DataExchange.Providers.FileSystem.dllをSitecoreサーバーにデプロイしてください。

値のアクセサテンプレートでデフォルト値を設定します

値アクセスツールテンプレートを使う前に、そのコンバータータイプを設定しなければなりません。この例では、コンバータータイプはVisual Studioで作成した プラグイン を指し示さなければなりません。

コンバータータイプの設定:

  1. コンテンツエディターで、テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセス/配列値アクセルに移動します。

  2. 右側のペインで「 ビルダー 」タブをクリックします。

  3. メニューリボンのビル ダーオプション タブで「 標準値」をクリックします。

    Standard values on menu ribbon
  4. 新しいアイテムを選択してください。

    Standard values in content tree
  5. 右側のパネルで、以下のフィールド値を設定します:

    名称

    Converter Type

    価値

    例:DataExchange.Providers.FileSystem.ArrayValueAccessorConverter、例:DataExchange.Providers.FileSystem

    !注フィールドのコンバータータイプはデータ交換フレームワークのセクションにあります。フィールドを見る前にセクションを拡張する必要があるかもしれません。

  6. アイテムを保存してください。

値アクセスセットのテンプレートを作成します

値のアクセス子セットを使って関連する値のアクセス子オブジェクトの集合をグループ化します。

特定の種類の値アクセルのみをサポートするカスタムテンプレートを作成できます。この例では、使用するすべてのバリューアクセサはArray Value Accessorテンプレートに基づいています。したがって、この例では配列バリューアクセサのみを許可する値アクセサセットの作成方法を示しています。値アクセルを作成したら、そのアイコンを設定しなければなりません。

配列の値アクセス者のみを表示する値アクセスセットテンプレートを作成するには:

  1. コンテンツエディターでTemplatesに移動します。

  2. メニューリボンの ホーム タブで 「新しいテンプレート」をクリックします。

    New template option on the menu ribbon
  3. 「 名前選択 」ダイアログで、以下の値を入力してください:

    フィールド

    価値

    名称

    Array Value Accessor Set

    ベーステンプレート

    テンプレート/データ交換/フレームワーク/データアクセス/値アクセスセット/値アクセスセット/値アクセスセット

  4. 次へクリック。

  5. ロケーションダイアログで、テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセスセットを選択します。

    Value Accessor sets in the Location dialog
  6. 「次へ」をクリックします。確認ダイアログで**「閉じる**」をクリックします。

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

    Title icon on content tab
  8. アイコン 変更 ダイアログの アイコン 欄でOffice/32x32/radio_button_group.pngを入力してください。 OKをクリックします。

値アクセスツールのセットテンプレートでデフォルト値を設定します

配列値アクセスツールセットテンプレートを使う前に、テンプレートのデフォルトの挿入オプションを設定する必要があります。

テンプレートのデフォルト値を設定するには:

  1. コンテンツエディターで、テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセスセット/配列値アクセスセットの集合へ移動します。

  2. 右側のペインで「 ビルダー 」タブをクリックします。

  3. メニューリボンのBuilder OPTIONSタブの テンプレート グループで「 Standard value」をクリックします。

    Standard values on menu ribbon
  4. コンテンツツリーで新しい項目を選択してください。例えば、テンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセスセット/_Standard値などです。メニューリボンのCONFIGタブの「Insert Options」グループで「 Assign」をクリックします。

  5. 選択リストからすべてのテンプレートを削除し、テンプレートのテンプレート/データ交換/プロバイダー/ファイルシステム/データアクセス/値アクセス/配列値アクセサを追加します。

    Insert options dialogue
  6. OKをクリックします。商品を保存します。

この記事を改善するための提案がある場合は、 お知らせください!