Ejemplo: eliminar listas de precios

El programa de utilidad de carga de datos ofrece dos modalidades para eliminar listas de precios que se definen en un archivo de carga: eliminar y sustituir. Utilice la modalidad de supresión para eliminar listas de precios 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 listas de precios si la modalidad está establecida en "Replace" en el archivo de configuración de carga de datos.

En modalidad de sustitución, si el valor de la columna "Delete" en el archivo de carga es igual al "deleteValue" definido en el elemento <_config_Mapping> del archivo de configuración de carga de datos, se realiza la acción de supresión. Puede eliminar varias listas de precios al mismo tiempo. También puede insertar listas de precios, sustituir listas de precios y eliminar listas de precios al mismo tiempo.

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.

Nota: No suprima la lista de precios predeterminada para una tienda. Si suprime la lista de precios predeterminada, las tablas de base de datos CATGRPTPC y STORETPC deben actualizarse con una nueva lista de precios predeterminada para la tienda. Actualice estas tablas con el tradeposcn_ID de la nueva lista de precios predeterminada. Si no se establece una lista de precios predeterminada para la tienda, en el Centro de gestión y en el escaparate se pueden producir errores que están asociados al contenido de estas tablas.

Archivo CSV con datos de lista de precios de ejemplo a eliminar

Para eliminar una lista de precios, debe añadir una columna de supresión al archivo CSV. En este ejemplo, el archivo CSV contiene datos de lista de precios de ejemplo. Algunas listas de precios se suprimen y otras se insertan o sustituyen. La acción depende del estado del distintivo de supresión.

PriceListGroupDelete.csv

La primera fila del archivo CSV también pueden ser nombres de columna, lo que depende del atributo 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.
Archivo CSV con formato con cabeceras de columna
Nombre: Descripción: Precedence Tipo eliminar
Standard Price List The standard price list. 1 S -
Holiday price list The price list for the holiday. 5 C y
Legacy system price list The price list that is managed by the legacy system. 2 E -
Overstock price list The price list for overstocked items. 1 C y
Comportamiento
  1. eliminar lista de precios con ID exclusivo de lista de precios

    No se genera ninguna excepción en este escenario.

  2. eliminar lista de precios con nombre de lista de precios

    Se genera una excepción si la lista de precios no existe en la base de datos y se visualiza el mensaje de error No se ha resuelto ID. El ID exclusivo de lista de precios no se puede resolver cuando el nombre de lista de precios y el ID exclusivo son la clave primaria que identifica una lista de precios.

    Si la lista de precios existe en la base de datos, la lista de precios se suprime satisfactoriamente.

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. El ID exclusivo es necesario cuando hay una correlación de datos para el ID exclusivo de lista de precios en el archivo de configuración de carg a de datos de lista de precios.
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.
Los valores que no sean S, C o E se consideran tipos personalizados. El tipo se inserta en la tabla. El mediador no restringe este valor.
eliminar
(Opcional, Serie) Indica si se ha de eliminar o no esta lista de precios. La serie deleteValue, y en este ejemplo, es la serie que indica que desea eliminar esa lista de precios.

Correlación de datos

El siguiente fragmento de código correlaciona cada columna de datos del archivo CSV de origen con un valor.

	<_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:column number="5" 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>.

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="Type" 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.PriceRuleMediator. El esquema lógico correspondiente es PriceRule.xsd. El ID de componente es com.ibm.commerce.price.

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.

El siguiente ejemplo muestra cómo configurar BusinessObjectMediator en el archivo de configuración de carga de datos de lista de precios. La configuración es establecer si el programa de utilidad de carga de datos marca una lista de precios para su supresión, o suprime la lista de la base de datos.

<_config:BusinessObjectMediator className="com.ibm.commerce.price.dataload.mediator.PriceListMediator"> 
<_config:property name="markPriceListForDelete" value="false" /> 
</_config:BusinessObjectMediator> 
markPriceListForDelete
true
La lista de precios se marca para supresión. Para eliminar los registros, utilice el programa de utilidad de limpieza de base de datos.
false
La lista de precios se suprime de la base de datos. Todos los registros relacionados se suprimen en cascada.