Chargement de membres de groupe de membres en fonction de l'adresse électronique avec l'utilitaire de chargement de données

Vous pouvez charger des membres dans des groupes de membres en résolvant l'ID unique d'un membre uniquement avec l'adresse électronique du membre. Si vous résolvez l'ID unique avec l'adresse électronique, il n'est pas nécessaire d'inclure l'ID de connexion ou le nom distinctif du membre dans votre fichier d'entrée.

Pourquoi et quand exécuter cette tâche

Le médiateur d'objet métier MemberGroupMemberMediator a été amélioré pour que vous puissiez résoudre l'ID unique d'un membre en fonction de son adresse électronique. L'utilitaire de chargement de données résout l'ID unique pour les membres existants dans la base de données en comparant l'adresse électronique figurant dans le fichier d'entrée aux adresses électroniques des membres existants. Si une adresse électronique n'existe pas dans la base de données pour un ID unique de membre, l'utilitaire crée un nouveau membre dans la base de données. Il ajoute ensuite les membres au groupe de membres existant ou crée un groupe de membres afin d'inclure les membres.
Remarque : lorsque l'utilitaire de chargement de données résout l'ID de membre, il compare les adresses électroniques qui figurent dans le fichier d'entrée aux adresses des clients enregistrés uniquement pour l'ID de magasin configuré.

Il est recommandé de charger les données de membre dans votre environnement de production pour garantir que les données de membre dans la base de données sont à jour. Si vous chargez les données dans un environnement de transfert, assurez-vous de propager vos modifications dans l'environnement de production.

