Crear y registrar un archivo JSP de serialización para poder visualizar objetos de versión

Debe crear y registrar un archivo JSP de serialización para transformar objetos con versión de servidor en el XML que el Management Center entiende. Al ampliar las versiones de contenido de un objeto de negocio, es importante visualizar las versiones en la interfaz de usuario del Management Center.

Cuando se visualizan las versiones en la pestaña Versiones, se invoca el servicio GetContentVersion y este servicio invoca al archivo JSP de serialización para recuperar y visualizar los objetos de negocio con versiones.

Si amplía las versiones de contenido para objetos de negocio adicionales, debe crear un archivo JSP de serialización y registrarlo en la configuración de struts para personalización, struts-extension.xml. Este archivo está vacío inicialmente y tiene prioridad sobre todos los archivos de configuración de struts.

Procedimiento

  1. Abra HCL Commerce Developer y cambie a la vista Explorador de empresa.
  2. Cree un archivo JSP de serialización.
    1. Cree un archivo JSP con esta sintaxis: GetVersioned objectType_value .jsp; donde objectType_value es el tipo de objeto del objeto con versión.
      Por ejemplo, GetVersionedCatalogGroup.jsp define el fragmento JSP para el tipo de objeto CatalogGroup.

      Asegúrese de que almacena este archivo JSP en la misma ubicación que los demás archivos JSP.

    2. Defina el nuevo archivo JSP de serialización. El código siguiente es un ejemplo de archivo JSP de serialización para un tipo de objeto CatalogGroup.
      
      <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
      <%@ taglib uri="http://commerce.ibm.com/foundation" prefix="wcf"%>
      <wcf:getData type="com.ibm.commerce.catalog.facade.datatypes.CatalogGroupType[]" 
      	var="category" expressionBuilder="getCatalogGroupDetailsByIDs" varShowVerb="showVerb">
      		<wcf:contextData name="storeId" data="${param.storeId}"/>
      		<wcf:contextData name="catalogId" data="${param.catalogId}"/>
      		<wcf:contextData name="versionId" data="${param.objectVersionId}"/>
      		<wcf:param name="UniqueID" value="${param.UniqueID}"/>
      </wcf:getData>
      	
      <c:if test="${!(empty category)}">
      	
      1a
      <c:set var="objectVersionId" value="${param.objectVersionId}" scope="request" />
      	
      1b
      <c:set var="objectVersionNumber" value="${param.objectVersionNumber}" scope="request" />
      		<c:forEach var="catalogGroup" items="${category}">
      			<c:set var="childType" value="ChildCatalogGroup" />
      			<c:set var="objectType" value="CatalogGroup" />
      			<c:set var="owningStoreId" value="${catalogGroup.catalogGroupIdentifier.externalIdentifier.storeIdentifier.uniqueID}" />
      			<c:if test="${(param.storeId) != owningStoreId}">
      				<c:set var="childType" value="ChildInheritedCatalogGroup" />
      				<c:set var="objectType" value="InheritedCatalogGroup" />
      			</c:if>
      			<jsp:directive.include file="serialize/SerializeCatalogGroup.jspf"/>
      		</c:forEach>
      </c:if>
      
      A continuación se describen las líneas con comentarios emergentes numerados:
      • 1a-b El archivo JSP debe incluir las propiedades objectVersionId y objectVersionNumber para que la infraestructura sepa si el objeto que se devuelve es o no un objeto con versión.
    3. Opcional: Si el JSP de serialización ya incluye SerializeChangeControlMetaData.jsp, establezca una variable en el archivo SerializeCatalogGroup.jspf. En caso contrario, siga el paso que se muestra a continuación.
      
      <object objectType="${objectType}">
      		
      <jsp:include page="/cmc/SerializeChangeControlMetaData" />
      
      		
      		<catgroupId>
      ${catalogGroup.catalogGroupIdentifier.uniqueID}</catgroupId>
      		<qualifiedCatgroupId>
      ${owningCatalog}_${catalogGroup.catalogGroupIdentifier.uniqueID}</qualifiedCatgroupId>
      		<identifier>
      <wcf:cdata data="${catalogGroup.catalogGroupIdentifier.externalIdentifier.groupIdentifier}"/>
      </identifier>
      		<objectStoreId>
      ${catalogGroup.catalogGroupIdentifier.externalIdentifier.storeIdentifier.uniqueID}</objectStoreId>
      		<ownerId>
      ${catalogGroup.catalogGroupIdentifier.externalIdentifier.ownerID}</ownerId>
      		<owningCatalog>
      ${owningCatalog}</owningCatalog>
      </object>
      
    4. Opcional: En el archivo Serialize objectType_value .jspf, añada las líneas para recupera objectVersionId y objectVersionNumber si dichos valores existen.
      
      <object objectType="${objectType}">
      		
      <c:if test="${!empty objectVersionId}">
      			<objectVersionId>
      ${objectVersionId}</objectVersionId>
      		</c:if>
      		<c:if test="${!empty objectVersionNumber}">
      			<objectVersionNumber>
      ${objectVersionNumber}</objectVersionNumber>
      		</c:if>
      
      		<jsp:include page="/cmc/SerializeChangeControlMetaData" />
      		<catgroupId>
      ${catalogGroup.catalogGroupIdentifier.uniqueID}</catgroupId>
      		<qualifiedCatgroupId>
      ${owningCatalog}_${catalogGroup.catalogGroupIdentifier.uniqueID}</qualifiedCatgroupId>
      		<identifier>
      <wcf:cdata data="${catalogGroup.catalogGroupIdentifier.externalIdentifier.groupIdentifier}"/>
      </identifier>
      		<objectStoreId>
      ${catalogGroup.catalogGroupIdentifier.externalIdentifier.storeIdentifier.uniqueID}</objectStoreId>
      		<ownerId>
      ${catalogGroup.catalogGroupIdentifier.externalIdentifier.ownerID}</ownerId>
      		<owningCatalog>
      ${owningCatalog}</owningCatalog>
      </object>
      
      Ambos elementos <c:if> deben añadirse para recuperar los valores de objectVersionIdy objectVersionNumber si existen.
    5. Guarde y cierre el nuevo archivo JSP de serialización.
  3. Registre el JSP de serialización en el archivo de configuración de la acción struts.
    1. Vaya a LOBTools > WebContent > WEB-INF.
    2. Abra el archivo  struts-extension.xml  con el editor de archivos de configuración Struts.
    3. Añada una nueva correlación de acciones:
      1. Pulse la pestaña  Correlaciones de acciones .
      2. En la sección  Correlaciones de acciones , pulse  Añadir.
      3. En  Las siguientes correlaciones de acciones se han definido para este archivo de configuración, verá /action1; escriba el nuevo GetVersioned objectType_value. Para CatalogGroup, por ejemplo, es GetVersionedCatalogGroup.
      4. En la sección  Atributos de correlaciones de acciones , seleccione  Incluir y luego escriba el nuevo GetVersioned objectType_value .jsp. Por ejemplo, para CatalogGroup se parece a /jsp/commerce/catalog/restricted/GetVersionedCatalogGroup.jsp
      5. Guarde el archivo de configuración   struts-extension.xml  .
      6. Para verificar las actualizaciones, visualice el origen del archivo de configuración   struts-extension.xml  y asegúrese de que ve el código que ha añadido. Por ejemplo, a continuación se muestra el del objeto CatalogGroup.
        
        <action path="/GetVersionedCatalogGroup" include= "/jsp/commerce/catalog/restricted/GetVersionedCatalogGroup.jsp"/>
        
  4. Reinicie el servidor de pruebas de HCL Commerce para que la nueva configuración esté disponible.

Qué hacer a continuación