Deprecated feature

Alterar el SQL generado para la búsqueda paramétrica

Puede haber casos en los que desee alterar temporalmente el SQL generado para consultas de búsqueda paramétrica. Por ejemplo, si una determinada búsqueda paramétrica no se está ejecutando correctamente, el administrador de base de datos puede sugerir otro modo de escribir el SQL. En este caso, puede alterar completamente el SQL utilizado para la consulta de búsqueda paramétrica.

Procedimiento

  1. Si aún no lo ha creado, cree un archivo de plantilla de consulta personalizado:
    1. Cree una carpeta WC\config\com.ibm.commerce.servicemodule-ext, si todavía no existe ninguna.
    2. Pulse el botón derecho del ratón en la carpeta WC\config\com.ibm.commerce.servicemodule-ext. Debe crear la carpeta en el directorio -ext. No modifique las plantillas de consulta directamente.
    3. Pulse Nuevo > Otros > Simple > Archivo > Siguiente
    4. Ponga un nombre al archivo de plantilla de consulta personalizado, utilizando una serie que sea exclusiva (el nombre de su empresa) para diferenciarlo, por ejemplo: wc-query-MyCompanyCatalogEntry-get.tpl.
    5. Pulse Finalizar.
  2. Defina un nuevo bloque XPATH_TO_SQL_STATEMENT en el archivo de plantilla personalizado. El nombre de la consulta debe ser la clave XPath, con la excepción de que se han especificado explícitamente los parámetros de búsqueda.
    Por ejemplo, si la expresión de XPath era:
    /CatalogEntry[search(contains(Description/ShortDescription, "Polo shirt")
    and starts-with(CatalogEntryIdentifier/ExternalIdentifier/PartNumber, "FU01"))]
    Normalmente, el nombre de clave de XPath es:
    name=/CatalogEntry[search()]

    No obstante, para indicar que quiere alterar temporalmente el SQL generado, incluya explícitamente los parámetros de búsqueda, y altere temporalmente el SQL en el archivo de plantilla personalizado, tal como se muestra en la consulta de ejemplo siguiente:

    BEGIN_XPATH_TO_SQL_STATEMENT 
    name=/CatalogEntry[search(contains(Description/ShortDescription,) and starts-with(CatalogEntryIdentifier/ExternalIdentifier/PartNumber,))] 
    
    base_table=CATENTRY 
    sql= 
    	SELECT CATENTRY.CATENTRY_ID 
    	FROM 
    		CATENTRY, CATENTDESC IBM_1 
    	WHERE 
    		CATENTRY.MARKFORDELETE = 0 AND CATENTRY.PARTNUMBER LIKE '?CatalogEntryIdentifier/ExternalIdentifier/PartNumber?%' AND 
    			(CATENTRY.CATENTRY_ID= IBM_1.CATENTRY_ID AND 
    			IBM_1.SHORTDESCRIPTION LIKE '%?Description/ShortDescription?%') 
    		ORDER BY 
    			CATENTRY.CATENTRY_ID 
    END_XPATH_TO_SQL_STATEMENT