El protocolo OData se convirtió en un estándar de OASIS con el lanzamiento de OData 4.0. SAP NetWeaver 7.50 SP 04 inició el soporte para OData 2.0 y OData 4.0.
Empezando con SAP S/4HANA 2020 FSP1, Odatos 4.0 también es compatible con el Modelo de programación de aplicaciones ABAP RESTful. En versiones anteriores de SAP S/4HANA y SAP Business Suite EHP8, solo se podían crear servicios OData 4.0 utilizando implementaciones basadas en código de las API del marco SAP Gateway OData 4.0.
Veamos qué hay de nuevo o diferente con OData 4.0 en SAP Gateway. En esta publicación, nos concentraremos en las características de OData 4.0 que son más importantes para los productos SAP. Puede encontrar una lista completa de los cambios en OData 4.0 en comparación con OData 2.0 en la documentación en www.odata.org/documentation.
Para preparar el escenario, resaltemos el principio rector del paradigma OData 4.0: la reducción de datos. Esta reducción se logra mediante un lenguaje de consulta más potente y un protocolo JSON nuevo y optimizado. Al mismo tiempo, puede aprovechar metadatos más completos que en OData 2.0.
JSON es el formato recomendado y predeterminado utilizado por los servicios OData 4.0. El formato JSON ha sido rediseñado por completo en OData 4.0. La cantidad de datos transferidos por cable se ha reducido al mínimo. Se han eliminado todos los metadatos innecesarios para que la carga útil contenga más o menos pares nombre-valor. Con este enfoque, puede lograr una reducción en el tamaño de la carga útil de hasta un 60 por ciento, como se muestra a continuación.

A través de las capacidades mejoradas del lenguaje de consulta en OData 4.0, puede solicitar exactamente el subconjunto de datos deseado con menos viajes de ida y vuelta que en OData 2.0. Veamos dos ejemplos de las capacidades del nuevo lenguaje de consulta.
Las opciones de consulta analítica, como groupby, también forman parte de OData 4.0, como se muestra en la siguiente figura. Por lo tanto, el conjunto de resultados puede ser significativamente más pequeño que la fuente. Un ejemplo se muestra en la siguiente sintaxis:
GET Sales?$apply=groupby((Product),aggregate(Amount with sum as Total))

En OData 4.0, es posible filtrar entidades expandidas en cada nivel. Considere un escenario en el que desea recuperar uno o más socios comerciales ubicados en una ciudad (por ejemplo, Walldorf) junto con aquellos pedidos de ventas que tienen un monto bruto mayor que un cierto umbral, con el objetivo de recuperar solo aquellos artículos de pedidos de ventas que contienen el producto HT-1041.
La solicitud correspondiente en OData 4.0 aparece de la siguiente manera:
/BusinessPartnerList?$filter=Address/City eq 'Walldorf'&
$expand=BP_2_SO($filter=GrossAmount ge 1100;
$expand=SO_2_SOITEM($filter=Product/ProductID eq 'HT-1041'))
Los resultados simplificados de la solicitud se muestran en esta figura, donde hemos marcado los valores que se ajustan a las condiciones del filtro.

Mientras que en OData 2.0, solo podía tener propiedades de navegación que apuntaran desde una entidad configurada a una segunda entidad configurada en el mismo servicio OData, ahora puede tener propiedades de navegación que apunten a una entidad de un servicio al que se hace referencia.
La navegación entre servicios se puede utilizar, por ejemplo, para reutilizar servicios. Considere un servicio OData utilizado como ayuda para la búsqueda que otros servicios OData pueden aprovechar. La fragmentación de los servicios también ayuda a acelerar las aplicaciones de los consumidores porque permite la carga diferida de enormes modelos de servicios.
Existe una clara separación entre solicitudes modificables y no modificables que no se pueden expresar mediante solicitudes CRUD-Q normales. Por el contrario, el nuevo elemento edm:Action define la firma de una acción que describe una solicitud de modificación que va más allá de una simple solicitud CRUD, y el elemento edm:Function define la firma de una función que se puede utilizar para consultar datos de una manera que no se puede expresar simplemente con una opción de consulta clásica de OData.
En OData 4.0, los vocabularios y las anotaciones juegan un papel importante. SAP Gateway ya admite anotaciones específicas de SAP, como sap:updatable, sap:creatable, etc., y también admite anotaciones OData 4.0.
Nota del editor: esta publicación ha sido adaptada de una sección del libro. Pasarela SAP y OData de Carsten Bönnen, Ludwig Diehl, Volker Drees, André Fischer y Karsten Strothmann.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073
