チュートリアル: エンドポイントの実装

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

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

このチュートリアルは、テキスト ファイルのカスタム プロバイダーの実装 に関するチュートリアル シリーズのパート2であり、カスタム エンドポイントを実装する方法について説明します。エンドポイントは、読み取りや書き込みが可能なものを表します。この例では、エンドポイントは読み取り可能なテキスト ファイルを表します。

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

  • エンドポイントのテンプレートを作成する

  • エンドポイントへのテンプレート フィールドの追加

  • エンドポイント設定プラグインを実装する

  • エンドポイント コンバーターを実装する

  • エンドポイントテンプレートに標準値を設定する

エンドポイントのテンプレートを作成する

Sitecoreコンテンツ エディターを使用して、データ同期プロセスをモデル化します。これにより、使い慣れたインターフェイスを使用して構成を行うことができます。設定には、Sitecoreが読み取ることができるテキスト ファイルを表すために使用できるテンプレートが必要です。

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

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

  2. メニュー リボンのInsertグループで、New Templateをクリックします。

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

    価値

    Name

    Text File Endpoint

    Base template

    Templates/Data Exchange/Framework/Endpoints/Base Template/ Base Endpoint

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

  5. Locationダイアログで、「 Templates/Data Exchange/Providers/File System/Endpoints」を選択します。Nextをクリックします。

  6. 確認ダイアログで、「 Close」をクリックします。

  7. 新しいテンプレートのアイコンを設定するには、コンテンツ ツリーでテンプレート ( Templates/Data Exchange/Providers/File System/Endpoints/Text File Endpointなど) を選択します。

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

    Setting the icon for an endpoint template
  9. Change Iconダイアログの「Icon」フィールドに、次のように入力します。Office/32x32/cloud.png

テンプレート フィールドの追加

テキスト ファイル エンドポイントでは、テキスト ファイルの解析方法をSitecoreに指示する設定を構成する必要があります。たとえば、データが1行または複数行にあるかどうか、ファイルで使用する列区切り記号、列ヘッダーを含む行がファイルに含まれているかどうかを指定できます。

これらの設定を追加するには:

  1. Data Exchange/Providers/File System/Endpoints/Text File Endpointに移動します。

  2. テンプレート セクションを追加します。 Settingsという名前を付けます。

  3. BuilderタブのSettingsセクションで、次のテンプレート フィールドを追加します。

    名前

    種類

    シェアード

    Path

    Single-Line Text

    入選

    ColumnSeparator

    Single-Line Text

    入選

    ColumnHeadersInFirstLine

    Checkbox

    入選

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

エンドポイント設定プラグインを実装する

エンドポイントの設定は、エンドポイントテンプレートを使用して構成します。この例では、読み取ることができるファイルのパスや、ファイルの最初の行に列ヘッダーが含まれているかどうかなどの設定を構成できます。

エンドポイント テンプレートは、エンドポイント設定へのデザイン時アクセスを提供します。エンドポイント設定へのランタイム アクセスは、プラグインを通じて提供されます。エンドポイントの特定の設定を処理するには、プラグインを使用する必要があります。

エンドポイント設定プラグインを実装するには:

  1. Visual Studioで、次のクラスを追加します。

    using Sitecore.DataExchange;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Examples.DataExchange.Providers.FileSystem
    {
        public class TextFileSettings : IPlugin
        {
            public TextFileSettings() { }
            public bool ColumnHeadersInFirstLine { get; set; }
            public string ColumnSeparator { get; set; }
            public string Path { get; set; }
        }
    }
  2. 次のクラスを追加します。

    using Sitecore.DataExchange.Models;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Examples.DataExchange.Providers.FileSystem
    {
        public static class EndpointExtensions
        {
            public static TextFileSettings GetTextFileSettings(this Endpoint endpoint)
            {
                return endpoint.GetPlugin<TextFileSettings>();
            }
            public static bool HasTextFileSettings(this Endpoint endpoint)
            {
                return (GetTextFileSettings(endpoint) != null);
            }
        }
    }
メモ

この拡張方法により、必要なときにプラグインに簡単にアクセスできるようになります。

プラグインにアクセスするための拡張メソッドを提供することは、Data Exchange Frameworkのプロバイダを実装する際に考慮すべきベストプラクティスです。

エンドポイント コンバーターを実装する

コンポーネントを表すSitecoreアイテムを実際のコンポーネントに変換するには、コンバーターが必要です。この例では、コンバーターはエンドポイント項目の設定をエンドポイント設定プラグインに変換します。その後、そのプラグインをエンドポイントに追加できます。

エンドポイントコンバータを実装するには:

  1. Visual Studioで、次のクラスを追加します。

    using Sitecore.DataExchange.Attributes;
    using Sitecore.DataExchange.Converters.Endpoints;
    using Sitecore.DataExchange.Models;
    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(TextFileEndpointTemplateId)]
        public class TextFileEndpointConverter : BaseEndpointConverter
        {
            public const string TextFileEndpointTemplateId = "[ENDPOINT TEMPLATE ID]";
            public const string TemplateFieldColumnSeparator = "ColumnSeparator";
            public const string TemplateFieldColumnHeadersInFirstLine = "ColumnHeadersInFirstLine";
            public const string TemplateFieldPath = "Path";
            public TextFileEndpointConverter(IItemModelRepository repository) : base(repository)
            {
            }
            protected override void AddPlugins(ItemModel source, Endpoint endpoint)
            {
                //
                //create the plugin
                var settings = new TextFileSettings
                {
                    //
                    //populate the plugin using values from the item
                    ColumnHeadersInFirstLine = this.GetBoolValue(source, TemplateFieldColumnHeadersInFirstLine),
                    ColumnSeparator = this.GetStringValue(source, TemplateFieldColumnSeparator),
                    Path = this.GetStringValue(source, TemplateFieldPath)
                };
                //
                //add the plugin to the endpoint
                endpoint.AddPlugin(settings);
            }
        }
    }
    大事な

    ENDPOINT TEMPLATE IDの値は、Text File Endpointという名前のエンドポイントテンプレートのIDと一致するように変更する必要があります。

    手記

    BaseEndpointConverterから継承することで、Sitecoreアイテムのフィールドからの値の読み取りを容易にするさまざまな方法にアクセスできます。

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

  3. Examples.DataExchange.Providers.FileSystem.dllをSitecoreサーバーにデプロイします。

エンドポイントテンプレートに標準値を設定する

エンドポイント テンプレートを使用する前に、テンプレートのフィールドにデフォルト値を指定する必要があります。

エンドポイントテンプレートに値を設定するには:

  1. コンテンツ エディターで、Templates/Data Exchange/Providers/File System/Endpoints/Text Field Endpointに移動します。

  2. 新しいアイテムを作成するには、リボンのBuilder OPTIONSタブでStandard valuesをクリックします。

    Standard values in menu ribbon
  3. 次のフィールド値を設定します。

    価値

    カラムセパレーター

    ,

    1行目の列ヘッダー

    入選

    コンバータタイプ

    Examples.DataExchange.Providers.FileSystem.TextFileEndpointConverter, Examples.DataExchange.Providers.FileSystem

    手記

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

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

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