Configuración del código GetData

La etiqueta <wcf:getData>, parte de la biblioteca de códigos de base de HCL Commerce, le permite recuperar objetos de datos de servicio de cualquier servicio de HCL Commerce y asociarlos a una variable de script recién declarada con un ID proporcionado. Este ID especificado también asocia los objetos SDO a un ámbito especificado. A menos que se especifique lo contrario, el objeto Java que se crea es una instancia de java.util.List que contiene la lista de objetos de datos de servicio.

El código getData se configura mediante la acción getData de HCL Commerce. Esta acción busca archivos de configuración llamados get-data-config.xml en el directorio WEB-INF/config. Los archivos de configuración deben seguir las normas siguientes:

  • Deben tener get-data-config como elemento raíz.
  • Debe haber un archivo de configuración para cada componente que esté configurado para su uso con la acción getData.
  • Se esperan archivos de configuración de componente base en WEB-INF/config/base/component/get-data-config.xml, donde component es un directorio que es exclusivo para el componente.
  • Las extensiones de cliente deben estar ubicadas en WEB-INF/config/ext/.global/get-data-config. Las extensiones de cliente se cargan después de las configuraciones de componentes base.

Todas las vías de acceso de este archivo se refieren a la ubicación instalada de la de la aplicación web, por ejemplo, la Portlet WAR (MVCPortlet.war).

La modificación del archivo get-data-config también puede modificar el comportamiento de los componentes de negocio. Por ejemplo, el componente Catálogo, de forma predeterminada, habilita la búsqueda por número de pieza y nombre (sensible a mayúsculas/minúsculas). Este comportamiento se puede cambiar para habilitar únicamente en el catálogo la búsqueda por número de pieza o la búsqueda por nombre a fin de mejorar el rendimiento de las búsquedas en el sitio.

El ejemplo siguiente muestra el generador de expresiones predeterminado. Tenga en cuenta que las secciones comentadas pueden descomentarse en su extensión de cliente para cambiar el comportamiento de la búsqueda.
<expression-builder>
  <name>findAllCatentriesBasicSearch</name>
  <data-type-name>CatalogEntry</data-type-name>
  <class>com.ibm.commerce.catalog.internal.client.taglib.util.CatalogSearchExpressionBuilder</class>
  <method>formatExpression</method>
  <param>
    <name>template</name>
    <!-- 
      Default config is search the catalog entry by part number or name. 
      To improve performance, user can comment this <value> section and uncomment one of the following two <value> sections 
      for searching by part number only or searching by name only. 
      Note that only one <value> section should be uncommented.
    -->
    <!-- Search catalog entry by part number or name -->
    <value>/CatalogEntry[($catEntryTypes$) and search(CatalogEntryIdentifier/ExternalIdentifier/PartNumber='$partNumber$' or Description/Name='$name$')]</value>
    <!-- Search catalog entry by part number only-->
    <!-- 
      <value>/CatalogEntry[($catEntryTypes$) and search(CatalogEntryIdentifier/ExternalIdentifier/PartNumber='$partNumber$')]</value>
     -->
    <!-- Search catalog entry by name only-->
    <!-- 
      <value>/CatalogEntry[($catEntryTypes$) and search(Description/Name='$name$')]</value>
     -->
  </param>
</expression-builder>

Elemento get-data-config

El elemento get-data-config configura la acción getData de HCL Commerce. La acción getData puede captar datos de los servicios de HCL Commerce para utilizarlos en una página JSP. Debe registrar tipos de datos de componente como parte del elemento get-data-config para que éstos puedan ser reconocidos por la acción getData.

name tipo descripción
data-type wcf:data-typeComplexType El elemento data-type declara un tipo de datos soportado para la acción getData.
client-facade wcf:client-facadeComplexType El elemento client-facade declara la fachada de cliente de componente que invoca el servicio de HCL Commerce que capta los datos deseados.
expression-builder wcf:expression-builderComplexType El elemento expression-builder declara generadores de expresiones. Un generador de expresiones maneja la complejidad de la composición de una expresión de consulta. Sólo necesita proporcionar el nombre del generador de expresiones y valores para sus parámetros de entrada publicados.

