Creación de servicio oData vía SEGW #2

En el artículo anterior vimos las dos formas de creación de un servicio oData a partir de una vista SAP ABAP CDS:

  • Crear servicio oData de manera automática a partir de la anotación CDS @oData.publish:true
  • Crear servicio oData de manera manual a través de la transacción SEGW

Vimos en detalle como crear el servicio oData a través de la anotación SAP CDS y como añadirlo en el listado de servicios publicados de nuestro SAP Gateway. En este artículo, vamos a ver como podemos crear el servicio oData de manera manual a través de la transacción SEGW para llegar al mismo lugar que con la anotación CDS. Esta forma de crear el servicio nos permitirá conocer más el detalle de como se estructura el servicio y podremos añadir lógica a nuestro servicio oData como veremos en artículos posteriores.

Creando servicio oData de manera manual

Para poder crear nuestro servicio oData de manera manual deberemos acceder a la transacción SEGW. Desde esta transacción, pulsaremos en el botón → Crear.

Creando proyecto oData

El primer paso es crear un proyecto en nuestro SAP Gateway Service Builder. Para ello, indicamos un nombre, una descripción, un paquete y un usuario responsable. Una vez cumplimentado los datos, pulsamos en el botón → Confirmar (check verde).

Creando servicio oData

Una vez creado el proyecto, veremos en el árbol de la izquierda de nuestra herramienta SEGW un nodo para el proyecto. El siguiente paso es crear una entidad para nuestra vista CDS, para ello pulsamos botón derecho sobre el directorio Data Model → Reference → Data Source.

Creando servicio oData

Con este paso, lo que vamos a hacer es crear una entidad en nuestro servicio oData a partir de nuestra vista ABAP CDS.

Creando servicio oData

Indicamos el nombre de nuestra vista CDS y pulsamos en el botón → Next. Finalizamos el proceso y de esta forma ya habremos importado nuestra vista ABAP CDS a nuestro proyecto del servicio oData.

Una vez importado, podemos comprobar que se habrá creada un nuevo directorio en nuestro proyecto llamado ‘Data Source References’. En este directorio, estarán ubicadas todas las entidades asociadas a vistas ABAP CDS del proyecto. Cabe destacar, que aunque este es un ejemplo sencillo, en un mismo proyecto podríamos tener diferentes vistas ABAP CDS asignadas, como veremos más adelante cuando añadamos a nuestros filtros ayudas de búsqueda, por ejemplo.

Consultando entidad oData

Si accedemos al directorio ‘Properties’ de nuestra Entidad ZCDS_EJEMPLO_BLOG, podremos comprobar los diferente campos expuestos en nuestra vista ABAP CDS, así como los tipos que automáticamente ha deducido de la vista SQL.

Estructura de la entidad oData creada a partir de la vista ABAP CDS

Observamos el listado de todos los campos expuestos en nuestra vista ABAP CDS. Podemos ver qué campos son clave, que tipo se ha asignado a cada uno, e incluso en la columna ‘Semantics’ podemos ver como se indica que hay dos campos que se corresponde a un tipo de moneda y a una unidad de medida.

Aquí podemos forzar el tipo de alguno de los campos directamente en el servicio, incluso cambiar el texto del campo o añadir propiedades nuevas. Además, , existen varias columnas con diferentes checkbox para indicar que un campo es ordenable, filtrable, qué pueda ser nulo…. estas características las veremos en profundidad cuando creemos la aplicación SAP Fiori.

Publicando el servicio oData

Ya hemos creado nuestro proyecto en la SEGW, hemos importado nuestra vista ABAP CDS, y solo falta publicar el servicio oData para que sea consumible desde SAP Web IDE o cualquier herramienta de desarrollo de aplicaciones SAP Fiori. Para ello, generamos el proyecto pulsando en el botón → Generate Runtime Objects.

Generando servicio oData
Generando servicio oData

Confirmamos la generación del servicio oData e indicamos el paquete. De esta forma, el servicio se habrá creado en nuestro SAP Gateway y ya podremos añadirlo al listado de servicios publicados.

Como hicimos en el artículo anterior, donde creamos el servicio a partir de la anotación CDS, accedemos a la transacción /n/IWFND/MAINT_SERVICE y pulsar sobre el botón → Añadir servicio.

Publicando servicio oData

Buscamos el servicio escribiendo el comienzo del nombre de nuestro proyecto oData y pulsamos sobre el servicio listado. Exactamente igual que en el ejemplo de creación del servicio mediante anotación CDS, pulsamos en Confirmar (check verde) para agregar el servicio y, de este modo, finalizamos el proceso.

Si revisamos de nuevo nuestro listado en la transacción /IWFND/MAINT_SERVICE, ya podremos comprobar que nuestro servicio oData está publicado y que podemos ejecutarlo mediante el Cliente SAP Gateway.

Publicando servicio oData
Probando servicio oData

Y de este modo, hemos creado de manera manual un servicio oData a partir de nuestra vista ABAP CDS. El resultado obtenido es el mismo que obtenemos, para este caso, con la anotación CDS @oData.publish: true. No obstante, este modo de crear el servicio oData nos permitirá realizar modificaciones sobre el servicio, así como ampliaciones de funcionalidad, teniendo más control sobre nuestro servicio oData. Es útil crear el servicio oData de manera manual para conocer los entresijos de la transacción SEGW, ya que será de vital importancia cuando necesite crear proyectos más complejos más allá de un simple listado de vuelos.

Deja un comentario