HCL Commerce Developer

Generar código fuente de widget de Commerce Composer

Utilice el patrón de recursos del Compositor de páginas JET (Java Emitter Template) para generar archivos de código fuente que puede utilizar como punto de partida para crear un widget de Commerce Composer personalizado. Para utilizar este patrón, debe crear un archivo de entrada de patrón que contenga la información necesaria para generar los archivos de código fuente.

Procedimiento

  1. Inicie HCL Commerce Developer.
  2. Cree un proyecto temporal en el espacio de trabajo de HCL Commerce Developer. Este proyecto se utiliza como ubicación de destino donde la Transformación JET (Java Emitter Template) genera los archivos de código fuente para crear el widget.
    1. Haga clic en el botón derecho del ratón en la vista Explorador de empresa. Seleccione Nuevo > Proyecto.
    2. En el asistente Nuevo proyecto, expanda General. Seleccione Proyecto. Haga clic en Siguiente.
    3. Para el campo Nombre de proyecto, escriba un nombre para el proyecto temporal.
      Por ejemplo, NewWidgetProject.
    4. Haga clic en Finalizar.
  3. En el proyecto NewWidgetProject temporal, cree un archivo XML para utilizarlo como archivo de entrada de patrón para la Transformación JET. El archivo XML de entrada de patrón que se crea lo utiliza la Transformación JET para crear los archivos de código fuente de widget utilizando las propiedades y los atributos que especifique dentro del archivo. La Transformación JET crea todos los archivos y el código que es necesario para crear un widget. El archivo de entrada puede copiarse y editarse para que en el futuro le ayude a generar el código fuente para crear otros widgets personalizados.
    1. Haga clic en el botón derecho del ratón en el proyecto NewWidgetProject temporal. Seleccione Nuevo > Archivo.
    2. En el asistente Nuevo archivo, asegúrese de que el proyecto temporal se selecciona como carpeta padre. Escriba un nombre de archivo para el archivo XML de entrada de patrón.
      Por ejemplo, NewWidgetPatternInputFile.xml.
    3. Haga clic en Finalizar.
    4. Haga clic en el botón derecho del ratón en el nuevo archivo XML de entrada de patrón dentro del proyecto temporal. Seleccione Abrir con > Editor XML.
    5. Copie el siguiente código en el archivo:
      <pageLayout vendor="" targetFolder="">
        <widget>
          <widgetDef 
           identifier="" UIObjectName="" 
           displayName="" description="" 
           widgetDisplayGroups=""> 
           widgetRestrictionGroups="" >
            <property name=""	displayName=""/>
            <property name=""	displayName=""/>
          </widgetDef>
          <widgetGroup identifier="" displayName="" />
        </widget>
      </pageLayout>
      
    6. Actualice el código copiado de modo que especifique la información que la Transformación JET va a utilizar para crear el código fuente del widget. Asegúrese de incluir toda la información necesaria.
      Nota: No incluya espacios ni caracteres especiales en los valores para los parámetros siguientes. Incluir espacios o caracteres especiales para estos parámetros puede causar errores:
      • vendor (pageLayout)
      • targetFolder (pageLayout)
      • identifier (todas las instancias)
      • UIObjectName (widgetDef)
      • name (property)
      Información de widget que puede incluirse con el archivo XML de entrada de patrón:
      Parámetro de archivo de entrada Obligatorio Descripción:
      vendor (pageLayout) El nombre de la compañía. Por ejemplo, myCompany.

      El valor de este atributo se incluye como valor para la columna WidgetVendor dentro del archivo registerWidgetdef.csv generado. El archivo registerWidgetdef.csv se utiliza para registrar el widget personalizado con la infraestructura de Commerce Composer.

      targetFolder (pageLayout) No La vía de acceso de la carpeta o del proyecto donde se van a generar los archivos de código fuente. La vía de acceso a la carpeta de destino es relativa al directorio del espacio de trabajo. Por ejemplo, puede establecer el valor de la carpeta de destino para que sea el proyecto temporal que ha creado. Si el proyecto es un directorio de nivel superior dentro del espacio de trabajo, especifique el nombre del proyecto, como por ejemplo NewWidgetProject, como la carpeta de destino.

      Si no se especifica el valor para el atributo, los archivos se generan dentro de la misma carpeta o proyecto que contiene el archivo XML de entrada de patrón para la Transformación JET.

      widgetDef (widget) No

      Si está creando un widget, debe incluir este elemento.

      Si está utilizando este patrón XML y la Transformación JET para crear sólo los archivos para definir un grupo de visualización de widgets, no incluya este elemento. Para obtener más información sobre la definición de grupos de widget, consulte Crear grupos de widget de Commerce Composer.

      Elemento que incluye atributos para definir la definición de widget. Esta definición debe cargarse en la base de datos de HCL Commerce con el programa de utilidad de carga de datos para registrar el widget. Esta información también se utiliza para ayudar a definir el objeto de widget correspondiente en la herramienta Commerce Composer.
      identifier (widgetDef) El nombre de referencia externa para la definición de contenedor o widget. Puede utilizar cualquier nombre, aunque éste debe ser exclusivo para la tienda. Por ejemplo, myNewContentRecommendationWidget.

      El valor de este atributo se incluye como valor para la columna WidgetDefIdentifier dentro del archivo registerWidgetdef.csv generado.

      UIObjectName (widgetDef) El nombre que identifica el objeto del Management Center y la definición de objeto de este widget. Por ejemplo, myNewContentRecommendationWidgetObject.

      Cuando se crea el archivo de definición de objeto que define el widget para el Management Center, debe especificar este nombre para el atributo ui_object_name en el código XML. El valor de este atributo se incluye como valor para la columna WidgetUIObjectName dentro del archivo registerWidgetdef.csv generado.

      displayName (widgetDef) El nombre de visualización específico del idioma del widget. Por ejemplo, My New Content Recommendation Widget.

      Este nombre se muestra en la herramienta Commerce Composer para ayudar a los usuarios de empresa a identificar el widget. El valor de este atributo se incluye como valor para la columna WidgetDisplayName dentro del archivo registerWidgetdef.csv generado.

      description (widgetDef) La descripción específica del idioma para el widget. Por ejemplo, This widget displays marketing content, such as ads, on a store page. Puede especificar una serie vacía como valor.

      El valor de este atributo se incluye como valor para la columna WidgetDescription dentro del archivo registerWidgetdef.csv generado.

      widgetDisplayGroups (widgetDef) No Se utiliza para organizar widgets en la herramienta Commerce Composer para ayudar a los usuarios del Centro de gestión a filtrar la lista de widgets en la ventana Añadir widgets a ranuras. Cuando se especifica, a la definición de objeto generado para el widget se añade una entrada para definir estos grupos. Para obtener más información sobre la definición de grupos de visualización de widgets para el widget, consulte Grupos de widgets.
      widgetRestrictionGroups (widgetDef) No Se utilizan para restringir las ranuras en plantillas de diseño de modo que sólo incluyan widgets de grupos de widgets definidos. Cuando se especifica, al XML de definición para el widget dentro del archivo registerWidgetDef.csv se añade una entrada que identifica estos grupos. Para obtener más información sobre la definición de grupos de restricción de widgets para el widget, consulte Grupos de widgets.
      property (widgetDef) No Incluya este elemento para generar información de propiedades para el widget. Incluya un elemento de propiedad diferente dentro del elemento widgetdef para cada propiedad que desee especificar para el widget. Cuando especifique una propiedad, la herramienta JET la añadirá en el XML de definición para el widget que está dentro del archivo registerWidgetDef.csv. También se añade una entrada a la definición del Management Center de archivos generados para ayudarle a definir la propiedad.
      name (property) Sí (si el elemento property se incluye.) El nombre de una propiedad para el widget personalizado. Por ejemplo, numberOfContentToDisplay.

      El nombre y el valor correspondiente para la propiedad se incluyen dentro del archivo XML de definición de widget generado para el widget personalizado.

      Si especifica un nombre de propiedad en el archivo de entrada de patrón, se genera un tipo de entrada de propiedad para la propiedad en el archivo de definición de vista de propiedades. De forma predeterminada, el tipo de entrada generado para la propiedad es PropertyInputText. Puede modificar el archivo de definición de vista de propiedades para cambiar el tipo de entrada predeterminado para satisfacer los requisitos de widget.

      Si no se especifica ninguna propiedad, el código fuente del widget generado crea un widget que visualiza el mensaje 'Hello, world!' cuando el widget se incluye en una página de tienda.

      Como ejemplos de las propiedades configurables que puede establecer para el widget, revise las propiedades que estén disponibles y se utilicen para los widgets, que se proporcionan de forma predeterminada. Para obtener más información, consulte Propiedades de widget de Commerce Composer.

      displayName (property) Sí (si el elemento property se incluye.) El nombre de visualización de una propiedad para el widget personalizado. El nombre de visualización es el nombre de la propiedad que se visualiza en el Management Center. Por ejemplo, Maximum number of content to display.
      inputType (property) No El tipo de entrada para la propiedad en el Management Center. De forma predeterminada, el tipo de entrada generado para la propiedad es PropertyInputText. Puede modificar el archivo de definición de vista de propiedades para cambiar el tipo de entrada predeterminado para satisfacer los requisitos de widget.
      widgetGroup (widget) No
      Si el widget se incluye dentro de un grupo de visualización de widgets que no se proporcione de forma predeterminada, incluya este elemento widgetGroup. Al incluir este elemento, la Transformación JET genera el código fuente para ayudarle a definir el nuevo grupo de visualización de widgets.
      Nota: Si incluye el widget dentro de un nuevo grupo de restricción de widgets, no incluya la información del grupo dentro de este elemento.
      La agrupación de widgets se puede utilizar para determinar qué widgets se muestran en la ventana Añadir widgets a ranuras, en la herramienta Commerce Composer.
      Nota: Si desea incluir el widget en varios nuevos grupos de visualización de widgets, incluya la información para sólo un grupo de visualización en este elemento. La Transformación JET crea el código fuente para definir sólo un grupo de visualización de widgets. Para incluir el widget en más grupos de visualización de widgets, actualice el código fuente generado.
      identifier (widgetGroup) Sí (si el elemento widgetGroup se incluye.) El nombre de referencia externa para el grupo de visualización widgets. Puede utilizar cualquier nombre, aunque éste debe ser exclusivo para la tienda. Por omisión, HCL Commerce incluye los identificadores de grupo de visualización de widgets siguientes:
      • AnyPage
      • CategoryPage
      • SearchPage
      • CatalogEntryPage
      displayName (widgetGroup) Sí (si el elemento widgetGroup se incluye.) El nombre de visualización específico del grupo de visualización de widgets. De forma predeterminada, HCL Commerce incluye los siguientes nombres de visualización de grupo de visualización de widgets:
      • Widgets para cualquier página
      • Widgets de página de categoría
      • Widgets de página de resultados de búsqueda
      • Widgets de página de entrada de catálogo

      Puede incluir varias propiedades para el widget personalizado en el archivo de entrada. Cada una de las propiedades que especifique se incluyen dentro del archivo XML de definición de widget generado. El XML de definición se incluye como el valor para la columna WidgetDefinitionxml en el archivo registerWidgetdef.csv. Si especifica todas las propiedades del widget dentro del archivo de entrada de patrón, puede utilizar la Transformación JET para facilitar la creación del XML de definición para el widget dentro del archivo registerWidgetdef.csv.

    7. Guarde y cierre el archivo.
      En el código siguiente se proporciona un ejemplo de un archivo XML de entrada de patrón actualizado:
      <pageLayout vendor="myCompany" targetFolder="NewWidgetProject">
        <widget>
          <widgetDef identifier="myNewContentRecommendationWidget"  
           UIObjectName="myNewContentRecommendationWidgetObject" 
           displayName="My New Content Recommendation Widget" 
           description="This widget displays marketing content, such as ads, on a store page"
           widgetDisplayGroups="AnyPage,SearchPage" 
           widgetRestrictionGroups="AnyPage,SearchPage" >
            <property name="widgetOrientation"	
             displayName="Widget Orientation"/>
            <property name="numberOfContentToDisplay"	
             displayName="Maximum number of content to display"/>
          </widgetDef>
          </widget>
      </pageLayout>
  4. Utilice la Transformación JET para generar los archivos de código fuente para crear el widget personalizado.
    1. Pulsar el botón derecho del ratón en el archivo XML de entrada. Seleccione Ejecutar como > Ejecutar configuraciones
    2. En el asistente Ejecutar configuraciones, efectúe una doble pulsación en Transformación JET en la lista de filtros. Se visualizan las opciones de configuración para la Transformación JET.
    3. Asegúrese de que el valor del campo Nombre es el nombre del archivo XML de entrada de patrón.
    4. En la pestaña Principal, asegúrese de que el valor del campo Entrada de transformación es la vía de acceso del archivo dentro del espacio de trabajo al archivo XML de entrada de patrón.
      Por ejemplo, NewWidgetProject\NewWidgetPatternInputFile.xml
    5. En la sección Transformación, seleccione com.ibm.commerce.toolkit.internal.pattern.pageLayout para el valor del campo ID.
      Nota: com.ibm.commerce.toolkit.internal.pattern.pageLayout_9.0.0.0.zip y com.ibm.commerce.toolkit.internal.pattern.rest_9.0.0.0.zip se encuentran en la carpeta ${WCDE_install}/setup/plugins. Descomprima estos archivos y mueva manualmente los archivos JAR a la carpeta ${RAD_install}/plugins para hacer que el ID esté disponible.
      Se trata de un método alternativo para versiones anteriores de HCL Commerce 9.
      1. Desde el kit de herramientas de versión 8, copie {WCDE_V8Install}/setup/plugins/com.ibm.commerce.toolkit.internal.pattern.pageLayout.zip en la carpeta {WCDE_V9Install}/setup/plugins de la versión 9 Toolkit.
      2. Ejecute el script setupPlugins.bat desde la carpeta {WCDE_V9Install}/bin.

      Para obtener más información, consulte http://www-01.ibm.com/support/docview.wss?uid=swg1JR59956.

    6. Opcional: Especifique el nivel de gravedad para el registro Mostrar mensajes. El valor predeterminado es información.
    7. Haga clic en Aplicar > Ejecutar.
      La Transformación JET genera los directorios de archivos y los archivos para el widget personalizado en la ubicación especificada en el parámetro targetFolder en el archivo XML de entrada de patrón.
    8. Verifique que la Transformación JET ha creado los siguientes directorios y archivos.
      Donde
      vendor
      El valor del parámetro vendor dentro del archivo XML de entrada de patrón.
      identifier
      El valor del parámetro identifier dentro del archivo XML de entrada de patrón.
      UIObjectName
      El valor del parámetro UIObjectName dentro del archivo XML de entrada de patrón.
      target_folder
      La carpeta o el proyecto especificado como valor para el parámetro targetFolder en el archivo XML de entrada de patrón. Si no ha especificado un valor para el parámetro targetFolder, la target_folder es la carpeta o el proyecto donde se encuentra el archivo XML de entrada de patrón.
      WidgetGroupIdentifier
      El valor del elemento identifier dentro elemento widgetGroup del archivo XML de entrada de patrón.
      Si la Transformación JET no ha creado los archivos, asegúrese de que ha incluido todas las propiedades obligatorias dentro del archivo de entrada de patrón y que el archivo de patrón se ha estructurado correctamente. A continuación, vuelva a ejecutar la Transformación JET.
      Archivos de elementos del escaparate para definir el widget
      identifier.jsp
      Ubicación del archivo - target_folder\Stores\WebContent\Widgets-vendor\com.vendor.commerce.store.widgets.identifier\identifier.jsp
      identifier_Data.jspf
      Ubicación del archivo - target_folder\Stores\WebContent\Widgets-vendor\com.vendor.commerce.store.widgets.identifier\identifier_Data.jspf
      identifier_UI.jspf
      Ubicación del archivo - target_folder\Stores\WebContent\Widgets-vendor\com.vendor.commerce.store.widgets.identifier\identifier_UI.jspf
      MyWidgetText_en_US.properties
      Ubicación del archivo - target_folder\Stores\WebContent\Widgets-vendor\Properties\MyWidgetText_en_US.properties
      MyWidgetText.properties
      Ubicación del archivo - target_folder\Stores\WebContent\Widgets-vendor\Properties\MyWidgetText.properties
      Directorios de archivos adicionales para contener elementos del escaparate:
      • target_folder\Stores\WebContent\Widgets-vendor\com.vendor.commerce.store.widgets.identifier\javascript
      • target_folder\Stores\WebContent\Widgets-vendor\Common
      • target_folder\Stores\WebContent\Widgets-vendor\images
      Archivos del programa de utilidad de carga de datos para registrar y suscribir tiendas al widget
      registerWidgetdef.csv
      Ubicación del archivo - target_folder\DataLoad\widget\registerWidgetdef.csv
      subscribeWidgetDef.csv
      Ubicación del archivo - target_folder\DataLoad\widget\subscribeWidgetDef.csv
      wc-dataload-widget.xml
      Ubicación del archivo - target_folder\DataLoad\widget\wc-dataload-widget.xml
      wc-dataload-env.xml
      Ubicación del archivo - target_folder\DataLoad\wc-dataload-env.xml
      wc-loader-registerWidgetdef.xml
      Ubicación del archivo - target_folder\DataLoad\wc-loader-registerWidgetdef.xml
      wc-loader-subscribeWidgetdef.xml
      Ubicación del archivo - target_folder\DataLoad\wc-loader-subscribeWidgetdef.xml
      Archivos para añadir soporte del Management Center para el widget
      PageLayoutLOB_en_US.properties
      Ubicación del archivo - target_folder\LOBTools\src\com\vendor\commerce\pagelayout\client\lobtools\properties\PageLayoutLOB_en_US.properties
      PageLayoutLOB.properties
      Ubicación del archivo - target_folder\LOBTools\src\com\vendor\commerce\pagelayout\client\lobtools\properties\PageLayoutLOB.properties
      WidgetObjectDefinition.xml
      Ubicación del archivo - target_folder\LOBTools\WebContent\config\vendor\pagelayout\widgetDefinitions\UIObjectName\WidgetObjectDefinition.xml
      WidgetPropertiesView.xml
      Ubicación del archivo - target_folder\LOBTools\WebContent\config\vendor\pagelayout\widgetDefinitions\UIObjectName\WidgetPropertiesView.xml