Guía de aprendizaje: Crear un módulo de servicio BOD

En esta guía de aprendizaje, desarrollará un módulo de servicio de proyecto. Los servicios que se proporcionan con el módulo son: Get y Change. Como una parte de la creación del módulo de servicio, debe diseñar el modelo lógico (un nombre) y el modelo físico (un esquema de base de datos) dependiendo de los requisitos empresariales.

El módulo de servicio de BOD del proyecto almacena y recupera datos, y proporciona lógica para realizar operaciones en un objeto de negocio o modelo lógico, al que se hace referencia como un nombre. El nombre que va a definir en esta guía de aprendizaje se denomina el nombre Project.

Esta guía de aprendizaje proporciona un ejemplo, pero puede utilizar los métodos descritos para implementar cualquier lógica de negocio.

Las versiones anteriores de HCL Commerce se basaban en el lenguaje de especificación y descripción (SDL) para crear módulos de servicio. Puesto que la versión 9 utiliza la API de persistencia de Java, esta guía de aprendizaje muestra cómo utilizar BOD para llamar a JPA en HCL Commerce. Para reducir la complejidad y enfatizar cómo funcionan las operaciones de JPA en la versión 9, la guía de aprendizaje definirá una sola tabla y un nombre.

Cualquier servicio que utilice un esquema XML requiere una definición de modelo lógica. Para HCL Commerce, el modelo lógico se representa como nombres y partes de nombres. Los nombres son los objetos de negocio de la aplicación. Las partes de los nombres son las partes de dichos objetos que reciben nombres distintos para que se puedan manejar de forma independiente del nombre. Los nombres definen el nombre de cada elemento de datos en el modelo lógico, y asignan ese nombre a un tipo de datos. Este tipo de datos puede ser un tipo de esquema XML primitivo como, por ejemplo, booleano, o un tipo complejo que se ha creado de elementos de datos. Por ejemplo, ProjectExternalIdentifierType contiene Name (representados por un tipo String) y StoreIdentifier (representados como a _wcf:StoreIdentifierType). _wcf:StoreIdentifierType es una construcción de tipo complejo predefinida que se puede compartir entre todos los nombres. Se define en el archivo IdentifierTypes.xsd. HCL Commerce proporciona algunas construcciones de tipo complejo predefinidas, que comparten todos los nombres. Para utilizar las construcciones de tipos predefinidas comunes, debe importar el archivo al archivo Project.xsd. El siguiente ejemplo de código muestra cómo importar estas construcciones de tipos.
<import namespace="http://www.ibm.com/xmlns/prod/commerce/9/foundation"
schemaLocation="../../../../IBM/Commerce/Resources/Components/IdentifierTypes.xsd" />
Nota: Para reducir la complejidad, HCL Commerce utiliza sus propios nombres simplificados, tipos definidos y tipos de esquema XML primitivos, en lugar de utilizar los nombres y los tipos base que proporciona OAGIS.

El módulo de servicio que crea en esta guía de aprendizaje contiene un nombre: Project. Para esta guía de aprendizaje, estos nombres Project están definidos previamente. El archivo Project.xsd, que define los nombres, se proporciona como parte del archivo ProjectServices.zip de ejemplo.

En esta guía de aprendizaje, las definiciones de los dos nombres contienen información que figura en las tablas siguientes. Las tablas listan los perfiles de acceso que incluyen la información. Los datos incluidos en el perfil de resumen se muestran en la vista de resumen y los datos incluidos en el perfil Detalles se muestran en la vista de detalles.

Nombre Project

El nombre Project representa el modelo de datos lógico del nuevo módulo de servicio que se crea. La definición de este modelo lógico es un paso de desarrollo clave porque este modelo se expone a cualquier cliente que utilice el servicio Project. El modelo también se utiliza ampliamente en el modelo de programación BOD para la capa de lógica de negocio de HCL Commerce. El diagrama siguiente muestra la definición del esquema para el nombre Project:
Los diagramas siguientes muestran la estructura del nombre Project:
Para gestionar la información del nombre Project que se crea en esta guía de aprendizaje, implemente los servicios Get y Change para el nuevo módulo de servicio.
Servicios Get
Puede utilizar el servicio Get para recuperar la información de los nombres Project que se basa en una expresión de búsqueda XPath. En esta guía de aprendizaje se muestra cómo dar soporte a las siguientes expresiones XPath:
 Find Project by Project UniqueID:
        /Project[ProjectIdentifier[(UniqueID='10001')]]
Servicios Change
El servicio de cambios actualiza la información del proyecto para un nombre Project. El servicio Change puede actualizar el projectName (puede escribir el servicio de añadir y eliminar por sí mismo).

Objetivos de aprendizaje

Después de completar esta guía de aprendizaje, debería estar familiarizado con los siguientes conceptos:
  • La infraestructura de mandatos de BOD de HCL Commerce
  • Tareas de ampliación y personalización.
  • Definiciones de modelo lógico.
  • Java Emitter Template.
  • Objetos de datos de servicio.
  • Eclipse Modeling Framework.
  • La infraestructura de JPA
  • El Mediador de objetos de negocio.
Después de completar esta guía de aprendizaje debería poder realizar las siguientes tareas:
  • Crear una tienda de sitios ampliados con un catálogo personalizado.
  • Revisar el nombre Project.
  • Personalizar la capa física.
  • Generar el código base del módulo de servicio Project.
  • Añadir mensajes de excepción específicos de un idioma en los archivos de propiedades.
  • Importar mediadores.
  • Configurar la capa de servicios de datos para el módulo de servicio Project.

Tiempo necesario

El tiempo previsto para completar esta guía de aprendizaje es de dos horas. La guía de aprendizaje tarda más tiempo si se exploran conceptos relacionados con la misma.

Nivel de conocimientos

Esta guía de aprendizaje va dirigida a los desarrolladores avanzados de HCL Commerce responsables de crear y personalizar los servicios de HCL Commerce. Para completar esta guía de aprendizaje, asegúrese de estar familiarizado con los términos y conceptos siguientes:
  • Lenguaje de programación Java
  • XPath
  • XSD
  • Servicios web
  • XML
  • Servicios del HCL Commerce
  • Infraestructura de JPA
  • Nombres
  • Bases de datos relacionales
  • SQL

Requisitos del sistema

Antes de comenzar esta guía de aprendizaje, asegúrese de haber completado las siguientes tareas:

Recursos de guía de aprendizaje

Para completar esta guía de aprendizaje, se utilizan los siguientes recursos. Antes de iniciar esta guía de aprendizaje, asegúrese de que ha descargado y extraído el archivo comprimido siguiente en un directorio temporal, como C:\Temp:
Nota: Si está completando esta guía de aprendizaje como requisito previo para la guía de aprendizaje de personalización de Management Center, "Añadir una herramienta al Management Center", puede importar los proyectos dentro del archivo comprimido Recipe_service_source.zip en el entorno de desarrollo. Estos archivos incluyen el código fuente para el módulo de servicio BOD completado para los servicios de recetas de ejemplo. Si desea obtener más información sobre la creación de un módulo de servicio, no obstante, se recomienda que complete toda la guía de aprendizaje, en lugar de importar estos proyectos.

Si importa estos proyectos, aún deberá completar el paso para actualizar las dependencias de construcción del módulo de servicio. Para obtener más información, consulte Generación de los proyectos del módulo de servicio Project.