Ejemplo: Insertar y sustituir regla de precio

Utilice el programa de utilidad de carga de datos para cargar datos de regla de precio en la tabla PRICERULE. El programa de utilidad de carga de datos proporciona dos modalidades para cargar regla de precio: insertar y sustituir. Utilice las modalidades de inserción para una nueva regla de precio. Utilice la modalidad de sustitución para actualizar una regla de precio existente.

No utilice la modalidad de inserción si existe una regla de precio con el mismo nombre de regla de precio, o un ID exclusivo, en la base de datos. En la modalidad de inserción, si existe una regla de precio con el mismo nombre de regla de precio o un ID exclusivo en la base de datos, el registro no se inserta. En la modalidad de sustitución, si el nombre de regla de precio o el ID exclusivo del archivo de carga no existe en la base de datos, la regla de precio se inserta.

Este ejemplo utiliza un archivo CSV para mostrar cómo insertar, sustituir o eliminar los datos. También puede crear y utilizar un archivo con formato XML para insertar, sustituir o eliminar los datos. Si decide crear y utilizar un archivo con formato XML, asegúrese de que los elementos XML utilizan los mismos nombres que los nombres de columna CSV.

Requisitos previos

Antes de ejecutar este ejemplo, asegúrese de que se cumplen los siguientes requisitos previos:

  • Asegúrese de que la tienda existe.

Archivo CSV con datos de regla de precio de ejemplo

En este ejemplo, el origen de datos es un archivo CSV denominado PriceRule.csv. El archivo contiene datos de regla de precio de datos. Cada columna está delimitada por una coma.
Archivo CSV con formato con cabeceras de columna
Nombre: Descripción: Estado Dependencia Formato
PriceRule001 Esta regla de precio es solo para UT 1 TRUE 1
PriceRule002 Esta regla de precio es solo para UT 0 FALSE 0
firstLineIsHeader
true
Indica que la primera línea del archivo CSV se trata como datos de nombre de columna y no se inserta en la base de datos.
false
Indica que la primera línea del archivo CSV son datos que se leerán e insertarán en la base de datos.

Definiciones de columnas CSV y de elementos XML

El orden de las columnas se define en el archivo de configuración de carga de datos de regla de precio. Consulte el atributo number en el elemento <_config:Data>.

Nombre:
(Necesario, Serie) El nombre de la regla de precio, la combinación de nombre y storeIdentifier en el contexto de negocio debe ser exclusivo.
Descripción:
(Serie) La descripción de la regla de precio.
Estado
(Necesario, Entero) El estado actual de la regla de precio. Los valores válidos son: 0 = Borrador, 1 = Preparado, 2 = Suspendido, 3 = Cerrado.
Dependency
(Necesario, Booleano) El distintivo booleano para indicar si la regla de precio es o no dependiente.
Format
(Necesario, Entero) El tipo de regla de precio. Los valores válidos son: 0 = interno, 1 = externo. El valor predeterminado es 0.

Otros campos opcionales no incluidos en este ejemplo son:

UniqueID
(Serie) El número de referencia de la regla de precio. Si se proporciona, PRICERULE.PRICERULE_ID se rellena con el valor proporcionado. O, el PRICERULE.PRICERULE_ID es un número exclusivo generado.
CreatedTime
(Indicación de fecha y hora) La hora de creación de la regla de precio.
LastUpdateTime
(Indicación de fecha y hora) La última hora de actualización de la regla de precio.
eliminar
(Serie) Indica si debe eliminarse el registro. Este campo es efectivo cuando el valor de dataLoadMode es "replace". Si el valor de este campo es deleteValue, se suprime el registro correspondiente. El deleteValue predeterminado es 1. El deleteValue puede configurarse bajo el elemento <DataMapping> en BusinessObjectConfigFile.
Field 1
(Serie) Extensión que se llena para el valor Serie; la longitud máxima es 254.
Campo 2
(Serie) Extensión que se llena para el valor Serie; la longitud máxima es 254.
Campo 3
(Serie) Extensión que se llena para el valor Serie; la longitud máxima es 254.

Datos de contexto de negocio

El siguiente fragmento de código del archivo de configuración wc-dataload-env.xml proporciona los datos de contexto de negocio necesarios para cargar los datos de regla de precios:
<_config:BusinessContext 
   storeIdentifier="AuroraESite" 
   catalogIdentifier="Extended Sites Catalog Asset Store" 
   languageId="-1" 
   currency="USD"> 
