Cargar miembros de grupos de miembros por dirección de correo electrónico con el programa de utilidad de carga de datos

Puede cargar miembros en grupos de miembros resolviendo el ID exclusivo para un miembro con solamente la dirección de correo electrónico del miembro. Al resolver el ID exclusivo con la dirección de correo electrónico, no será necesario incluir el ID de inicio de sesión del miembro o el nombre distinguido en el archivo de entrada.

Por qué y cuándo se efectúa esta tarea

El mediador de objetos de negocio MemberGroupMemberMediator se ha mejorado para que se resuelva el ID exclusivo de miembro basándose en la dirección de correo electrónico del miembro. El programa de utilidad de carga de datos resuelve el ID exclusivo para miembros existentes en la base de datos comparando la dirección de correo electrónico en el archivo de entrada con las direcciones de correo electrónico para los miembros existentes. Si una dirección de correo electrónico no existe en la base de datos para un ID exclusivo de miembro, el programa de utilidad crea un nuevo miembro en la base de datos. El programa de utilidad añadirá los miembros al grupo de miembros existente o creará un nuevo grupo de miembros de modo que incluya los miembros.
Nota: Cuando el programa de utilidad de carga de datos es resolver el ID de miembro, el programa de utilidad compara las direcciones de correo electrónico del archivo de entrada solamente con las direcciones de los compradores registrados para el ID de tienda configurado.

Como procedimiento recomendado, cargue los datos de miembros en el entorno de producción para asegurarse de que los datos de miembros de la base de datos están actualizados. Si carga los datos en un entorno de transición, asegúrese de propagar los cambios en el entorno de producción.

