HCL Commerce Enterprise

Crear y registrar un archivo JSP de serialización para el elemento de regla de precios

Cree y registre un archivo JSP de serialización para extraer los elementos de autoría de las tablas PRELEMENT y PRELEMENTATTR para su nuevo elemento de regla de precios y mostrarlos en la interfaz de usuario del Management Center. Los usuarios de empresa luego pueden establecer las propiedades para el elemento de regla de precio al crear una regla de precio.

Antes de empezar

Revise el tema siguiente para comprender el formato de la respuesta XML que devuelve el servidor:

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

Cuando un usuario de negocio abre una regla de precios, el archivo JSP de serialización padre, GetPriceRuleElements.jsp, llama al archivo JSP de serialización de cada elemento de regla de precios para cargar los datos de la actividad.

Si la definición de objeto para su nuevo elemento de regla de precios incluye wcfChildObjectDefinitions o wcfReferenceObjectDefinitions, debe crear un nuevo archivo JSP de serialización para su nuevo elemento de regla de precios; de lo contrario, puede utilizar el archivo JSP de serialización genérico existente, SerializePriceRuleCommonElement.jsp, tal como está. En ambos casos, debe registrar el archivo JSP de serialización en el archivo de configuración de Spring para personalización, spring-ibm-price.xml. Inicialmente, este archivo está vacío y tiene prioridad sobre todos los archivos de configuración de Spring.

Procedimiento

  1. Abra HCL Commerce Developer y cambie a la vista Explorador de empresa.
  2. Si necesita un nuevo archivo JSP de serialización, realice los pasos siguientes; de lo contrario, vaya directamente al paso 3:
    1. Cree un directorio para almacenar su nuevo archivo JSP.
      Utilice una estructura de directorios parecida a la del ejemplo siguiente:

      LOBTools/WebContent/jsp/your_company_name/price

    2. Cree un archivo JSP con esta sintaxis: SerializePriceRulepricerule_element_name.jsp, por ejemplo, SerializePriceRuleRegistrationTimeCondition.jsp.
    3. Defina el nuevo archivo JSP de serialización.
      El siguiente es un archivo JSP de serialización de ejemplo para una regla de precio:
      <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
      <%@ taglib uri="http://commerce.ibm.com/foundation" prefix="wcf"%>
      
      <object objectType="RegistrationTimeCondition"> 1
          <parent><object objectId="${element.parentElementIdentifier.name}"/></parent> 2a
          <elemTemplateName><wcf:cdata data="${element.elementTemplateIdentifier.externalIdentifier.name}"/></elemTemplateName>2b
          <elementName>${element.elementIdentifier.name}</elementName> 2c
          <sequence>${element.elementSequence}</sequence> 2d
          <c:forEach var="elementVariable" items="${element.elementAttribute}"> 3
              <${elementVariable.name}><wcf:cdata data="${elementVariable.value}"/></${elementVariable.name}>
          </c:forEach>
          <c:forEach var="userDataField" items="${element.userData.userDataField}"> 4
              <x_${userDataField.typedKey}><wcf:cdata data="${userDataField.typedValue}"/></x_${userDataField.typedKey}>
          </c:forEach>
      </object>

      A continuación se describen las líneas con comentarios emergentes numerados en negro:

      • 1 El valor objectType debe coincidir con el objectType definido en la definición de objeto para este elemento de regla de precio.
      • 2a-d Estos cuatro elementos son obligatorios; incluya las líneas de código exactamente como se muestran en el ejemplo anterior sin ningún cambio.
      • 3 El elemento <c:forEach> se repite en bucle por todos los valores almacenados para el elemento de regla de precios en la tabla PRELEMENTATTR y devuelve todos los nombres (en elementVariable.name) y valores (en elementVariable.value).
      • 4 El elemento <c:forEach> devuelve cualquier personalización del nombre PriceRule (parte PriceRuleElement) en el campo UserData. Si ha personalizado el Management Center para añadir datos de usuario en el nombre, este elemento garantiza que los datos del usuario se transforman en el objeto del Management Center.

      Este archivo JSP también debe devolver todas las wcfChildObjectDefinitions y wcfReferenceObjectDefinitions. Para ver ejemplos de archivos JSP de serialización que hagan esto, revise un archivo JSP de serialización predeterminado para un elemento de regla de precio similar. Los archivos predeterminados se denominan SerializePriceRulepricerule_element_name.jsp, por ejemplo, SerializePriceRuleCatalogConditionElement.jsp. Los archivos predeterminados se almacenan en esta vía de acceso:

      LOBTools/WebContent/jsp/commerce/price/restricted/serialize/

    4. Guarde y cierre el nuevo archivo JSP de serialización.
  3. Abra el archivo de configuración de Spring, spring-ibm-price.xml.
    El archivo se almacena en esta vía de acceso:

    LOBTools/WebContent/WEB-INF

  4. Añada una nueva correlación de acciones para registrar el archivo JSP de serialización:
    • Si ha creado su propio archivo JSP de serialización, la correlación de acciones debe utilizar la siguiente sintaxis:
      <action path="/SerializePriceRuleElement-objectType_value" 
          include="/jsp/your_company_name/price/name_of_serialization_jsp_file.jsp" />

      Donde:

      • objectType_value es el valor del atributo objectType definido en la definición de objeto para este elemento de regla de precio
      • name_of_serialization_jsp_file es el nombre asignado al archivo JSP de serialización personalizado para el nuevo elemento de regla de precios en un paso anterior de este procedimiento.
    • Si está utilizando el archivo JSP de serialización genérico, su correlación de acciones debe utilizar la siguiente sintaxis:
      <bean id="/SerializePriceRuleElement-objectType_value" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
          <property name="viewName" value="/jsp/commerce/price/restricted/serialize/SerializePriceRuleCommonElement.jsp"/>
      </bean>
    A continuación se ofrecen un par de consejos:
    • Si ha copiado código de un archivo JSP de serialización existente, debe actualizar las vías de acceso según corresponda para los archivos JSP incluidos.
    • Si cambia el archivo JSP de serialización, asegúrese de que edita el archivo GetPriceRuleElements.jsp. No es necesario que realice cambios en el archivo GetPriceRuleElements.jsp; simplemente debe guardar el archivo para modificar la indicación de fecha y hora. El archivo GetPriceRuleElements.jsp incluye los archivo JSP de serialización, por lo que se garantizará que los cambios del archivo JSP de serialización se tengan en cuenta.
  5. Reinicie el servidor de pruebas de HCL Commerce para que la nueva configuración esté disponible.