</_config:BusinessContext>
storeIdentifier
Serie: El identificador de la tienda a la que pertenece este artículo, como por ejemplo AuroraESite. Se utiliza si el archivo CSV no proporciona esta información. El valor de StoreIdentifier se utiliza para recuperar los valores de storeID.
catalogIdentifier
Serie: El identificador de catálogo. Este parámetro se utiliza cuando no se proporciona el identificador de catálogo en el archivo CSV. Si se proporciona catalogIdentifier en el archivo CSV, este se utiliza.

Correlación de datos

El siguiente fragmento de código del archivo de configuración de ejemplo muestra cómo correlacionar cada columna de datos del archivo CSV de origen con un valor.

<_config:DataReader
  className="com.ibm.commerce.foundation.dataload.datareader.CSVReader"firstLineIsHeader="true"> 
  <_config:Data>
    <_config:column number="1" name="UniqueID" />
    <_config:column number="2" name="Name" />
    <_config:column number="3" name="Description" />
    <_config:column number="4" name="State" />
    <_config:column number="5" name="Dependent" />
    <_config:column number="6" name="Format" />
    <_config:column number="7" name="Version" />
    <_config:column number="8" name="Field1" />
    <_config:column number="9" name="Field2" />
    <_config:column number="10" name="Field3" />
    <_config:column number="11" name="CreatedTime"/>
    <_config:column number="12" name="LastUpdateTime" />
    <_config:column number="13" name="Delete" />
  </_config:Data>
</_config:DataReader>

El siguiente fragmento de código del archivo de configuración de ejemplo muestra cómo correlacionar cada columna de datos del archivo CSV con una vía de acceso de esquema lógico de objeto de negocio. El atributo 'value' representa el nombre de la columna del archivo CSV, que se define en el fragmento de código de configuración anterior. Cada columna del archivo CSV debe tener una correlación con la vía de acceso de esquema lógico. Si los campos opcionales están presentes en el archivo CSV, debe añadirse una correlación para los mismos.

<_config:DataMapping>
  <_config:mapping xpath="PriceRuleIdentifier/UniqueID" value="UniqueID" />
  <_config:mapping xpath="PriceRuleIdentifier/ExternalIdentifier/Name" value="Name" />
  <_config:mapping xpath="Description" value="Description" />
  <_config:mapping xpath="State" value="State" />
  <_config:mapping xpath="Dependent" value="Dependent" />
  <_config:mapping xpath="Format" value="Format" />
  <_config:mapping xpath="Version" value="Version" />
  <_config:mapping xpath="CreatedTime" value="CreatedTime"/>
  <_config:mapping xpath="LastUpdateTime" value="LastUpdateTime"/>
  <_config:mapping xpath="UserData/UserDataField[0]/FIELD1" value="Field1" />
  <_config:mapping xpath="UserData/UserDataField[0]/FIELD2" value="Field2" />
  <_config:mapping xpath="UserData/UserDataField[0]/FIELD3" value="Field3" />
  <_config:mapping xpath="" value="Delete" deleteValue="1" />
</_config:DataMapping>

Mediador de objetos de negocio

El nombre de la clase de mediador es com.ibm.commerce.price.dataload.mediator.PriceRuleMediator. El esquema lógico correspondiente se define en PriceRule.xsd.

Nota: Cuando utiliza un mediador que se proporciona con HCL Commerce con el programa de utilidad de carga de datos, el programa de utilidad de carga de datos da por supuesto que está cargando datos para todas las columnas para un objeto de negocio. Si desea actualizar los datos solamente en columnas específicas, configure una lista de exclusión de columnas para el proceso de carga. Una lista de exclusión de columnas hace que el programa de utilidad de carga de datos ignore columnas concretas durante la operación de carga. Si no utiliza una lista de exclusión de columnas, el programa de utilidad actualiza todas las columnas de la fila de una fila de tabla de base de datos cuando el programa de utiliza actualiza la fila. Si el valor se establece en el archivo de entrada, el programa de utilidad puede sustituir el valor de columna existente por un valor predeterminado o establecer el valor en nulo. Para obtener más información, consulte Configuración de una lista de exclusión de columnas.