Deprecated feature

Adición de plantillas de consulta para incluir información personalizada

En este archivo se describe cómo añadir plantillas de consulta para incluir la información que haya añadido al esquema.

Antes de empezar

La información personalizada ya se ha añadido al esquema.

Procedimiento

  1. Cree un archivo de plantilla de consulta Get 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 el archivo en el directorio -ext. No modifique las plantillas de consulta HCL Commerce de forma directa.
    3. Pulse Nuevo > Archivo.
    4. Ponga un nombre al archivo de plantilla de consulta personalizado, utilizando una serie que sea exclusiva (el nombre de su empresa) para diferenciarlo: wc-query-MyCompanyCatalogEntry-get.tpl.
    5. Pulse Finalizar.
  2. Decida cuál de los dos tipos de consultas necesita crear:
    Consulta de un solo paso
    Una consulta de un solo paso, o consulta XPath, utiliza el bloque XPATH_TO_SQL_STATEMENT. Define la clave de XPath y Perfil de acceso conjuntamente. Debe utilizar, si es posible, consultas de un solo paso. No obstante, en algunos casos, no es posible recuperar todos los datos en una única consulta, o bien, dicha consulta debe unirse a un gran número de tablas y es posible que no se pueda realizar. En este caso, debe utilizarse una consulta de dos pasos. Los cambios en la plantilla de consulta son necesarios para dar soporte a la paginación de consulta de un solo paso. Para más información, consulte Soporte de paginación en la capa de servicios de datos.
    Si desea información relativa a las consultas de un solo paso, vea el ejemplo siguiente de un archivo de plantilla de consulta de ejemplo predeterminada de HCL Commerce:
    BEGIN_SYMBOL_DEFINITIONS
    	COLS:CATENTRY_ID=CATENTRY:CATENTRY_ID
    	COLS:CATENTRY=CATENTRY:*	
    	COLS:CATENTDESC=CATENTDESC:CATENTRY_ID,SHORTDESCRIPTION
    END_SYMBOL_DEFINITIONS
    			
    BEGIN_XPATH_TO_SQL_STATEMENT
    	name=/CatalogEntry[(PartNumber=)]+IBM_CatalogEntryWithDescription
    	base_table=CATENTRY
    	sql=
    	     SELECT 
    	        CATENTRY.$COLS:CATENTRY$,
                    CATENTDESC.$COLS:CATENTDESC$
    	     FROM
    	        CATENTRY
                       LEFT OUTER JOIN CATENTDESC ON 
                         (CATENTDESC.CATENTRY_ID = CATENTRY.CATENTRY_ID  AND 
                          CATENTDESC.LANGUAGE_ID IN ($CONTROL:LANGUAGES$)),
                    STORECENT                   
    	    WHERE
    	       CATENTRY.CATENTRY_ID  = STORECENT.CATENTRY_ID AND
                   STORECENT.STOREENT_ID = $CTX:STORE_ID$ AND
                   CATENTRY.PARTNUMBER IN (?PartNumber?) 
    END_XPATH_TO_SQL_STATEMENT
    
    Consulta de dos pasos
    Una consulta de dos pasos, o asociada, utiliza el bloque ASSOCIATION_SQL_STATEMENT. Define la clave de XPath y el Perfil de acceso por separado. Otro motivo por el cual se debe utilizar una consulta de dos pasos es por si el cliente solicita utilizar la paginación. No se puede paginar el resultado de una consulta de un solo paso si devuelve muchos registros para cada registro de la tabla base. Una consulta de dos pasos le permite paginar el conjunto de resultados devuelto por la primera sentencia (las claves primarias) en lugar de paginar el conjunto de resultados de la segunda sentencia. Los cambios en el archivo TPL no son necesarios para dar soporte a la paginación de consulta de dos pasos.
    El orden de los nombres que devuelve el servicio es coherente con el orden de las claves primarias que devuelve la consulta XPath a SQL.
    Si desea información relativa a las consultas de dos pasos, vea el ejemplo siguiente de un archivo de plantilla de consulta de ejemplo predeterminada de HCL Commerce:
    BEGIN_XPATH_TO_SQL_STATEMENT
    	name=/CatalogEntry[(PartNumber=)]
    	base_table=CATENTRY
    	sql=
    	     SELECT  CATENTRY.$COLS:CATENTRY_ID$
    	     FROM  CATENTRY, STORECENT                    
    	    WHERE
    	       CATENTRY.CATENTRY_ID  = STORECENT.CATENTRY_ID AND
                    STORECENT.STOREENT_ID = $CTX:STORE_ID$ AND
                    CATENTRY.PARTNUMBER IN (?PartNumber?) 
    END_XPATH_TO_SQL_STATEMENT
    
    BEGIN_ASSOCIATION_SQL_STATEMENT
    	name=IBM_CatalogEntryWithDescription
    	base_table=CATENTRY
    	sql=
    	     SELECT CATENTRY.$COLS:CATENTRY$,        
                                 CATENTDESC.$COLS:CATENTDESC$
    	     FROM
    	        CATENTRY
    	           LEFT OUTER JOIN CATENTDESC ON 
                         (CATENTDESC.CATENTRY_ID = CATENTRY.CATENTRY_ID  AND 
                          CATENTDESC.LANGUAGE_ID IN ($CONTROL:LANGUAGES$))
    	     WHERE  CATENTRY.CATENTRY_ID IN ($ENTITY_PKS$)
    END_ASSOCIATION_SQL_STATEMENT
    
    BEGIN_PROFILE 
         name=IBM_Admin_Summary
         BEGIN_ENTITY 
    				base_table=CATENTRY 
            associated_sql_statement=IBM_CatalogEntryWithDescription
         END_ENTITY
    END_PROFILE
    
    Nota: Si se define la misma consulta, es decir, XPath y el perfil de acceso como una consulta de un solo paso y de dos pasos, la capa de servicios de datos elige de forma predeterminada la consulta de un solo paso.
  3. Cree una consulta de plantilla XPATH_TO_SQL_STATEMENT. En el caso de una consulta de un solo paso, recupere toda la información necesaria. Para una consulta de dos pasos, devuelve los valores de clave primaria. Utilice la información de Archivo de plantilla de consulta como referencia.
  4. Opcional: Crear un nuevo perfil de acceso para devolver datos diferentes, como se describe en Archivo de plantilla de consulta.
    Nota: Tenga en cuenta la información siguiente cuando decida sobre un nuevo nombre de un perfil de acceso: Los nombres que empiecen por IBM_ están reservados para uso de IBM. Utilice un nombre que indique el ámbito de los datos que se devuelvan. Por ejemplo, MyCompany_Details.IBM_Admin_ IBM_Admin_ es el prefijo de todos los servicios pensados para ser utilizados por llamadas de servicios basadas en admin/CMC. Los perfiles de acceso que no sigan estos convenios de denominación continuarán funcionando correctamente, ya que se mantiene la compatibilidad con las versiones anteriores. No obstante, se recomienda seguir dichos convenios para los perfiles de acceso existentes y al realizar cambios en los perfiles de acceso futuros.

