Cómo Crear una OData en SAP y Publicarla

oData en SAP permite la creación de servicios web RESTful para exponer y consumir datos de manera eficiente entre sistemas

ABAP CLOUDDESARROLLOBTP

Fernando Rojas

1/9/20255 min leer

En el mundo de la integración de aplicaciones empresariales, SAP es una de las plataformas más populares. Uno de los métodos más efectivos para exponer y consumir datos desde SAP es a través de servicios OData (Open Data Protocol). OData es un protocolo basado en REST que permite a las aplicaciones acceder a datos y servicios de manera sencilla y estandarizada. En este blog, te mostraré cómo crear una OData en SAP y publicarla para que pueda ser consumida por otros sistemas o aplicaciones.

¿Qué es OData?

OData (Open Data Protocol) es un protocolo basado en HTTP que permite el intercambio de datos entre sistemas. Se utiliza principalmente en aplicaciones web y móviles para obtener y enviar datos de manera sencilla. OData soporta operaciones CRUD (Crear, Leer, Actualizar, Eliminar), lo que lo convierte en una excelente opción para exponer datos desde sistemas backend, como SAP, de forma sencilla.

Paso 1: Preparación del Entorno en SAP

Antes de comenzar a crear el servicio OData, es importante asegurarte de que tienes configurado un entorno adecuado en SAP. En SAP, los servicios OData se crean generalmente en el sistema SAP Gateway, que es el componente que facilita la exposición de datos a través de servicios RESTful.

Requisitos previos:

• Acceso a SAP NetWeaver Gateway.

• Conocimiento básico de ABAP (para crear modelos y controladores de OData).

• Derechos de administrador para poder crear y configurar el servicio OData.

Paso 2: Crear el Proyecto OData en SAP Gateway
2.1 Iniciar el SAP Gateway

Para comenzar, accede al sistema SAP y navega a la transacción /IWFND/MAINT_SERVICE. Esta transacción te permitirá gestionar los servicios OData en SAP Gateway.

2.2 Crear un Proyecto de OData

Dentro de la transacción /IWFND/MAINT_SERVICE, selecciona la opción para crear un nuevo proyecto. Esto te llevará a una pantalla donde podrás definir el nombre y la descripción de tu servicio OData. Asegúrate de proporcionar un nombre único para evitar conflictos con otros servicios.

2.3 Crear el Servicio

A continuación, selecciona "Create Service" y asocia el servicio con un proyecto de desarrollo (si es necesario). El servicio estará basado en un modelo de datos que podrás definir más adelante.

Paso 3: Definir el Modelo de Datos (Data Model)

En SAP Gateway, los datos que se van a exponer a través del servicio OData se definen mediante un modelo de datos. Esto se puede hacer utilizando SAP Gateway Service Builder.

3.1 Iniciar SAP Gateway Service Builder

La transacción utilizada para crear y gestionar los servicios OData es SEGW. Una vez dentro de la transacción SEGW, selecciona "Nuevo Proyecto" y proporciona un nombre para el proyecto OData.

3.2 Definir el Modelo de Datos

En el Service Builder, crea un Modelo de Datos en el que defines las entidades (tablas, vistas o estructuras) que se van a exponer a través de OData. Este modelo de datos estará basado en las entidades del sistema SAP que deseas exponer, como una tabla de clientes o productos.

• Entidad: Cada entidad representa una colección de objetos que quieres exponer a través del servicio. Por ejemplo, puedes tener una entidad llamada Clientes que contenga todos los clientes del sistema.

• Propiedades: Dentro de cada entidad, puedes definir propiedades. Por ejemplo, la entidad Clientes podría tener propiedades como ID, Nombre, Dirección, entre otras.

3.3 Crear la Asociación y Navegación

Si las entidades están relacionadas entre sí, deberás definir asociaciones y rutas de navegación para permitir la consulta entre ellas. Por ejemplo, si un cliente tiene varias órdenes, deberías crear una asociación entre las entidades Clientes y Órdenes.

Paso 4: Crear el Controlador OData

El siguiente paso es crear el Controlador OData, que será responsable de manejar las solicitudes (GET, POST, PUT, DELETE) del servicio. En esta etapa, usarás el lenguaje ABAP para escribir las lógicas de negocio que extraerán los datos del sistema SAP y los devolverán al cliente.