Procedimiento

  1. Cree el archivo de entrada para cargar los datos de miembros de grupos de miembros.
    1. Abra una interfaz de línea de mandatos en el directorio de programas de utilidad.
      • HCL Commerce DeveloperEn una línea de mandatos, vaya al directorio WCDE_installdir\samples\DataLoad\Member\MemberGroup.
      • LinuxAbra una línea de mandatos en el contenedor Utility Docker. Vaya al directorio utilities_root/samples/DataLoad/Member/MemberGroup. Para obtener información sobre cómo entrar y salir de contenedores, consulte Ejecución de programas de utilidad desde Utility server Docker container.
    2. Cree una copia de seguridad del archivo de entrada MemberGroupMember.csv o MemberGroupMember.xml.
    3. Abra el archivo de entrada para editarlo.
    4. Sustituya la cabecera de columna logonId con email.
      Por ejemplo,
      MemberGroupMember,,,,
      memberGroupName,email,excluded,memberType,delete
      
    5. Sustituya el grupo de miembros y los datos de miembros de ejemplo por los datos que desea cargar.
    6. Guarde y cierre el archivo de entrada.
  2. Cree los archivos de configuración del programa de utilidad de carga de datos que necesita para cargar los datos de miembros de grupos de miembros.
    1. Vaya al siguiente directorio que contiene los archivos de configuración de ejemplo para cargar los datos de miembros de grupos de miembros:
      • HCL Commerce DeveloperWCDE_installdir\samples\DataLoad\Member
      • Linuxutilities_root/samples/DataLoad/Member
    2. Cree una copia de seguridad del archivo de configuración de entorno wc-dataload-env.xml.
    3. En el directorio MemberGroup cree una copia de seguridad de los siguientes archivos de configuración:
      wc-loader-member-group-member.xml
      El archivo de configuración de objeto de negocio.
      wc-dataload.xml
      El archivo de configuración de orden de carga de datos.
  3. Opcional: Abra el archivo de configuración de objeto de negocio (wc-loader-member-group-member.xml) para su edición y configure los valores para cargar los datos de miembro.
    1. En el elemento <_config:BusinessObjectBuilder>, asegúrese de que el valor del atributo packageName es com.ibm.commerce.member.facade.datatypes.MemberPackage y que el valor del atributo dataObjectType es MemberGroupType.
    2. En el elemento <_config:BusinessObjectMediator>, asegúrese de que el valor del atributo className es com.ibm.commerce.member.dataload.mediator.MemberGroupMemberMediator y que el valor del atributo componentId es com.ibm.commerce.member.
    3. Configure los parámetros del manejador de valores MemberGroupMemberValueHandler para resolver el ID exclusivo para un usuario con la dirección de correo electrónico de usuario.
      De forma predeterminada, el archivo de configuración de ejemplo se configura para resolver el ID de miembro mediante el ID de inicio de sesión para el usuario.
      1. Localice los siguientes elementos <_config:ValueHandler> para incluir o excluir un usuario de la adición de un grupo de miembros. Este elemento de configuración controla cómo el programa de utilidad de carga de datos controla el valor para el ID exclusivo de un miembro (persona).
          <_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. Elimine el parámetro de ID de inicio de sesión.
        <_config:Parameter name="logonId" value "logonId" />
      3. Añada el siguiente parámetro de configuración para resolver el ID exclusivo basado en la dirección de correo electrónico. Añada el parámetro dentro de la configuración del manejador de valores en el elemento <_config:mapping> para incluir o excluir un usuario de un grupo de miembros.
        <_config:Parameter name="email" value "email" />
        Donde
        email
        Indica que el programa de utilidad de carga de datos va a recuperar la dirección de correo electrónico para un usuario del archivo de entrada para utilizarla para resolver el ID exclusivo. El valor para el parámetro, que es también email, identifica la columna del archivo de entrada que incluye los datos que el programa de utilidad pasa en el SQL para resolver el ID exclusivo. El parámetro está soportado para utilizarlo solamente con el manejador de valores MemberGroupMemberValueHandler.
      4. Opcional. Añada uno o ambos de los siguientes parámetros de configuración a las configuraciones de manejador de valores para controlar el modo en que el programa de utilidad procesa las direcciones de correo electrónico.
        emailCaseSensitive
        Indica si la dirección de correo electrónico es sensible a las mayúsculas y minúsculas. El parámetro está soportado para utilizarlo solamente con el manejador de valores MemberGroupMemberValueHandler. Puede establecer los siguientes valores para esta propiedad:
        true
        El programa de utilidad de carga de datos no convierte la dirección de correo electrónico en caracteres en minúscula. Si establece este valor para el parámetro, el SQL para resolver el ID exclusivo puede terminar más rápido pero no podrá resolver algunos valores de ID correctamente para miembros de grupos de miembros existentes. Establezca el valor para la propiedad en true cuando sepa que el uso de mayúsculas y minúsculas para las direcciones de correo electrónico en el archivo de entrada y en la base de datos es el mismo.
        false
        El programa de utilidad de carga de datos utiliza el entorno local inglés, en_US, para convertir la dirección de correo electrónico en caracteres en minúscula. Una vez que el programa de utilidad ha convertido la dirección de correo electrónico, el programa de utilidad pasa la dirección de correo electrónico al SQL para que se utilice para resolver el ID exclusivo. El valor predeterminado.

        Es posible que el programa de utilidad de carga de datos no compare satisfactoriamente direcciones de correo electrónico entre el archivo de entrada y la base se datos cuando las direcciones de correo electrónico incluyan caracteres no ASCII que tienen distintas mayúsculas y minúsculas.

        checkEmailFlag
        Indica si el programa de utilidad de carga de datos compara las direcciones de correo electrónico en el archivo de entrada con únicamente la dirección de correo electrónico primaria para los miembros de grupos de miembros. El parámetro está soportado para utilizarlo solamente con el manejador de valores MemberGroupMemberValueHandler. Puede establecer los siguientes valores para esta propiedad:
        0
        El programa de utilidad de carga de datos compara las direcciones de correo electrónico del archivo de entrada con solamente la dirección de correo electrónico primaria de un usuario para resolver el ID exclusivo. El valor predeterminado.
        -1
        El programa de utilidad compara la dirección de correo electrónico en el archivo de entrada con todas las direcciones de correo electrónico de la libreta de direcciones para un miembro del grupo de miembros. Si un miembro tiene una dirección de correo electrónico que coincida con la dirección en el archivo de entrada, se devuelve el ID para el miembro para que los datos del miembro se puedan actualizar o eliminar. Si está añadiendo o actualizando miembros para un grupo de miembros y una dirección de correo electrónico de archivo de entrada no coincide con ninguna dirección de la base de datos, la dirección de correo electrónico se maneja como un nuevo miembro del grupo de miembros. Se genera un nuevo ID exclusivo para la dirección de correo electrónico y el programa de utilidad de carga de datos añade el nuevo miembro al grupo de miembros.
      Por ejemplo, el siguiente fragmento de código incluye el parámetro de configuración email para resolver el ID exclusivo basándose en la dirección de correo electrónico para un usuario. El siguiente código también incluye los parámetros configurables checkEmailFlag y 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. Añada todas las propiedades configurables que desea utilizar para controlar cómo carga el programa de utilidad de carga de datos los datos de miembros de grupos de miembros.
      Por ejemplo, puede incluir una o más de las siguientes propiedades, que están pensadas para cargar datos para añadir o sustituir miembros en un grupo de miembros.
      replaceAllExistingMembers
      Indica si el programa de utilidad de carga de datos sustituye los usuarios existentes en el segmento de clientes por los usuarios del archivo de entrada. Esta propiedad solo está soportada para utilizarla con el mediador de objetos de negocio MemberGroupMemberMediator. Puede establecer los siguientes valores para esta propiedad:
      true
      El programa de utilidad de carga de datos suprime todos los usuarios existentes del segmento de clientes antes de que el programa de utilidad cargue nuevos usuarios.
      false
      El programa de utilidad de carga de datos no sustituye usuarios existentes. El valor predeterminado.
      ignoreNonExistUsers
      Indica cómo el programa de utilidad de carga de datos maneja la carga de direcciones de correo electrónico cuando no se puede resolver o crear un ID de usuario. Utilice esta propiedad con el mediador de objetos de negocio MemberGroupMemberMediator. Puede establecer los siguientes valores para esta propiedad:
      true
      Cuando la dirección de correo electrónico no se puede resolver en un ID de usuario, el programa de utilidad de carga de datos ignora el error y no carga la dirección de correo electrónico. El programa de utilidad continuará con la operación de carga. Cuando la carga finaliza, el programa de utilidad incluye el número de direcciones de correo electrónico que no se han podido resolver.
      Nota: Si activa el rastreo -Dcom.ibm.commerce.member.dataload.level=FINE, todas las direcciones de correo electrónico no resueltas se registran dentro del archivo wc-dataload.log.
      false
      Cuando la dirección de correo electrónico no se puede resolver en un ID de usuario, el programa de utilidad de carga de datos genera una excepción. El valor predeterminado.
      Por ejemplo, el siguiente fragmento de código configura la habilitación de las propiedades anteriores en el archivo de configuración de objeto de negocio:
      <_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. Guarde y cierre el archivo de configuración.
  4. Abra el archivo de configuración de entorno de carga de datos (wc-dataload-env.xml) para editarlo y actualice los valores configurados de modo que coincidan con los valores del entorno.
  5. Abra el archivo de configuración de orden de carga de datos (wc-dataload.xml) para editarlo y configure los valores para cargar los datos de miembros.
    1. En el elemento <_config:DataLoadEnvironment>, asegúrese de que el valor del atributo configFile identifica el archivo de configuración de entorno. Si el archivo no está en el mismo directorio que el archivo de configuración de orden de carga de datos, incluya la vía de acceso relativa al archivo.
    2. En la lista de elementos <_config:LoadItem>, asegúrese de que el valor para el atributo name para uno de los elementos es MemberGroupMember. Asegúrese de que el valor para el atributo businessObjectConfigFile para este elemento de carga identifica el archivo de configuración de objeto de negocio wc-loader-member-group-member.xml. En el elemento <_config:DataSourceLocation> asegúrese de que el valor del atributo location identifica el archivo XML de entrada que está cargando. Si los archivos no están en el mismo directorio que el archivo de configuración de orden de carga de datos, incluya la vía de acceso relativa al archivo. Si no carga ningún otro miembro de datos, comente las restantes configuraciones de elementos de carga.
    3. Guarde y cierre el archivo de configuración.
  6. Ejecute el programa de utilidad de carga de datos.
  7. Verifique que los datos de miembros de grupos de datos se han cargado revisando el informe de resumen de carga de datos.
    Para obtener más información sobre la ubicación y el contenido de este informe de resumen, consulte Verificar que el programa de utilidad de carga de datos ha cargado satisfactoriamente los datos de miembros.

    También puede verificar que los datos de miembros se hayan cargado comparando el contenido del archivo de entrada con los datos de miembros en la base de datos de HCL Commerce. Asegúrese de que los datos del archivo de entrada existen en las tablas de base de datos adecuadas.