Procédure

  1. Créez le fichier d'entrée pour le chargement de vos données de membre de groupe de membres.
    1. Ouvrez une interface de ligne de commande dans le répertoire des utilitaires.
      • HCL Commerce DeveloperDans une ligne de commande, accédez au répertoire WCDE_installdir\samples\DataLoad\Member\MemberGroup.
      • LinuxOuvrez une ligne de commande dans le conteneur Utility Docker. Accédez au répertoire utilities_root/samples/DataLoad/Member/MemberGroup. Pour plus d'informations sur l'entrée et la sortie des conteneurs, voir Exécution des utilitaires à partir de Utility server Docker container.
    2. Créez une sauvegarde du fichier MemberGroupMember.csv ou du fichier MemberGroupMember.xml d'entrée.
    3. Ouvrez le fichier d'entrée pour l'éditer.
    4. Remplacez l'en-tête de colonne logonId par email.
      Par exemple,
      MemberGroupMember,,,,
      memberGroupName,email,excluded,memberType,delete
      
    5. Remplacez les exemples de groupe de membres et de données de membre par les données à charger.
    6. Sauvegardez et fermez votre fichier d'entrée.
  2. Créez les fichiers de configuration de l'utilitaire de chargement de données dont vous avez besoin pour charger vos données de membre de groupe de membres.
    1. Accédez au répertoire suivant, qui contient les exemples de fichier de configuration pour le chargement de données de membre de groupe de membres :
      • HCL Commerce DeveloperWCDE_installdir\samples\DataLoad\Member
      • Linuxutilities_root/samples/DataLoad/Member
    2. Créez une sauvegarde du fichier de configuration de l'environnement wc-dataload-env.xml.
    3. Dans le répertoire MemberGroup, créez une sauvegarde des fichiers de configuration suivants :
      wc-loader-member-group-member.xml
      Fichier de configuration d'objet métier.
      wc-dataload.xml
      Fichier de configuration de l'ordre de chargement des données.
  3. Facultatif : Ouvrez le fichier de configuration d'objet métier (wc-loader-member-group-member.xml) pour l'éditer et configurez les paramètres de chargement de vos données de membre.
    1. Dans l'élément <_config:BusinessObjectBuilder>, assurez-vous que la valeur de l'attribut packageName est com.ibm.commerce.member.facade.datatypes.MemberPackage et que la valeur de l'attribut dataObjectType est MemberGroupType.
    2. Dans l'élément <_config:BusinessObjectMediator>, assurez-vous que la valeur de l'attribut className est com.ibm.commerce.member.dataload.mediator.MemberGroupMemberMediator et que la valeur de l'attribut componentId est com.ibm.commerce.member.
    3. Configurez les paramètres du gestionnaire de valeurs MemberGroupMemberValueHandler afin de résoudre l'ID unique d'un utilisateur avec son adresse électronique.
      Par défaut, l'exemple de fichier de configuration est configuré pour résoudre l'ID de membre avec l'ID de connexion de l'utilisateur.
      1. Localisez les éléments <_config:ValueHandler> pour inclure un utilisateur dans un groupe de membres ou l'exclure d'un groupe de membres. Cet élément de configuration contrôle la façon dont l'utilitaire de chargement de données résout la valeur pour l'ID unique d'un membre (personne).
          <_config:mapping xpath="IncludedPerson[0]/UniqueID" value="uniqueId" >
            <_config:ValueHandler className="com.ibm.commerce.member.dataload.config.MemberGroupMemberValueHandler">
              ...
              <_config:Parameter name="logonId" value "logonId" />
            </_config:ValueHandler>
          </_config:mapping>
          ...
          <_config:mapping xpath="ExcludedPerson[0]/UniqueID" value="uniqueId" >
            <_config:ValueHandler className="com.ibm.commerce.member.dataload.config.MemberGroupMemberValueHandler">
              ...
              <_config:Parameter name="logonId" value "logonId" />
            </_config:ValueHandler>
          </_config:mapping>
        
      2. Retirez le paramètre d'ID de connexion.
        <_config:Parameter name="logonId" value "logonId" />
      3. Ajoutez le paramètre de configuration ci-après pour résoudre l'ID unique en fonction de l'adresse électronique. Ajoutez le paramètre dans la configuration du gestionnaire de valeurs dans l'élément <_config:mapping> pour inclure un utilisateur dans un groupe de membres ou l'exclure d'un groupe de membres.
        <_config:Parameter name="email" value "email" />
        e-mail
        Indique que l'utilitaire de chargement de données doit extraire l'adresse électronique d'un utilisateur depuis le fichier d'entrée afin de l'utiliser pour résoudre l'ID unique. La valeur du paramètre, qui est également email, identifie la colonne du fichier d'entrée qui contient les données que l'utilitaire transmet à l'instruction SQL afin de résoudre l'ID unique. Le paramètre ne peut être utilisé qu'avec le gestionnaire de valeurs MemberGroupMemberValueHandler.
      4. Facultatif. Ajoutez l'un des paramètres de configuration ci-après, ou les deux, aux configurations de gestionnaire de valeurs afin de contrôler la façon dont l'utilitaire traite les adresses électroniques.
        emailCaseSensitive
        Indique si l'adresse électronique est sensible à la casse. Le paramètre ne peut être utilisé qu'avec le gestionnaire de valeurs MemberGroupMemberValueHandler. Vous pouvez définir les valeurs suivantes pour cette propriété :
        true
        L'utilitaire de chargement de données ne convertit pas l'adresse électronique en minuscules. Si vous définissez cette valeur pour le paramètre, l'instruction SQL qui résout l'ID unique peut s'exécuter plus rapidement, mais ne parvient pas à résoudre certaines valeurs d'ID correctement pour des membres de groupe de membres existants. Définissez la valeur true pour la propriété si vous savez que la casse des adresses électroniques dans votre fichier d'entrée et dans la base de données est identique.
        false
        L'utilitaire de chargement de données se sert de l'environnement local anglais (en_US) pour convertir l'adresse électronique en minuscules. Une fois que l'utilitaire a converti l'adresse électronique, il la transmet à l'instruction SQL afin de résoudre l'ID unique. Valeur par défaut.

        Il se peut que l'utilitaire de chargement de données ne parvienne pas à comparer les adresses électroniques du fichier d'entrée et de la base de données lorsqu'elles comportent des caractères non ASCII dont la casse est différente.

        checkEmailFlag
        Indique si l'utilitaire de chargement de données compare les adresses électroniques qui figurent dans votre fichier d'entrée à l'adresse électronique principale seulement pour les membres de groupe de membres. Le paramètre ne peut être utilisé qu'avec le gestionnaire de valeurs MemberGroupMemberValueHandler. Vous pouvez définir les valeurs suivantes pour cette propriété :
        0
        L'utilitaire de chargement de données ne compare les adresses électroniques figurant dans le fichier d'entrée qu'à l'adresse électronique principale d'un utilisateur afin de résoudre l'ID unique. Valeur par défaut.
        -1
        L'utilitaire compare l'adresse électronique figurant dans le fichier d'entrée à toutes les adresses électroniques figurant dans le carnet d'adresses pour un membre de groupe de membres. Si un membre présente une adresse électronique qui correspond à l'adresse figurant dans le fichier d'entrée, l'ID du membre est renvoyé pour que les données de membre puissent être mises à jour ou supprimées. Si vous ajoutez ou mettez à jour des membres dans un groupe de membres et qu'une adresse électronique figurant dans le fichier d'entrée ne correspond à aucune adresse dans la base de données, l'adresse électronique est traitée comme s'il s'agissait d'un nouveau membre de groupe de membres. Un nouvel ID unique est généré pour l'adresse électronique et l'utilitaire de chargement de données ajoute le nouveau membre au groupe de membres.
      Par exemple, le fragment de code ci-dessous inclut le paramètre de configuration email pour résoudre l'ID unique en fonction de l'adresse électronique d'un utilisateur. Le code suivant inclut également les paramètres configurables checkEmailFlag et emailCaseSensitive :
      <_config:DataMapping>
        ...
        <_config:mapping xpath="IncludedPerson[0]/UniqueID" value="uniqueId" >
          <_config:ValueHandler className="com.ibm.commerce.member.dataload.config.MemberGroupMemberValueHandler">
            ...
            <_config:Parameter name="email" value="email" />
            <_config:Parameter name="checkEmailFlag" value="0" valueFrom="Fixed" />
            <_config:Parameter name="emailCaseSensitive" value="false" valueFrom="Fixed" />
          </_config:ValueHandler>
        </_config:mapping>
        <_config:mapping xpath="ExcludedPerson[0]/UniqueID" value="uniqueId" >
          <_config:ValueHandler className="com.ibm.commerce.member.dataload.config.MemberGroupMemberValueHandler">
            ...
            <_config:Parameter name="email" value="email" />
            <_config:Parameter name="checkEmailFlag" value="-1" valueFrom="Fixed" />
          </_config:ValueHandler>
        </_config:mapping>
        ...
      </_config:DataMapping>
    4. Ajoutez les propriétés configurables que vous voulez utiliser pour contrôler la façon dont l'utilitaire de chargement de données charge vos données de membre de groupe de membres.
      Par exemple, vous pouvez inclure une ou plusieurs des propriétés ci-après, qui permettent de charger des données afin d'ajouter ou de remplacer des membres dans un groupe de membres.
      replaceAllExistingMembers
      Indique si l'utilitaire de chargement de données remplace les utilisateurs existants dans le segment de clientèle par les utilisateurs qui figurent dans le fichier d'entrée. Cette propriété ne peut être utilisée qu'avec le médiateur d'objet métier MemberGroupMemberMediator. Vous pouvez définir les valeurs suivantes pour cette propriété :
      true
      L'utilitaire de chargement de données supprime tous les utilisateurs existants du segment de clientèle avant de charger de nouveaux utilisateurs.
      false
      L'utilitaire de chargement de données ne remplace pas les utilisateurs existants. Valeur par défaut.
      ignoreNonExistUsers
      Indique comment l'utilitaire de chargement de données traite le chargement des adresses électroniques lorsqu'un ID utilisateur ne peut pas être résolu ou créé. Utilisez cette propriété avec le médiateur d'objet métier MemberGroupMemberMediator. Vous pouvez définir les valeurs suivantes pour cette propriété :
      true
      Lorsque l'adresse électronique ne peut pas être résolue en ID utilisateur, l'utilitaire de chargement de données ignore l'erreur et ne charge pas l'adresse électronique. Il continue l'opération de chargement. Une fois le chargement terminé, il inclut le nombre d'adresses électroniques qui n'ont pas pu être résolues.
      Remarque : Si vous activez la trace -Dcom.ibm.commerce.member.dataload.level=FINE, toutes les adresses électroniques non résolues sont consignées dans le fichier wc-dataload.log.
      false
      Lorsque l'adresse électronique ne peut pas être résolue en ID utilisateur, l'utilitaire de chargement de données émet une exception. Valeur par défaut.
      Par exemple, le fragment de code suivant active les propriétés précédentes dans le fichier de configuration d'objet métier :
      <_config:BusinessObjectMediator 
       className="com.ibm.commerce.member.dataload.mediator.MemberGroupMemberMediator" 
       componentId="com.ibm.commerce.member" >
        <_config:property name="replaceAllExistingMembers" value="true" />
        <_config:property name="ignoreNonExistUsers" value="true" />
      </_config:BusinessObjectMediator>
    5. Sauvegardez et fermez le fichier de configuration.
  4. Ouvrez le fichier de configuration de l'environnement de chargement de données (wc-dataload-env.xml) pour l'éditer et mettez à jour les paramètres configurés pour qu'ils correspondent aux paramètres de votre environnement.
  5. Ouvrez le fichier de configuration de l'ordre de chargement des données (wc-dataload.xml) pour l'éditer et configurez les paramètres de chargement de vos données de membre.
    1. Dans l'élément <_config:DataLoadEnvironment>, assurez-vous que la valeur de l'attribut configFile identifie le fichier de configuration de l'environnement. Si le fichier ne se trouve pas dans le même répertoire que le fichier de configuration de l'ordre de chargement des données, incluez le chemin d'accès relatif au fichier.
    2. Dans la liste des éléments <_config:LoadItem>, assurez-vous que la valeur de l'attribut name pour l'un des éléments est MemberGroupMember. Assurez-vous que la valeur de l'attribut businessObjectConfigFile pour cet élément de chargement identifie le fichier de configuration d'objet métier wc-loader-member-group-member.xml. Dans l'élément <_config:DataSourceLocation>, assurez-vous que la valeur de l'attribut location identifie le fichier d'entrée XML que vous chargez. Si les fichiers ne se trouvent pas dans le même répertoire que le fichier de configuration de l'ordre de chargement des données, incluez le chemin d'accès relatif au fichier. Si vous ne chargez pas d'autres données de membre, mettez en commentaire le reste des configurations d'élément de chargement.
    3. Sauvegardez et fermez le fichier de configuration.
  6. Exécutez l'utilitaire de chargement de données.
  7. Vérifiez que les données de membre de groupe de membres ont été chargées en examinant le rapport récapitulatif du chargement des données.
    Pour plus d'informations sur l'emplacement et le contenu de ce rapport récapitulatif, voir Vérification du résultat du chargement des données de membre.

    Vous pouvez aussi vérifier que les données de membre ont été chargées en comparant le contenu de votre fichier d'entrée aux données de membre qui figurent dans votre base de données HCL Commerce. Assurez-vous que les données qui se trouvent dans votre fichier d'entrée existent dans les tables de base de données appropriées.