4.1 Crear las Funciones en el Controlador

El controlador se encarga de procesar las peticiones a través de métodos. Algunos de los métodos más comunes que puedes necesitar son:

  • GET_ENTITY: Para recuperar una entidad individual.

  • GET_ENTITYSET: Para recuperar un conjunto de entidades.

  • CREATE_ENTITY: Para crear una nueva entidad.

  • UPDATE_ENTITY: Para actualizar una entidad existente.

  • DELETE_ENTITY: Para eliminar una entidad.

Cada uno de estos métodos debe ser implementado en ABAP. Aquí tienes un ejemplo básico de cómo se podría implementar un método GET_ENTITYSET:

METHOD get_entityset.

DATA: lt_clients TYPE TABLE OF zclient.

SELECT * FROM zclient INTO TABLE lt_clients.

LOOP AT lt_clients INTO DATA(ls_client).

APPEND ls_client TO et_entityset.

ENDLOOP.

ENDMETHOD.

Este código básico recupera todos los clientes de la tabla zclient y los devuelve como un conjunto de entidades en el servicio OData.

4.2 Activar el Controlador

Una vez que hayas creado el controlador y las funciones necesarias, activa el servicio para que pueda ser utilizado.

Paso 5: Publicar el Servicio OData

Una vez que el servicio OData está listo, el siguiente paso es publicarlo para que esté disponible para los consumidores. Para hacer esto, debes registrarlo en el SAP Gateway.

5.1 Registrar el Servicio en SAP Gateway

Para registrar el servicio, sigue estos pasos:

1. Navega a la transacción /IWFND/MAINT_SERVICE.

2. Selecciona el proyecto de OData y haz clic en "Registrar".

3. Proporciona el nombre del servicio y los detalles de configuración necesarios.

5.2 Configurar los Permisos de Acceso

Asegúrate de que los usuarios que necesiten acceder al servicio OData tengan los permisos adecuados. Esto se puede hacer a través de roles y autorizaciones en el sistema SAP.

5.3 Activar el Servicio

Una vez que hayas completado el registro y configurado los permisos, activa el servicio para que esté disponible para los clientes. Ahora, el servicio estará disponible para ser consumido a través de solicitudes HTTP.

Paso 6: Consumir el Servicio OData

Una vez que el servicio esté publicado, cualquier cliente que soporte el protocolo OData (como SAP Fiori, aplicaciones móviles o aplicaciones de terceros) podrá consumirlo mediante peticiones HTTP.

La URL típica para acceder a un servicio OData en SAP tiene la siguiente estructura:

https://<SAP_Gateway_Host>/sap/opu/odata/sap/<Service_Name>

Por ejemplo, si creaste un servicio llamado ZCLIENTS, la URL sería:

https://<SAP_Gateway_Host>/sap/opu/odata/sap/ZCLIENTS

Desde esta URL, los consumidores pueden realizar operaciones como obtener datos, crear nuevos registros o actualizar los existentes.

Conclusión

Crear y publicar un servicio OData en SAP es un proceso que requiere varios pasos, pero con esta guía paso a paso, deberías ser capaz de crear tu propio servicio OData y hacerlo accesible para aplicaciones externas. Este tipo de integración facilita la exposición de datos de SAP a aplicaciones web, móviles o de terceros, haciendo que la plataforma SAP sea aún más flexible y accesible.

Si eres nuevo en SAP Gateway, este proceso puede parecer desafiante al principio, pero una vez que te familiarices con los conceptos y herramientas, verás que es una forma poderosa de crear servicios modernos para tus aplicaciones empresariales.

¡Sigue estos pasos y empieza a integrar tus datos SAP con facilidad!

Ing. Fernando Rojas Trejo

Consultor SAP-ABAP

Experiencia en el área de Tecnología de la información. Experto en el desarrollo e implementación de aplicaciones. Visión estratégica en la implementación de nuevos esquemas operativos y políticas. Con un claro enfoque de servicio al cliente al proveer soporte para el uso de aplicaciones. Pensamiento estratégico / dinámico y con sentido de urgencia.