date-typeComplex

name tipo descripción
name xsd:String El nombre del tipo de datos. Este nombre correlaciona el tipo de datos con las declaraciones de fachada de cliente y generador de expresiones.
descripción xsd:String Una descripción del tipo de datos.
tipo xsd:String El nombre de interfaz o clase Java completo del tipo de datos. Para componentes de HCL Commerce, este es el tipo de SDO de nombre.

client-facadeComplexType

name tipo descripción
data-type-name xsd:string El nombre del tipo de datos al que está asociada la definición de fachada de cliente.
class xsd:String El nombre de clase Java totalmente calificado de la fachada de cliente de componente que la acción getData utiliza cuando se solicitan datos del tipo coincidente. La clase de fachada de cliente debe tener un constructor que acepte dos parámetros:
  • contexto de negocio
  • devolución de llamada de seguridad
El contexto de negocio es de tipo 'com.ibm.commerce.foundation.common.datatypes.BusinessContextType'.

El manejador de llamadas de seguridad es del tipo 'javax.security.auth.callback.CallbackHandler'.

method xsd:String El nombre del método en la clase de fachada de cliente de componente que se utiliza para recuperar los datos solicitado por la acción getData. El método acepta una instancia de 'com.ibm.commerce.oagis9.datatypes.GetType' y devuelve una instancia de ShowXXXDataAreaType para el nombre específico que se solicita.

expression-builderComplexType

name tipo descripción
name xsd:string El nombre del generador de expresiones. Este valor se especifica utilizando el "expressionBuilder" para recuperar los datos solicitados por la acción getData. El método debe poder aceptar una instancia de 'com.ibm.commerce.oagis9.datatypes.GetType' y devolver una instancia de ShowXXXDataAreaType para el nombre específico que se solicita.
descripción xsd:string Una descripción del generador de expresiones.
data-type-name xsd:string El nombre del tipo de datos con el que se asociará esta definición de generador de expresiones.
  • bien
    name tipo descripción
    class xsd:string El nombre de clase Java completo del generador de expresiones. Esta clase debe tener un constructor predeterminado.
    method xsd:string El nombre de método del generador de expresiones. Este método debe aceptar un java.util.Map y devolver una instancia de 'com.ibm.commerce.oagis9.datatypes.ExpressionType'. La correlación es la correlación de parámetros que correlaciona nombres de tipo String con valores de tipo String[]. Si hay valores de parámetro para el nombre de parámetro, la matriz String tendrá una longitud mayor que uno.
  • o
    name tipo descripción
    expression-template xsd:string La plantilla de expresión que se utiliza para componer la expresión. La expresión puede incluir parámetros de sustitución de la forma $name$ que se reemplazarán por valores de parámetro del mismo nombre. Si un nombre de parámetro tiene valores valores, sólo se utiliza el primer valor.
    expression-language xsd:string El lenguaje de expresiones para la plantilla de expresión especificada. Si no se especifica este valor, se utiliza wcf:XPath.
name tipo descripción
param opcional El elemento param se utiliza para declarar los parámetros que espera el generador de expresiones. Si se especifica uno o más elementos value como parte de la declaración, esos valores se pasan al generador de expresiones. Si se utiliza el mismo nombre de parámetro al codificar la etiqueta getData, se utilizan los valores especificados y las declaraciones de elementos param se ignoran. Se pueden especificar nombres de parámetros no declarados y pasarlos al generador de expresiones.

param

name tipo descripción
name xsd:string El nombre de un parámetro esperado por el generador de expresiones.
descripción xsd:string Una descripción del parámetro.
valor xsd:string Un valor predeterminado para el parámetro.