Configuración de una lista de exclusión de columnas

Al preparar la carga de datos con el programa de utilidad de carga de datos, puede especificar una lista de columnas de tabla a excluir del proceso de carga. Una lista de exclusión de columnas le brinda la posibilidad de evitar que se sobrescriban columnas si se sabe que las columnas ya están llenas de datos.

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

La configuración de una lista de exclusión de columnas hace que el programa de utilidad de carga de datos evite cargar datos en cada columna de una tabla. De forma predeterminada, al ejecutar el programa de utilidad de carga de datos en modalidad de sustitución, el programa de utilidad presupone que los datos de entrada que se cargan son siempre la copia maestra de los datos. Debido a este comportamiento, cuando se ejecuta el programa de utilidad de carga de datos, el programa de utilidad sustituye a los datos para todas las columnas que se han definido para un objeto de negocio. Si no hay datos incluidos en el archivo de entrada para una columna, el programa de utilidad sustituye el valor de la columna de base de datos existente con el valor predeterminado configurado. Si no hay ningún valor predeterminado, el programa de utilidad borra el valor de columna de base de datos actual y deja el valor como nulo.

Por ejemplo, si está cargando datos de catálogo para actualizar una descripción detallada de entrada de catálogo, y no incluye un valor para la descripción breve en el archivo de entrada. Cuando el programa de utilidad se ejecuta en modalidad de sustitución, la descripción detallada se actualiza y la descripción breve en la base de datos se establece en un valor nulo. Si no desea que la descripción breve cambie, incluya el valor actual para la descripción breve en el archivo de entrada, o configure la columna que se excluirá. Si no configura una lista de exclusión de columnas y ejecuta el programa de utilidad para actualizar datos, asegúrese de que el archivo de entrada incluye datos para todas las columnas.

Puede excluir una columna de base de datos que sea nulo o no nulo con un valor predeterminado. Una columna puede admitir nulos (contiene un valor nulo), o la columna no puede ser un valor nulo y tiene un valor predeterminado. Si se excluye una columna no de nulos, a continuación la inserción de filas nuevas podría fallar.

Considere configurar una lista de exclusión de columnas para incluir columnas que tengan un valor predeterminado que pueda cambiar el comportamiento de un objeto de negocio que puedan establecer los usuarios de negocio. Por ejemplo, si está cargando datos de atributos del diccionario de atributos, es posible que desee excluir la columna 'displayable'. Si no incluye un valor para estas columnas, el programa de utilidad establece el valor de las columnas de modo que sea nulo. Este cambio puede afectar a la visualización del escaparate de entradas de catálogo a las que se ha asignado el atributo. Con este cambio los atributos que se han establecido para que no se visualice para las entradas de catálogo ahora se establecen para que sean visualizables.

DB2
  • Todas las columnas generadas, predeterminadas y personalizadas, se excluyen automáticamente del proceso de carga si las columnas ya están llenas de datos. No es necesario que configure cualquier lista de exclusión de columna para incluir las columnas personalizadas.
Para añadir columnas de exclusión, añada primero los elementos <_config:ColumnExclusionList> y <_config:table> después del elemento <_config:DataLoader> en el archivo de configuración del objeto de negocio. Después de estos códigos de elemento, puede listar las columnas de exclusión.
  • <_config:ColumnExclusionList> identifica que el archivo de configuración ofrece una lista de columnas que se van a excluir del proceso de carga. Este elemento contiene una lista de elementos <_config:table>.
  • El elemento <_config:table> identifica el nombre de tabla en la base de datos que contiene las columnas de exclusión.

Cuando configure una lista de exclusión, puede configurar la lista para que se aplique únicamente al ejecutar el programa de utilidad de carga de datos para actualizar registros. Por ejemplo, puede configurar el programa de utilidad para que excluya columnas que puedan incluir un valor establecido por un usuario de negocio que es distinto al valor del archivo de entrada. Puede configurar esta lista de exclusión condicional con una propiedad forUpdateOnly="true". Al ejecutar el programa de utilidad para insertar registros, este tipo de lista de exclusión se ignora y el programa de utilidad carga datos en todas las columnas. Utilizando esta propiedad forUpdateOnly, puede evitar que sea necesario cambiar las columnas con listas de exclusión cuando cambia entre insertar y actualizar datos.

