Ejemplo: Insertar y sustituir listas de precios
El programa de utilidad de carga de datos ofrece dos modalidades para cargar listas de precios: insertar y sustituir. Utilice la modalidad de inserción para listas de precios nuevas. Utilice la modalidad de sustitución para actualizar una lista de precios existente.
No utilice la modalidad de inserción si existe una lista de precios con el mismo nombre de lista de precios, o un ID exclusivo, en la base de datos. En la modalidad de sustitución, si el nombre de lista de precios o el ID exclusivo del archivo de carga no existe en la base de datos, la lista de precios no se sustituye. En la modalidad de inserción, si existe una lista de precios con el mismo nombre de lista de precios o un ID exclusivo en la base de datos, el registro no se inserta. En la modalidad de sustitución, si una lista de precios del archivo de carga no existe en la base de datos, la lista de precios 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.
Archivo CSV con datos de lista de precios de ejemplo
El archivo CSV de ejemplo, PriceListGroup.csv contiene datos de lista de precios de ejemplo. La primera fila del archivo CSV también pueden ser nombres de columna, lo que depende del atributofirstLineIsHeader
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.
Nombre: | Descripción: | Precedence | Tipo |
---|---|---|---|
Standard Price List | La lista de precios estándar. | 1 | S |
Holiday price list | This is the price list for the holiday. | 5 | C |
Legacy system price list | La lista de precios gestionada por el sistema heredado. | 2 | E |
Overstock price list | La lista de precios para artículos con exceso de existencias. | 1 | C |
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 lista de precios. Consulte el atributo number
en el elemento <_config:Data>
.
- UniqueID
- (Opcional, Serie) El identificador de la lista de precios. Si tanto el nombre de lista de precios como el ID exclusivo de lista de precios se proporcionan en el registro CSV, el programa de utilidad de carga de datos realiza la carga en función del ID exclusivo de 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.
- Nombre:
- (Necesario, Serie) El nombre de la lista de precios. Si tanto el nombre de lista de precios como el ID exclusivo de lista de precios se proporcionan en el registro CSV, el programa de utilidad de carga de datos realiza la carga en función del ID exclusivo de lista de precios.
- Descripción:
- (Opcional, Serie) La descripción de esta lista de precios.
- Precedence
- (Opcional, Doble) El valor que determina qué lista de precios tiene prioridad cuando hay más de una lista de precios en vigor en un momento determinado. El sistema utiliza el contenedor de propuestas de comercio con el valor de prioridad más alto. Si esta columna es nula en el archivo de entrada, se establece en el valor predeterminado 0.0. El valor se correlaciona con la columna de base de datos OFFER.PRECEDENCE. Nota: El valor
Precedence
no se utiliza con reglas de precios. Para las reglas de precios, si desea incluir varias listas de precios dentro de una regla de precio, debe utilizar ramificaciones de condiciones en la herramienta Filtro de catálogo y fijación de precios. Cuando se utilizan ramificaciones de condiciones para añadir varias listas de precios, las condiciones determinan la prioridad de las listas de precios. El valor de prioridad para las listas de precios se ignora. Si no utiliza reglas de precios y puede aplicarse más de una lista de previos (contenedor de propuestas de comercio), el sistema utiliza la lista de precios con la prioridad más alta. - Tipo
- (Opcional, String) El tipo de Contenedor de propuestas de comercio:
- S
- (Valor predeterminado) Lista de precios estándar que contiene los precios base para los productos del catálogo de la tienda.
- C
- Lista de precios personalizada que especifica la lista de productos y sus precios personalizados.
- E
- Lista de precios externa.
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:Data>
<_config:column number="1" name="UniqueId" />
<_config:column number="2" name="Name" />
<_config:column number="3" name="Description" />
<_config:column number="4" name="Precedence" />
<_config:column number="5" name="Type" />
</_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 columna que se utiliza en el elemento <_config:DataMapping>
.
El siguiente fragmento de código correlaciona cada valor con una vía de acceso de esquema lógico de objeto de negocio.
<_config:DataMapping>
<_config:mapping xpath="PriceListIdentifier/UniqueID" value="UniqueId" valueFrom="InputData" />
<_config:mapping xpath="PriceListIdentifier/ExternalIdentifier/Name" value="Name" valueFrom="InputData" />
<_config:mapping xpath="Description/value" value="Description" valueFrom="InputData" />
<_config:mapping xpath="precedence" value="Precedence" valueFrom="InputData" />
<_config:mapping xpath="type" value="Type" valueFrom="InputData" />
</_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.
<_config:DataSource>
<_config:Data>
<_config:column number="1" name="Name" />
<_config:column number="2" name="Description" />
<_config:column number="3" name="Precedence" />
<_config:column number="4" name="Type" />
</_config:Data>
</_config:DataSource>
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 columna que se utiliza en el elemento <_config:DataMapping>
.
El siguiente fragmento de código correlaciona cada valor con una vía de acceso de esquema lógico de objeto de negocio.
<_config:DataMapping>
<_config:mapping xpath="PriceListIdentifier/ExternalIdentifier/Name" value="Name" valueFrom="InputData" />
<_config:mapping xpath="Description/value" value="Description" valueFrom="InputData" />
<_config:mapping xpath="precedence" value="Precedence" valueFrom="InputData" />
<_config:mapping xpath="type" value="Sequence" valueFrom="InputData" />
</_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.PriceRuleMediator
. El esquema lógico correspondiente es PriceRule.xsd
. El ID de componente es com.ibm.commerce.price
.