インポートコンタクトウィザードにカスタムコンタクトのファセットを含めるように設定してください

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

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

List Managerで、CSVファイルから連絡先をインポートすると、インポートしたファイルのフィールドを以下のデフォルトのSitecoreフィールドにマッピングできます:

  • 識別子
  • 識別子の出典
  • メールアドレス
  • 名前
  • 姓
Configure_the_Import_Wizard_to_include_custom_contact_facets-Picture_1-rId9-1362955973.png

インポートしたファイルフィールドをマッピングするために追加のSitecoreフィールドが必要な場合は、インポート 連絡先ウィザードを拡張して以下を含めることができます:

  • あらかじめ定義されたコンタクトファセット – インポートコンタクトウィザードに追加できる利用可能なあらかじめ定義されたコンタクトファセットは以下の通りです:
    • 個人情報
    • メールアドレスリスト
    • アドレスリスト
    • 電話番号リスト
    • 同意情報
    • リスト購読
    • 自動化計画退出
    • AutomationPlanEnrollmentCache
    • アバター
  • 新しいカスタムコンタクトのファセット – カスタムファセットを作成し 、モデル設定を更新してコン タクトのインポート ウィザードに含めることができます。

あらかじめ定義されたファセットをマッピングフィールドとして追加します

List Managerは、あらかじめ定義されたコンタクトマッピングフィールドのリストを提供します。 Import contactsウィザードを拡張するには、Coreデータベースでブランチを使って利用可能なマッピングフィールドのいずれかを追加してください。

あらかじめ定義された写像フィールドを追加するには:

  1. Coreデータベースのコンテンツエディターで、/sitecore/client/Applications/List Manager/Dialogs/ImportWizardDialog/PageSettings/TabControl Parameters/Map/ImportModelフォルダに移動します。

  2. ImportModelフォルダを右クリックし、「挿入」をクリックし、あらかじめ定義されたコンタクトマッピングフィールドのいずれかをクリックします。

    Configure_the_Import_Wizard_to_include_custom_contact_facets-Picture_2-rId11-927383026.png

マッピングフィールドとして新しいファセットを追加

Import contactsウィザードを拡張して、あらかじめ定義されたファセットをSitecoreのマッピングフィールドとして表示するには、Content Editorでその定義されたファセット用の新しいインポートモデルフィールドを作成します。

新しい面をマッピングフィールドとして追加するには:

  1. Coreデータベースのコンテンツエディターで、/sitecore/client/Applications/List Manager/Dialogs/ImportWizardDialog/PageSettings/TabControl Parameters/Map/ImportModelフォルダに移動します。

  2. /sitecore/client/Applications/List Manager/Templates/ImportModelFieldテンプレートに基づいて新しいインポートモデルフィールドアイテムを作成します。そのためには、ImportModelフォルダ内の既存のアイテムを1つ複製します。

  3. 新しいアイテムを変更するには、FieldNameフィールドで、Import contactsウィザードで表示するSitecoreマッピングフィールドの名前を指定します。

  4. DataFieldフィールドでは、Facet Mapperがインポート値をどこに保存するかxConnect facetプロパティを認識するために使用するキーを指定します。例えば、Personal_Suffixと名付け、後でこのキーを使ってPersonal facetのSuffixフィールドを埋めます。

    Configure_the_Import_Wizard_to_include_custom_contact_facets-Picture_6-rId12-1977402909.png

    Requiredフィールドは、Import contactsウィザードのMapタブでフィールドマッピングを指定する必要があるかどうかを指定します。これはUIの検証のみです。マッピングフィールドを必須としてマークしたい場合は、Sitecore.ListManagement.configファイルのListManagement.Import.RequiredFields設定内の必須フィールドリストにもマッピングフィールドを追加する必要があります:

!注インポート中、必要なフィールドが空の場合、インポートファイルの行全体がスキップされます。List Managerのデフォルトの必須フィールドは、識別子、メールアドレス、名前、姓です。

既存のインポートマッパーを拡張する

List Managerはデフォルトのファセットマッパーの範囲を提供しますが、必要に応じてこれらのファセットマッパーを拡張することも可能です。例えば、EmailAddressListのファセットには「Others」と呼ばれる高度なメール辞書が含まれています。

以下の例では、コードサンプルが既存のPreferredEmailMapperクラスを装飾し、個人用および仕事用メールをEmailAddressList.Others辞書に追加できるようにします。