Procedimiento

  1. Abra el archivo de configuración del objeto de negocio wc-loader-object.xml para su edición, donde object es el objeto sobre el que está cargando datos.
    Un ejemplo de este archivo está en el siguiente directorio:
    • Linuxutilities_root/samples/DataLoad/Catalog
    • HCL Commerce DeveloperWCDE_installdir/samples/DataLoad/Catalog
    directorio.
  2. En el archivo, localice el elemento <_config:DataLoader>.
  3. Añada el elemento <_config:ColumnExclusionList> después del elemento <_config:DataLoader> para identificar que deben excluirse columnas.
    Por ejemplo:
    <_config:DataLoader className="com.ibm.commerce.foundation.dataload.BusinessObjectLoader">
    <_config:ColumnExclusionList></_config:ColumnExclusionList>
  4. Añada un elemento <_config:table name=" " columns=" "/> para el elemento <_config:ColumnExclusionList>. Identifique las columnas de tabla para exclusión.
    Por ejemplo:
    <_config:DataLoader className="com.ibm.commerce.foundation.dataload.BusinessObjectLoader" >
      <_config:ColumnExclusionList>
        <_config:table name="CATENTRY" columns="MFNAME,MFPARTNUMBER, FIELD4" />    
        <_config:table name="CATENTDESC" columns="LONGDESCRIPTION" />
      </_config:ColumnExclusionList>
    
    Nota: Si desea establecer una lista de exclusión de columnas para aplicarla solamente cuando el programa de utilidad de carga de datos está actualizando registro en una tabla de base de datos, incluya el parámetro forUpdateOnly con el valor establecido en true:
        <_config:table name="CATENTDESC" columns="PUBLISHED" forUpdateOnly="true" />
    
    Si configura una lista de exclusión con este parámetro establecido en true, cuando se actualiza un registro de la tabla con un archivo de entrada que incluye cambios para columnas excluidas, el programa de utilidad no actualiza el valor para las columnas excluidas con el valor del archivo de entrada. Si la misma operación de carga incluye datos para crear registros en la tabla, el programa de utilidad ignora la lista de exclusión e inserta los valores de archivo de entrada en todas las columnas para los nuevos registros. Puede utilizar una lista separada por comas para indicar para cada columna si el valor de la propiedad forUpdateOnly es "true" o "false".
    Por ejemplo, la siguiente lista de exclusión establece el valor de propiedad en "true" para las columnas "BUYABLE", "FIELD2", "false" y "FIELD1". Cuando el programa de utilidad se ejecuta para actualizar registros, se excluyen las columnas "BUYABLE", "FIELD2" y "FIELD1". Cuando el programa de utilidad inserta datos para crear registros en la tabla, solamente se excluye la columna "FIELD1".
        <_config:table name="CATENTRY" columns="BUYABLE, FIELD1, FIELD2" forUpdateOnly="true, false, true" />
    
    Si se incluyen varias columnas en el valor para el atributo name, pero no establece un número igual de valores para la propiedad forUpdateOnly, el valor final que se establece para la propiedad forUpdateOnly se aplica a todas las columnas restantes. Por ejemplo, en la siguiente configuración, la columna "FIELD1" se excluye cuando el programa de utilidad actualiza o inserta registros. Las columnas "BUYABLE", "FIELD2", "FIELD3" y "FIELD4" están asociadas con el valor de propiedad "true" y se excluyen únicamente cuando el programa de utilidad está actualizando registros existentes
        <_config:table name="CATENTRY" columns="BUYABLE, FIELD1, FIELD2, FIELD3, FIELD4" forUpdateOnly="true, false, true" />
    
  5. Guarde y cierre el archivo. La lista de exclusión de columnas se ha definido y el programa de utilidad de carga de datos se ha configurado para excluir estas columnas cuando se ejecuta el programa de utilidad en modalidad de sustitución para cargar los datos.