Ejemplo: eliminar ofertas con varias monedas
El programa de utilidad de carga de datos ofrece dos modalidades para eliminar ofertas con varias monedas definidas en un archivo de carga de la base de datos: eliminar y sustituir. Utilice la modalidad de supresión para eliminar ofertas si la modalidad está establecida en "Delete" en el archivo de configuración de carga de datos. Utilice la modalidad de sustitución para eliminar ofertas si la modalidad está establecida en "Replace" en el archivo de configuración de carga de datos. El comportamiento de cada modalidad depende de si se especifica o no el identificador.
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.
Archivo CSV con datos de oferta de ejemplo a eliminar
- Modalidad de sustitución
-
- Identificador especificado: Solo suprime la oferta especificada de acuerdo con el Identificador cuando el distintivo de supresión está establecido. Si la oferta con el Identificador no existe en la base de datos, no se suprime ninguna oferta.
- Identificador no especificado: Suprime todas las ofertas con la misma pareja en la base de datos cuando el distintivo de supresión está establecido.
- Modalidad de supresión
- Hace caso omiso del distintivo de supresión y siempre suprime ofertas cuando:
- Identificador especificado: Solo suprime la oferta especificada de acuerdo con el Identificador. Si la oferta con el Identificador no existe en la base de datos, no se suprime ninguna oferta.
- Identificador no especificado: Suprime todas las ofertas con la misma pareja en la base de datos.
Standard Price List,1000573,1100456,3,2009-03-15 15:47,2009-05-15 15:47,each,10,0,2009-03-16 15:47:00.0,
Elegant wine glass,4.50,10.05,30.75,3.48,442.56,6074.84,152.42,y
Holiday price list,1000574,1100457,5,2009-12-15 15:47:00.0,2009-12-31 15:47:00.0,each,5,0,2009-11-28 15:47:00.0,
Decorative bed cover,25,55.84,170.84,19.31,2,458.61,33691.25,846.71
Legacy system price list,1000575,1100458,2,2009-02-15 15:47:00.0,2009-06-02 15:47:00.0,each,10,0,2009-02-22 15:47:00.0,
Old Cologne,9.99,22.31,68.27,7.72,982.46,13,463.02,338.35
Overstock price list,1000576,1100459,3,2009-03-15 15:47:00.0,2009-03-31 15:47:00.0,each,10,0,2009-03-16 15:47:00.0,
Candle holder,3,6.70,20.50,2.32,295.03,4042.95,101.61,y
firstLineIsHeader
del archivo de configuración de carga de datos de lista de precios. firstLineIsHeader
es un atributo del elemento <_config:DataReader>
. - 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.
- eliminar oferta con nombre de lista de precios y número de pieza de entrada de catálogo
En este escenario, no se genera ninguna excepción si la oferta no existe en la base de datos. La lista de precios y la entrada de catálogo especificadas no están relacionadas con ninguna oferta. No se suprime ninguna oferta.
Si la oferta existe en la base de datos, la oferta se suprime satisfactoriamente.
- eliminar oferta con ID exclusivo de lista de precios e ID exclusivo de entrada de catálogo.
No se genera ninguna excepción en este escenario.
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 oferta. Consulte el atributo number
en el elemento <_config:Data>
.
- PriceListUniqueID
- (Opcional, Serie) El identificador de la lista de precios. Cuando hay una correlación de datos para el ID exclusivo de lista de precios en el archivo de configuración de carga de datos de lista de precios, el ID exclusivo es necesario en el archivo CSV.
- PriceListName
- (Opcional, String) El nombre de la lista de precios que contiene esta oferta. Al eliminar una oferta, el nombre de la lista de precios o el ID exclusivo de la lista de precios es opcional. Si no se proporciona ninguno de ellos en el archivo CSV, la lista de precios predeterminada de la tienda se utiliza para la supresión. Si se proporciona alguno de ellos, la lista de precios proporcionada se utiliza para la supresión. Si se proporcionan ambos en el archivo CSV, el ID exclusivo de la lista de precios se utiliza para la supresión.
- CatentryUniqueID
- (Opcional, Serie) El identificador exclusivo para la entrada de catálogo relacionada. Cuando hay una correlación de datos en el archivo de configuración de carga de datos de oferta, la columna CatentryUniqueID es necesaria. Si se proporcionan ambos en el archivo CSV, el ID exclusivo de la entrada de catálogo se utiliza para la supresión.
- CatentryPartNumber
- (Opcional, String) El número de pieza de la entrada de catálogo para la que se ha definido esta oferta. Al eliminar una oferta, el nombre CatentryPartNumber o CatentryUniqueID es necesario. Si no se proporciona ninguno de ellos en el archivo CSV, la supresión de la oferta falla. Si se proporciona alguno de ellos, la entrada de catálogo proporcionada se utiliza para la supresión. Si se proporcionan ambos en el archivo CSV, el ID exclusivo de la entrada de catálogo se utiliza para la supresión.
- Identificador
-
(Opcional, Doble) El número que identifica de forma exclusiva la oferta cuando el valor para la columna se combina con los valores de ID de entrada de catálogo exclusivo e ID de lista de previos para la oferta. Se correlaciona con la columna de base de datos OFFER.IDENTIFIER.
- Precedence
- (Opcional, Doble) Cuando hay más de una oferta en vigor en un momento determinado, se utiliza la que tiene la prioridad más alta. Si no se especifica en el archivo de entrada, el valor se establece en "0.0".
- StartDate
- (Opcional, Indicación de fecha y hora)El inicio del intervalo de tiempo durante el que esta oferta es efectiva. Utilice el formato
yyyy-mm-dd hh:mm:ss.millis
. - EndDate
- (Opcional, Timestamp) El final del intervalo de tiempo durante el que esta oferta es efectiva. Utilice el formato
yyyy-mm-dd hh:mm:ss.millis
. - QuantityUnitIdentifier
- (Opcional, String) La unidad de medida para Cantidad mínima y Cantidad máxima.
- MaximumQuantity
- (Opcional, Double) La cantidad máxima que se puede adquirir en un solo pedido bajo esta oferta.
- MinimumQuantity
- (Opcional, Double) La cantidad mínima que se puede adquirir en un solo pedido bajo esta oferta.
- LastUpdate
- (Opcional, Indicación de fecha y hora) La última vez que se actualizó la oferta. Utilice el formato
yyyy-mm-dd hh:mm:ss.millis
. - Descripción:
- (Opcional, Serie) La descripción para esta oferta.
- Price In USD
- (Opcional, Decimal) El precio en dólares estadounidenses.
- Price In BRL
- (Opcional, Decimal) El precio en reales brasileños.
- Price In CNY
- (Opcional, Decimal) El precio en yuanes renminbi chinos.
- Price In EUR
- (Opcional, Decimal) El precio en euros.
- Price In JPY
- (Opcional, Decimal) El precio en yenes japoneses.
- Price In KRW
- (Opcional, Decimal) El precio en wons surcoreanos.
- Price In TWD
- (Opcional, Decimal) El precio en nuevos dólares taiwaneses.
- eliminar
- (Opcional, String) Indica si se ha de eliminar o no esta oferta con varias monedas. deleteValue es la serie que desea utilizar en el archivo CSV para indicar que desea eliminar esta oferta. En este ejemplo utilizamos la serie 'y'.
Correlación de datos
Este 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. También muestra cómo indicar qué columnas se han de eliminar.
<_config:Data>
<_config:column number="1" name="PriceListUniqueId" />
<_config:column number="2" name="PriceListName" />
<_config:column number="3" name="CatentryUniqueId" />
<_config:column number="4" name="CatentryPartNumber" />
<_config:column number="5" name="Identifier" />
<_config:column number="6" name="Precedence" />
<_config:column number="7" name="StartDate" />
<_config:column number="8" name="EndDate" />
<_config:column number="9" name="QuantityUnitIdentifier" />
<_config:column number="10" name="MinimumQuantity" />
<_config:column number="11" name="MaximumQuantity" />
<_config:column number="12" name="LastUpdate" />
<_config:column number="13" name="Description" />
<_config:column number="14" name="PriceInUSD" />
<_config:column number="15" name="PriceInBRL" />
<_config:column number="16" name="PriceInCAD" />
<_config:column number="17" name="PriceInCNY" />
<_config:column number="18" name="PriceInEUR" />
<_config:column number="19" name="PriceInJPY" />
<_config:column number="20" name="PriceInKRW" />
<_config:column number="21" name="PriceInTWD" />
<_config:column number="22" name="Delete" />
</_config:Data>
El atributo number
del elemento <_config:column>
define el orden de las columnas en el archivo de registro CSV. El atributo name
define el nombre de la columna que se utiliza en el elemento <_config:DataMapping>
.<_config:DataMapping>
<_config:mapping xpath="PriceListIdentifier/UniqueID" value="PriceListUniqueId" valueFrom="InputData" />
<_config:mapping xpath="PriceListIdentifier/ExternalIdentifier/Name"
value="PriceListName" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/CatalogEntryIdentifier/UniqueID" value="CatentryUniqueId"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/CatalogEntryIdentifier/ExternalIdentifier/PartNumber"
value="CatentryPartNumber" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Qualifier" value="Identifier" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/precedence" value="Precedence" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/startDate" value="StartDate" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/endDate" value="EndDate" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/lastUpdate" value="LastUpdate" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/quantityUnit" value="QuantityUnitIdentifier"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/minimumQuantity" value="MinimumQuantity"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/maximumQuantity" value="MaximumQuantity"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Description/value" value="Description"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/Price/currency" value="USD" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/Price/value" value="PriceInUSD"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[0]/currency"
value="BRL" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[0]/value"
value="PriceInBRL" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[1]/currency"
value="CAD" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[1]/value" value="PriceInCAD"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[2]/currency"
value="CNY" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[2]/value" value="PriceInCNY"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[3]/currency"
value="EUR" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[3]/value"
value="PriceInEUR" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[4]/currency"
value="JPY" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[4]/value"
value="PriceInJPY" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[5]/currency"
value="KRW" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[5]/value"
value="PriceInKRW" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[6]/currency"
value="TWD" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[6]/value"
value="PriceInTWD" valueFrom="InputData" />
<_config:mapping xpath="" value="Delete" valueFrom="InputData" deleteValue="y"/>
</_config:DataMapping>
El atributo value
del elemento <_config:DataMapping>
debe ser coherente con el atributo name
del elemento correspondiente en el elemento <_config:column>
. Ambos atributos son sensibles a las mayúsculas y minúsculas. Mediador de objetos de negocio
El nombre de la clase de mediador es com.ibm.commerce.price.dataload.mediator.OfferMediator
.
El ejemplo siguiente muestra cómo configurar el mediador de objetos de negocio (BusinessObjectMediator) en el archivo de configuración de carga de datos de oferta para marcar una oferta para supresión o para eliminarla de la base de datos.
<_config:BusinessObjectMediator className="com.ibm.commerce.price.
dataload.mediator.OfferMediator">
<_config:property name="markOfferForDelete" value="true" />
</_config:BusinessObjectMediator>
- markOfferForDelete
-
- true
- La oferta se marca para supresión. Para eliminar los registros, utilice el programa de utilidad de limpieza de base de datos.
- false
- La oferta se suprime de la base de datos. Todos los registros relacionados se suprimen en cascada.