Configurar la correlación de Data Import Handler

En esta lección, se configura la correlación de Data Import Handler para extraer datos de la tabla relacional. La correlación para la extracción de datos se configura con líneas de consulta SQL predefinidas que extraen datos de HCL Commerce.

Para ampliar el ámbito de la extracción, esta lección añade las columnas y tablas de precio de coste a las consultas de búsqueda. El propio precio de coste no está indexado porque no se utiliza directamente durante esta guía de aprendizaje. Debe definir la consulta para calcular el margen de beneficio que se basa en el precio de oferta y el precio de coste. A continuación, correlacione la columna con el campo de índice en el archivo de configuración.

Nota: Durante esta tarea, añadirá campos para el catálogo maestro. Como ejemplo, en esta guía de aprendizaje se utiliza un catálogo maestro que tiene un ID de "10001" y se utiliza el entorno local "en_US". Cambie los valores para que reflejen los valores de su entorno. Si desea añadir los campos de más catálogos o idiomas, deberá repetir el proceso siguiente para dichos catálogos e idiomas.

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

Procedimiento

  1. 1. En un programa de utilidad gestor de archivos, vaya al directorio workspace_dir\WC\xml\search\dataImport\v3\dbtype2.
  2. 2. Abra el archivo wc-dataimport-preprocess-x-finalbuild.xml para editarlo.
    1. a. Añada el código siguiente a la cláusula SELECT:
      CASE 
         WHEN REGEXP_SUBSTR(VI_OP.PRICE, 'price_USD:([0-9.]+)(\|\||$)', 1, 1, 'c',1) <> 0 
            THEN 
               (REGEXP_SUBSTR(VI_OP.PRICE, 'price_USD:([0-9.]+)(\|\||$)', 1, 1, 'c',1) - COSTPRICE.PRICE) / 
                REGEXP_SUBSTR(VI_OP.PRICE, 'price_USD:([0-9.]+)(\|\||$)', 1, 1, 'c',1) * 100 
            ELSE NULL 
      END AS PROFIT_MARGIN
    2. Añada el código siguiente a la cláusula FROM:
      LEFT OUTER JOIN VI_OFFERPRICE_#INDEX_SCOPE_TAG# VI_OP ON (CATENTRY.CATENTRY_ID=VI_OP.CATENTRY_ID)
      LEFT OUTER JOIN 
          (SELECT OFFER.CATENTRY_ID, OFFERPRICE.PRICE
          FROM OFFER
          INNER JOIN OFFERPRICE ON (OFFER.OFFER_ID = OFFERPRICE.OFFER_ID AND OFFERPRICE.CURRENCY = 'USD')
          INNER JOIN TRADEPOSCN ON (OFFER.TRADEPOSCN_ID = TRADEPOSCN.TRADEPOSCN_ID AND TRADEPOSCN.NAME = 'My Company Cost Price' )
          ) COSTPRICE
      ON (VI_OP.CATENTRY_ID = COSTPRICE.CATENTRY_ID)
    3. El SQL final debería ser parecido al fragmento de código siguiente.
      "CREATE VIEW X_VI_CE_#INDEX_SCOPE_TAG#_#lang_tag# AS(
      SELECT 
      	CATENTRY.CATENTRY_ID PK,
      	CATENTRY.FIELD1 X_FIELD1_I,
      	CATENTRY.FIELD2 X_FIELD2_I,
      	CATENTRY.FIELD3 X_FIELD3_D,
      	CATENTRY.FIELD4 X_FIELD4_Q,
      	CATENTRY.FIELD5 X_FIELD5_SM,
      	CATENTDESCOVR.FIELD1 X_FIELD1_NL_I,
      	CATENTDESCOVR.FIELD2 X_FIELD2_NL_Q,
      	CASE 
      		WHEN REGEXP_SUBSTR(VI_OP.PRICE, 'price_USD:([0-9.]+)(\|\||$)', 1, 1, 'c',1) <> 0 
      		THEN 
      			(REGEXP_SUBSTR(VI_OP.PRICE, 'price_USD:([0-9.]+)(\|\||$)', 1, 1, 'c',1) - COSTPRICE.PRICE) / 
      			REGEXP_SUBSTR(VI_OP.PRICE, 'price_USD:([0-9.]+)(\|\||$)', 1, 1, 'c',1) * 100 
      		ELSE NULL 
      	END AS PROFIT_MARGIN,
      	CATENTDESCOVR.FIELD3 X_FIELD3_NL_S
      FROM CATENTRY
      	INNER JOIN TI_CATENTRY_#INDEX_SCOPE_TAG# CE ON (CATENTRY.CATENTRY_ID=CE.CATENTRY_ID)
      	LEFT OUTER JOIN CATENTDESCOVR ON (CATENTRY.CATENTRY_ID=CATENTDESCOVR.CATENTRY_ID)
      	LEFT OUTER JOIN VI_OFFERPRICE_#INDEX_SCOPE_TAG# VI_OP ON (CATENTRY.CATENTRY_ID=VI_OP.CATENTRY_ID)
      	LEFT OUTER JOIN 
      		(SELECT OFFER.CATENTRY_ID, OFFERPRICE.PRICE
      		FROM OFFER
      		INNER JOIN OFFERPRICE ON (OFFER.OFFER_ID = OFFERPRICE.OFFER_ID AND OFFERPRICE.CURRENCY = 'USD')
      		INNER JOIN TRADEPOSCN ON (OFFER.TRADEPOSCN_ID = TRADEPOSCN.TRADEPOSCN_ID AND TRADEPOSCN.NAME = 'My Company Cost Price' )
      		) COSTPRICE
      	ON (VI_OP.CATENTRY_ID = COSTPRICE.CATENTRY_ID))"	name="X_VI_CE_#INDEX_SCOPE_TAG#_#lang_tag#"
    4. Guarde y cierre el archivo.
  3. Vaya al directorio search-config-ext\index\managed-solr\config\v3\CatalogEntry y abra el archivo x-data-config.xml para editarlo. Añada las correlaciones de declaración de campo siguientes para correlacionar el campo de la base de datos con el campo de índice que se ha definido en x-data-config.xml file.
    <field column="PROFIT_MARGIN" name="profitMargin"/>
  4. Guarde y cierre el archivo.