既存のインポートマッパーを拡張するには:

  1. 既存のPreferredEmailFacetMapperクラスを装飾するためにExtendedEmailFacetMapperSampleクラスを作成・実装する:

    public class ExtendedEmailFacetMapperSample : IFacetMapper { private readonly PreferredEmailFacetMapper mapper; // Decorate the existing PreferredEmailMapper public ExtendedEmailFacetMapperSample( PreferredEmailFacetMapper mapper) { this.mapper = mapper; } public MappingResult Map( string facetKey, Facet facet, ContactMappingInfo mappings, string data) { // Call the existing email mapper to map all the basic email fields var result = this.mapper.Map(facetKey, facet, mappings, data); var facetMappedResult = result as FacetMapped; if (facetMappedResult == null) { return result; } var partiallyMappedFacet = facetMappedResult.Facet as EmailAddressList; if (partiallyMappedFacet == null) { return result; } // Set Personal email var personalEmail = mappings.GetValue("Emails_Others_Personal", data); if (!string.IsNullOrWhiteSpace(personalEmail)) { partiallyMappedFacet.Others"Personal" = new EmailAddress(personalEmail, false); } // Set Work email var workEmail = mappings.GetValue("Emails_Others_Work", data); if (!string.IsNullOrWhiteSpace(workEmail)) { partiallyMappedFacet.Others"Work" = new EmailAddress(workEmail, false); } return result; } }

  2. sitecore/import/facetMapperセクションのSitecore.ListManagement.configファイルにファセットマッパーを登録してください:

新しいインポートマッパーを作成する

既存のインポートマッパーを使えない場合は、カスタムインポートマッパーを作成できます。例えばPreferredAddressFacetMapper

新しいインポートマッパーを作成するには:

  1. Sitecore.ListManagement.XConnect.Web.Import.IFacetMapperを実装する新しいPreferredAddressFacetMapperを作成してください:

    public class PreferredAddressFacetMapper : IFacetMapper { public PreferredAddressFacetMapper() : this(CollectionModel.FacetKeys.AddressList) { } public PreferredAddressFacetMapper(string facetName) { Assert.ArgumentNotNull(facetName, nameof(facetName)); this.FacetName = facetName; } public string FacetName { get; } public MappingResult Map( string facetKey, Facet source, ContactMappingInfo mappings, string data) { if (facetKey != this.FacetName) { return new NoMatch(); } var preferredAddress = new Address(); var addressLine1 = mappings.GetValue(nameof(preferredAddress.AddressLine1), data); var addressLine2 = mappings.GetValue(nameof(preferredAddress.AddressLine2), data); var addressLine3 = mappings.GetValue(nameof(preferredAddress.AddressLine3), data); var addressLine4 = mappings.GetValue(nameof(preferredAddress.AddressLine4), data); var city = mappings.GetValue(nameof(preferredAddress.City), data); var country = mappings.GetValue(nameof(preferredAddress.CountryCode), data); var postalCode = mappings.GetValue(nameof(preferredAddress.PostalCode), data); var stateProvince = mappings.GetValue(nameof(preferredAddress.StateOrProvince), data); if (!string.IsNullOrWhiteSpace(addressLine1)) { preferredAddress.AddressLine1 = addressLine1; } if (!string.IsNullOrWhiteSpace(addressLine2)) { preferredAddress.AddressLine2 = addressLine1; } if (!string.IsNullOrWhiteSpace(addressLine3)) { preferredAddress.AddressLine3 = addressLine1; } if (!string.IsNullOrWhiteSpace(addressLine4)) { preferredAddress.AddressLine4 = addressLine1; } if (!string.IsNullOrWhiteSpace(city)) { preferredAddress.City = city; } if (!string.IsNullOrWhiteSpace(country)) { preferredAddress.CountryCode = country; } if (!string.IsNullOrWhiteSpace(postalCode)) { preferredAddress.PostalCode = postalCode; } if (!string.IsNullOrWhiteSpace(stateProvince)) { preferredAddress.StateOrProvince = stateProvince; } var facet = source as AddressList ?? new AddressList(preferredAddress, "Preferred"); return new FacetMapped(facetKey, facet); } }

  2. Sitecore.ListManagement.configファイルのsitecore/import/facetMapperセクションの下に、マッパーを登録します:

  3. Sitecore.ListManagement.configファイルでAddressesファセット名を追加して、マッピングするファセットのリストを拡張します。

!注この例では、コンテンツエディタのDataFieldセクションにあるPreferredAddressFacetMapper項目に、AddressList面のプロパティのいずれかに関連するキーを含める必要があります。例えば、City、AddressLine1、CountryCode、などです。

連絡先リストにカスタムフィールドを表示する

連絡先リストにカスタムファセットを表示するには、連絡先リストにも列を追加する必要があります。

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