チュートリアル: データ アクセス コンポーネントの実装

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

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

このチュートリアルは、テキスト ファイルのカスタム プロバイダーの実装 に関するチュートリアル シリーズのパート4であり、データ アクセス コンポーネントを実装する方法について説明します。データ アクセス コンポーネントは、データ同期プロセス中に値の読み取り、書き込み、およびマップに使用されるロジックを表します。この例のデータ・アクセス・コンポーネントは、テキスト・ファイル内の行から特定の位置の値を読み取る機能を表しています。

たとえば、新規顧客に関する詳細を提供するカンマ区切り値 (CSV) を含むファイルについて考えてみます。ファイルは次のようになります。

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

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

データ・アクセス・コンポーネントを使用して、その配列内の値へのアクセス方法を制御します。この例では、データ・アクセス・コンポーネントを使用して、次のものを識別します。

  • 名前は位置1にあります

  • 姓 (姓) は2位にあります

  • 会社名は3位にあります

このチュートリアルでは、次の方法について説明します。

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

  • 値アクセサーコンバーターを実装する

  • 値アクセサー・テンプレートのデフォルト値の設定

  • 値アクセサー・セットのテンプレートの作成

  • 値アクセサ セット テンプレートに既定値を設定する

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

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

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

  1. コンテンツ エディターで、Templatesに移動します。メニュー リボンのHomeタブで、New Templateをクリックします。

  2. Select nameダイアログで、次の値を入力します。

    価値

    Name

    Array Value Accessor

    Base template

    Templates/Data Exchange/Framework/Data Access/Value Accessors/Value Accessor

  3. Next」をクリックします。

  4. Locationダイアログで、「 Templates/Data Exchange/Providers/File System/Data Access/Value Accessors」を選択します。Nextをクリックします。確認ダイアログで、「 Close」をクリックします。

  5. 値アクセサのアイコンを設定するには、コンテンツ エディタで新しいテンプレート ( Templates/Data Exchange/Providers/File System/Data Access/Value Accessors/Array Value Accessorなど) を選択します。

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

    Array Value Accessor title icon on the Content tab
  7. Change Iconダイアログの「Icon」フィールドに、たとえば「Office/32x32/radio_button_selected.png」と入力します。「OK」をクリックします。

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

  9. 次のフィールドを追加します。

    価値

    Name

    Position

    Type

    Integer

    Shared

    入選

  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. コンテンツ エディターで、Templates/Data Exchange/Providers/File System/Data Access/Value Accessors/Array Value Accessorに移動します。

  2. 右側のペインで、Builderタブをクリックします。

  3. メニュー リボンのBuilder OPTIONSタブで、Standard valuesをクリックします。

    Standard values on menu ribbon
  4. 新しいアイテムを選択します。

    Standard values in content tree
  5. 右側のペインで、次のフィールド値を設定します。

    Name

    Converter Type

    Value

    Examples.DataExchange.Providers.FileSystem.ArrayValueAccessorConverter, Examples.DataExchange.Providers.FileSystem

    メモ

    フィールドConverter TypeData Exchange Frameworkセクションにあります。フィールドを表示する前に、セクションを展開する必要がある場合があります。

  6. アイテムを保存します。

値アクセサー・セットのテンプレートの作成

値アクセサ セットを使用して、関連する値アクセサ オブジェクトのセットをグループ化します。

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

配列値アクセサのみを表示する値アクセサ セット テンプレートを作成するには、次のようにします。

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

  2. メニュー リボンのHomeタブで、New Templateをクリックします。

    New template option on the menu ribbon
  3. Select nameダイアログで、次の値を入力します。

    価値

    Name

    Array Value Accessor Set

    Base template

    Templates/Data Exchange/Framework/Data Access/Value Accessor Sets/Value Accessor Set

  4. Next」をクリックします。

  5. Locationダイアログで、「 Templates/Data Exchange/Providers/File System/Data Access/Value Accessor Sets」を選択します。

    Value Accessor sets in the Location dialog
  6. Next」をクリックします。確認ダイアログで、「 Close」をクリックします。

  7. 新しいテンプレート ( Templates/Data Exchange/Providers/File System/Data Access/Value Accessor Sets/Array Value Accessor Setなど) を選択します。右側のペインのContentタブで、タイトルの横にあるアイコンをクリックします。

    Title icon on content tab
  8. Change IconダイアログのIconフィールドにOffice/32x32/radio_button_group.pngと入力します。「OK」をクリックします。

値アクセサー・セット・テンプレートのデフォルト値の設定

配列値アクセサ セット テンプレートを使用する前に、テンプレートの既定の挿入オプションを構成する必要があります。

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

  1. コンテンツ エディターで、Templates/Data Exchange/Providers/File System/Data Access/Value Accessor Sets/Array Value Accessor Setに移動します。

  2. 右側のペインで、Builderタブをクリックします。

  3. メニュー リボンのBuilder OPTIONSタブのTemplateグループで、Standard valuesをクリックします。

    Standard values on menu ribbon
  4. コンテンツ ツリーで、新しいアイテム ( Templates/Data Exchange/Providers/File System/Data Access/Value Accessor Sets/_Standard valuesなど) を選択します。メニュー リボンのCONFIGUREタブの 挿入オプション グループで、Assignをクリックします。

  5. Selectedリストからすべてのテンプレートを削除し、テンプレートをTemplates/Data Exchange/Providers/File System/Data Access/Value Accessors/Array Value Accessorに追加します。

    Insert options dialogue
  6. OK」をクリックします。アイテムを保存します。

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