Ejemplo

Éste es un ejemplo de un archivo de plantilla de consulta personalizado para una consulta de un solo paso. Incluye información de esquema personalizada (la tabla WARRANTY).

BEGIN_SYMBOL_DEFINITIONS
 <!-- CATENTRY table -->
 COLS:CATENTRY=CATENTRY:*
 COLS:CATENTRY_ID=CATENTRY:CATENTRY_ID

 COLS:WARRANTY=WARRANTY:*
 COLS:WARDESC=WARDESC:*

  END_SYMBOL_DEFINITIONS

  BEGIN_XPATH_TO_SQL_STATEMENT
 name=/CatalogEntry[CatalogEntryIdentifier[(UniqueID=)]]+MyCompany_CatalogEntryWarrantyProfile
 entity_table=CATENTRY
 sql=
 SELECT 
  CATENTRY.$COLS:CATENTRY$,
  WARRANTY.$COLS:WARRANTY$,
  WARDESC.$COLS:WARDESC$
 FROM
  CATENTRY 
   JOIN WARRANTY ON (CATENTRY.CATENTRY_ID = WARRANTY.CATENTRY_ID) 
   JOIN WARDESC ON (CATENTRY.CATENTRY_ID = WARDESC.CATENTRY_ID AND 
  WARDESC.LANGUAGE_ID = $CTX:LANGUAGE_ID$)
 WHERE
  CATENTRY.CATENTRY_ID IN (?UniqueID?) AND
  CATENTRY.MARKFORDELETE = 0
END_XPATH_TO_SQL_STATEMENT

.