Introducción a OData

Si estás empezando en el mundo de SAP y quieres entender cómo se comunican las aplicaciones modernas (Fiori, móviles, sistemas externos) con tu sistema SAP, hay un concepto que tienes que dominar sí o sí: oData.

Entender bien OData es fundamental porque es la base de cómo SAP expone datos al exterior en arquitecturas modernas.

En este artículo vas a aprender:

  • Qué es OData realmente
  • Cómo se relaciona con REST y HTTP
  • Qué es SAP Gateway y qué papel juega
  • Qué tipos de operaciones existen HTTP (GET, POST, PUT, PATCH, etc.)
  • Conceptos clave que necesitas dominar

¿Qué es OData?

OData (Open Data Protocol) es un protocolo web estándar que permite exponer y consumir datos a través de servicios web basados en HTTP. Es decir, es una forma de “abrir” los datos de SAP para que cualquier aplicación (Fiori, Power BI, una app móvil, otro SAP o sistema externo que no tenga SAP) pueda consultarlos o modificarlos.

OData convierte los datos de SAP en servicios accesibles vía web.

Características principales de OData

Antes (sin OData)Ahora (con OData)
Integraciones complejas con RFC, BAPI, IDocServicios web estándar y fáciles de consumir
Formatos propietarios y difíciles de interpretarJSON y XML (formato universal)
Cada sistema necesitaba un conector especialCualquier sistema con HTTP puede conectarse
Desarrollo lento y con mucho códigoGeneración automática de servicios

Casos de uso típicos:

  • Aplicaciones SAP Fiori (todas se comunican vía OData)
  • Portales externos que necesitan mostrar datos de SAP
  • Aplicaciones móviles que consultan SAP
  • Integraciones con sistemas cloud (Azure, AWS, Salesforce)
  • Dashboards en Power BI o Tableau

Tecnologías en las que se basa OData

OData no inventa nada nuevo. Utiliza tecnologías ya consolidadas:

TecnologíaRolEjemplo
HTTP / HTTPSProtocolo de comunicaciónGET /sap/opu/odata/sap/Z_MI_SERVICIO/Clientes
URIIdentifica el recursohttp://miservidor:8000/sap/opu/odata/...
JSONFormato de datos (moderno){"Nombre": "Juan", "Edad": 30}
XMLFormato de datos (tradicional)<Nombre>Juan</Nombre><Edad>30</Edad>
Métodos HTTPAcciones permitidasGET, POST, PUT, PATCH, DELETE

Esto lo hace muy potente porque cualquier lenguaje de programación (JavaScript, Python, Java, C#, ABAP) puede consumir OData porque todos soportan HTTP y JSON/XML.

¿Qué es SAP Gateway?

SAP Gateway (también conocido como SAP NetWeaver Gateway) es el componente de SAP que permite exponer datos y funcionalidades de SAP como servicios OData. Es el “puente” entre SAP y el mundo exterior.

¿Qué hace exactamente SAP Gateway?

  1. Recibe peticiones HTTP (ej. GET /Clientes)
  2. Interpreta la petición OData
  3. Llama al código ABAP correspondiente (que puede leer tablas, llamar BAPIs, ejecutar RFC)
  4. Convierte la respuesta a JSON o XML
  5. Devuelve la respuesta al cliente

Componentes técnicos de SAP Gateway

ComponenteFunción
Service Builder (SEGW)Herramienta para crear servicios OData en ABAP
Model Provider Class (MPC)Define la estructura de los datos (modelo)
Data Provider Class (DPC)Implementa la lógica de negocio (CRUD)
RuntimeProcesa las peticiones en tiempo real
Registro de serviciosPublica el servicio para que sea accesible (/sap/opu/odata/…)

¿Qué es REST?

Para entender OData, primero hay que entender REST. OData sigue los principios REST, es decir, es un protocolo construido sobre REST.

REST (Representational State Transfer) es un estilo arquitectónico para diseñar servicios web basados en HTTP. No es un estándar ni un protocolo, es un conjunto de buenas prácticas para crear APIs usando HTTP.

Principios de una arquitectura REST

Para que una API sea RESTful, debe cumplir estos principios:

PrincipioSignificado¿Lo cumple OData?
Recursos identificablesCada cosa tiene una dirección única (URI)✅ Sí (/Clientes('123'))
Interfaz uniformeLas operaciones se hacen con métodos HTTP estándar✅ Sí (GET, POST, etc.)
Sin estado (Stateless)El servidor no guarda información entre peticiones✅ Sí (cada petición es independiente)
CacheableLas respuestas pueden guardarse temporalmente✅ Sí
Cliente-ServidorCliente y servidor están separados✅ Sí
Capas (Layered)Pueden haber intermediarios (proxies, firewalls)✅ Sí

Operaciones HTTP en OData (CRUD)

OData utiliza los métodos HTTP estándar para realizar operaciones sobre los datos. Se corresponden directamente con las operaciones CRUD (Create, Read, Update, Delete).

Operación CRUDMétodo HTTPDescripción¿Devuelve datos?
Read (Leer)GETSe usa para obtener información. Obtiene uno o varios recursos✅ Sí
Create (Crear)POSTCrea un nuevo recurso✅ Sí (el recurso creado)
Update total (Actualizar todo)PUTReemplaza completamente un recurso❌ No (o el recurso actualizado)
Update parcial (Modificar algunos campos)PATCHModifica solo los campos indicados❌ No (o el recurso actualizado)
Delete (Borrar)DELETEElimina un recurso❌ No

Conceptos clave de OData que debes dominar

ConceptoExplicaciónEjemplo
EndpointLa URL donde está disponible el servicio/sap/opu/odata/sap/Z_MI_SERVICIO
RecursoCada conjunto de datos que se puede consultarClientes, Pedidos, Productos
Entity SetConjunto de entidades del mismo tipo (como una tabla)Clientes (todos los clientes)
EntityUna instancia concretaCliente('1000')
PropertyCada campo o atributo de una entidadNombre, Ciudad, Teléfono
KeyCampo que identifica de forma única una entidadClienteId
NavigationRelación entre entidades (como foreign key)Cliente('1000')/Pedidos
Query StringParámetros para filtrar, ordenar, paginar?$filter=Ciudad eq 'Madrid'

OData es la base del desarrollo moderno en SAP, especialmente en entornos como Fiori y SAP Gateway.

Te permite:

  • Exponer datos de forma estándar
  • Integrarte con otros sistemas
  • Construir aplicaciones modernas

Entender estos conceptos (REST, HTTP, SAP Gateway) es clave para avanzar en ABAP HANA y desarrollo orientado a servicios.