Inicialización de un nuevo objeto de negocio para un enlace Crear

Al personalizar un enlace Crear, puede definir un servicio para inicializar el objeto de negocio nuevo con los valores de propiedades y objetos hijo.

Se añaden enlaces Crear a páginas de la tienda para permitir que un usuario de empresa cree nuevos objetos de negocio que afectan a la página actual. Por ejemplo, si la página actual muestra una zona de e-Marketing, un enlace Crear puede ayudar al usuario de empresa a crear una actividad web para esa zona de e-Marketing. La actividad web nueva se inicializa con la zona de e-Marketing correcta. Esta inicialización se realiza mediante el servicio Insertar objeto nuevo (wcfPopulateNewObjectService) asociado con la definición de objeto de actividad web. El ID principal de la zona de e-Marketing pasa al servicio Insertar objeto nuevo a través del parámetro newObjectOption.marketingSpotId que está incluido en el URL CreateBusinessObject.

Para inicializar un nuevo objeto de negocio que se inicia a través de un enlace Crear, debe definir un nuevo servicio Insertar objeto nuevo para dicho objeto de negocio. También debe incluir cualquier parámetro que requiere el servicio Insertar objeto nuevo en el URL CreateBusinessObject.

Para definir un servicio Insertar objeto nuevo, debe crear y registrar un archivo JSP que devuelva un documento XML que contenga valores de propiedad serializados y objetos hijo. El documento XML lo analiza la infraestructura del Management Center y el nuevo objeto de negocio se inicializa con estos valores de propiedad y objetos hijos.

Procedimiento

  1. Abra HCL Commerce Developer y cambie a la vista Explorador de empresa.
  2. Cree el archivo JSP que devuelve un documento XML que contiene valores de propiedad serializados y objetos hijo:
    1. Cree un directorio para almacenar el archivo JSP personalizado en la vía de acceso siguiente:

      WCDE_installdir\workspace\LOBTools\WebContent\jsp\your_company_name\component_name\

      A continuación, se muestran dos ejemplos:

      • WCDE_installdir\workspace\LOBTools\WebContent\jsp\MyCompany\marketing\
      • WCDE_installdir\workspace\LOBTools\WebContent\jsp\MyCompany\catalog\
    2. Pulse con el botón derecho del ratón en el directorio component_name; a continuación, seleccione Nuevo > Archivo.
    3. En el campo Nombre de archivo, entre un nombre para el nuevo archivo JSP que tenga este formato:

      PopulateNewobject_name.jsp, por ejemplo, PopulateNewMarketingSpot.jsp o PopulateNewWebActivity.jsp.

    4. Pulse Finalizar.
    5. Cree un archivo JSP que tenga las siguientes características:
      • Acepta parámetros que se pasan del URL CreateBusinessObject.
      • Devuelve un documento XML que siga la sintaxis de objeto del Management Center que se describe en Servicios de carga.
      Por ejemplo, el enlace Crear para una zona de e-Marketing inicializa la zona de e-Marketing nueva con el nombre previamente rellenado en el Management Center. Para rellenar previamente el nombre, el URLCreateBusinessObject contiene un parámetro NewObjectOption.marketingSpotName, tal como se muestra en la segunda línea de este fragmento de código:
      <c:url var="clickToCreateURL" value="/cmc/CreateBusinessObject" context="/">
      		<c:param name="toolId" value="marketingManagement"/>
      		<c:param name="storeId" value="${storeId}"/>
      		<c:param name="languageId" value="${langId}"/>
      		<c:param name="storeSelection" value="prompt"/>
      		<c:param name="objectType" value="EMarketingSpot"/>
      		<c:param name="newObjectOption.marketingSpotName" value="${emsName}"/>
      </c:url>

      El fragmento de código siguiente es el archivo JSP correspondiente. Cuando se llama a este archivo JSP, el valor del parámetro newObjectOption del URL CreateBusinessObject pasa a la JSP en la línea que está etiquetada 1:

      <?xml version="1.0" encoding="UTF-8"?>
      <%@page contentType="text/xml;charset=UTF-8"%>
      <%@ taglib uri="http://commerce.ibm.com/foundation" prefix="wcf"%>
      <object>
          <name><wcf:cdata data="${param.marketingSpotName}"/></name> 1
      </object>
    6. Guarde y cierre el archivo JSP.
  3. Registre el archivo JSP en el archivo de configuración spring-extension.xml:
    1. Expanda LOBTools > WebContent > WEB-INF.
    2. Abra el archivo spring-extension.xml en un editor de texto.
    3. Añada el archivo JSP a la configuración.
      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="/SerializePromotionElement-promotion_element_subtype" 
         class="org.springframework.web.servlet.mvc.ParameterizableViewController">
         <property name="viewName" value="pathToJSP"/>
        </bean>
      </beans>
    4. Guarde y cierre el archivo de configuración de spring-extension.xml.
  4. Defina PopulateNewObjectService en el archivo de definición de objeto para el objeto de negocio de destino:
    1. Abra el archivo de definición de objeto para el objeto de negocio de destino.

      Puede encontrar archivos de definición de objeto para los objetos de negocio que se envían con HCL Commerce en la vía de acceso siguiente:

      workspace_dir\LOBTools\WebContent\WEB-INF\src\xml\commerce\component\objectDefinitions\

    2. En el archivo de definición de objeto, defina PopulateNewObjectService como elemento hijo de la definición de objeto. Utilice este formato:
      <PopulateNewObjectService url="pathName">
      ...
      </PopulateNewObjectService>
      

      El valor pathName es la vía de acceso de acción que ha definido en el archivo spring-extension.xml en el paso anterior.

      Los fragmentos de código siguientes muestran cómo se declara PopulateNewObjectService en las definiciones de objeto de zona de e-Marketing y actividad web para dar soporte a pulsar para editar:

      • Para Zonas de e-Marketing:
        <PopulateNewObjectService url = "/cmc/PopulateNewEMarketingSpot">
            <ServiceParam name = "storeId"/>
        </PopulateNewObjectService>
      • For Web activities:
        <PopulateNewObjectService url = "/cmc/PopulateNewWebActivity">
            <ServiceParam name = "storeId"/>
            <ServiceParam name = "path" objectPath = "path" checkObjectDefinition = "true" propertyName = "objectType" optional = "true"/>
            <ServiceParam name = "viewEMarketingSpot" objectPath = "path/viewEMarketingSpot" checkObjectDefinition = "true" propertyName = "objectType" optional = "true"/>
        </PopulateNewObjectService>
    3. Guarde y cierre el archivo de definición del objeto.

Qué hacer a continuación

Después de terminar la personalización: