Configuración del lector de datos CSV

Configure el lector de datos de valores separados por comas (CSV) en el archivo de configuración de objeto de negocio para modificar la forma en que se leen los datos de los archivos de origen CSV. Es posible que desee cambiar los valores predeterminados del lector de datos CSV para trabajar mejor con el formato de sus datos de origen existentes.

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

El lector de datos CSV lee y procesa datos de un archivo CSV de entrada un registro cada vez hasta que se alcanza el final de archivo. Cada registro en el archivo CSV debe tener la misma estructura de datos. Los datos leídos del archivo CSV se pueden correlacionar con un objeto de negocio de HCL Commerce mediante un archivo de configuración de objeto de negocio. Utilizando el archivo de configuración, cada columna de datos del archivo CSV de entrada se correlaciona directamente con una propiedad de un objeto de negocio de HCL Commerce.

Un archivo CSV puede contener varios registros de datos y cada registro cubre varias columnas. Cada valor de columna para un registro también se conoce como señal. El archivo CSV debe incluir caracteres delimitadores para separar señales en cada registro y para separar registros. El lector de datos CSV utiliza estos delimitadores de caracteres para identificar cada registro y señal.
  • Las señales se separan mediante un carácter tokenDelimiter. De forma predeterminada, el carácter tokenDelimiter es una coma (,). Cada señal solo puede ir opcionalmente entre caracteres tokenValueDelimiter, con un tokenValueDelimiter al principio y al final de la señal. tokenValueDelimiter predeterminado es el carácter de comillas ("). Si un valor de señal contiene un carácter especial, como el carácter tokenDelimiter o lineDelimiter, la señal debe ir entre caracteres tokenValueDelimiter. Como ejemplo, la serie siguiente incluye comas y va entre tokenValueDelimeter:
    "Men's fashions for business, casual, and formal occasions"  
  • Los registros se separan por un carácter lineDelimiter, que también se puede denominar delimitador de registro. De forma predeterminada el carácter lineDelimiter es el nuevo carácter de línea. Este carácter indica el final de un registro para un objeto y el principio de un nuevo registro de objeto.

    Dado que el carácter predeterminado es un nuevo carácter de línea, el lector de datos CSV lee cada línea en el archivo como un registro de objeto separado. Si incluye datos para una columna o registro en varias líneas del archivo, pueden aparecer errores o surgir problemas con el proceso de carga o con los datos. Si desea que los datos para una columna cubran varias líneas, ponga los datos entre caracteres tokenValueDelimiter configurados. Si desea que los datos para un registro completo cubran varias líneas, debe configurar un carácter lineDelimiter diferente para utilizar en lugar del nuevo carácter de línea para identificar el final de cada registro.

Procedimiento

  1. Abra el archivo de configuración wc-loader-<object>.xml en modalidad de edición.
    Un ejemplo de este archivo está en el siguiente directorio:
    • HCL Commerce DeveloperWCDE_installdir\samples\DataLoad\Catalog
    • Linuxutilities_root/samples/DataLoad/Catalog
  2. Localice el elemento <_config:DataReader>.
  3. Añada los siguientes parámetros opcionales dentro de la etiqueta <_config:DataReader>:
    lineDelimiter
    Especifica el carácter separador de línea o el carácter separador de registro. El valor predeterminado es el carácter de nueva línea. El carácter lineDelimiter no puede aparecer en el contenido de una señal si no está encerrado dentro del carácter tokenValueDelimiter.
    Nota: Si desea que los registros en un archivo CSV cubran varias líneas, puede configurar un carácter lineDelimiter personalizado para identificar el final de un registro. Al configurar un carácter delimitador diferente, los archivos CSV pueden incluir caracteres de línea nueva en registros de objeto, en lugar de que el lector de datos maneje cada carácter de nueva línea como el final de un registro. Por ejemplo, puede configurar que lineDelimiter sea un punto y coma ( ; ) en lugar del carácter de nueva línea. Con este nuevo carácter lineDelimiter configurado, se considera que el archivo CSV siguiente tiene un único registro de objeto en lugar de dos objetos.
    
    Column1, Column2, Column3, Column4, Column5;
    Value1,Val
    ue2,Value3,Value4,Value5;
    El lector de datos CSV lee este registro de objeto como un único registro con el valor Column2 que cubre varias líneas.
    tokenDelimiter
    Especifica el carácter separador de señal. El valor predeterminado es el carácter de coma (,).
    tokenValueDelimiter
    Especifica el carácter separador de serie. tokenValueDelimiter se utiliza para indicar el principio y el final de una señal. El carácter tokenValueDelimiter predeterminado es el signo de comillas dobles ("). Por ejemplo, la señal siguiente, que contiene comas, se puede utilizar para una breve descripción de entrada de catálogo:
    "Men's fashions for business, casual, and formal occasions"
    Notes:
    • Si edita el archivo con un editor de texto sin formato, utilice tokenValueDelimiter cuando la señal contenga caracteres especiales, tales como el carácter tokenDelimiter o el propio carácter tokenValueDelimiter. Para utilizar el carácter tokenValueDelimiter dentro de la señal, debe utilizar dos caracteres tokenValueDelimiter. Por ejemplo, la señal siguiente, que contiene comas y comillas, se puede utilizar para una breve descripción de entrada de catálogo:
      "Men's fashions for ""business"", ""casual"", and ""formal"" occasions."
      La salida tiene un aspecto similar al siguiente:
      Men's fashions for "business", "casual", and "formal" occasions.
      Estos usos de tokenValueDelimeter solo se aplican cuando se utiliza un editor de texto sin formato para editar el archivo.
    • Si desea incluir valores de columna que cubren varias líneas en el archivo de entrada, ponga el valor de columnas entre caracteres tokenValueDelimiter. Al poner el valor entre estos caracteres, puede incluir el carácter de nueva línea en el valor de columna, lo que hace que el lector de datos maneje el carácter de nueva línea como el final del registro de objeto.
    charset
    Especifica el juego de caracteres del archivo CSV. El juego de caracteres predeterminado es UTF-8.
    firstLineIsHeader
    Indica que la primera línea del archivo CSV es información de cabecera de columna. Utilice esta línea de cabecera en lugar de proporcionar las correlaciones de columnas en el elemento <_config: Data> y en el archivo de configuración wc-loader-<object>.xml. El valor predeterminado es false.
    useHeaderAsColumnName
    Indica que la primera línea del archivo CSV se utiliza como información de columna. El valor predeterminado para useHeaderAsColumnName es false. Existen cuatro combinaciones posibles de los parámetros firstLineIsHeader y useHeaderAsColumnName:
    1. firstLineIsHeader = "false" y useHeaderAsColumnName = "false". En este caso, la correlación de columnas en el archivo de configuración wc-loader-<object>.xml es obligatoria.
    2. firstLineIsHeader = "false" y useHeaderAsColumnName = "true". En este caso, el distintivo useHeaderAsColumnName se ignora y la correlación de columnas es obligatoria.
    3. firstLineIsHeader = "true" y useHeaderAsColumnName = "false". En este caso, la configuración de correlación de columnas es opcional. Si la configuración de correlación de columnas se define en el archivo de configuración wc-loader-<object>.xml, utilice la configuración de correlación de columnas. De lo contrario, utilice la cabecera CSV para los nombres de columna.
    4. firstLineIsHeader = "true" y useHeaderAsColumnName = "true". En este caso, la configuración de correlación de columnas se ignora y utilice siempre la cabecera CSV para los nombres de columna.
    Nota: El elemento DataReader puede contener elementos anidados. Para añadir correlaciones de columnas, puede utilizar el siguiente código como ejemplo:
    <_config:DataReader firstLineIsHeader="false" useHeaderAsColumnName="false">
        <_config:Data>
            <_config:column number="1" name="FIRST" />
            <_config:column number="2" name="SECOND" />
        </_config:Data>
    </_config:DataReader>
  4. Guarde y cierre el archivo.

Ejemplo

El fragmento de código siguiente demuestra cómo utilizar los parámetros. Este fragmento de código utiliza todos los valores predeterminados:
<_config:DataReader lineDelimiter="\n" tokenDelimiter="," tokenValueDelimiter='"' 
charset="UTF-8" firstLineIsHeader="false" useHeaderAsColumnName="false" />