What is OData
OData (Open Data Protocol) is a REST-based protocol to query and update data based on existing standard web technologies like HTTP, XML and JSON. It is even sometimes referred to as “SQL for the Web” as it allows you to define complex queries on relational structures to easily access and traverse data in your SAP databases. SAP Fiori elements uses OData to create apps that follow several common floorplans.
In contrast to using plain RESTful APIs, OData provides metadata to describe the structures and datatypes you are accessing, and enriches the data itself with additional machine-readable metadata for best consumption through generic tools and frontend clients. This leaves the developer to focus on the business logic, rather than bothering with the details of the backend access.
The first OData version was published by Microsoft in 2007. But, the next version 2 became the first widely adopted mainstream release. It was followed by an almost unnoticed version 3 and then replaced by the latest version 4, which incorporated many improvements based on the learnings from version 2 and 3. It had a generally slow start and took some time to really take off, but, in contrast to version 2 (that was only a Microsoft Open Specification Promise, OSP), OData v4 is now an approved standard by OASIS and ISO and, as such, can be expected to gain much more traction in the professional developer community and business world.
OData v4 comes with a variety of benefits over version 2, among them:
- Better condensed metadata, saving 10-60% data volume after compression
- Better control of the required data by more sophisticated query, sorting and filter mechanisms, multi-level expands etc., and so avoiding unnecessary roundtrips and reducing number of calls and data volume to transfer
- Adding advanced analytical capabilities to the set of possible queries
- Allowing the client to easily access multiple services at the same time in order to tear down service barriers. Lazy loading of metadata will prevent unnecessary access of unneeded metadata
- Improved data types to better fit the needs of business applications
Why it’s important for SAP
SAP uses OData as a standard remote protocol for new client applications, especially web browser-based UIs and native mobile apps, to access the highly structured data of the databases our customers typically use. Highly tailored OData services provide efficient access to the exact data an application needs for a given purpose.
Using OData v4 will allow us to improve the efficiency of business applications, both by reducing the amount of data that needs to be transferred in overall fewer calls, and by leveraging the new analytical capabilities. This will make applications respond faster and allow them to do more complex tasks with less programming.
SAP Fiori Elements
SAP Fiori elements uses OData to derive a complete application just from the semantic description of the service and from additional information added to the metadata and data of the service, so called annotations. In most cases, no additional frontend development will be required, resulting in a timeless software architecture that keeps all applications consistent across the board and automatically inherits the latest UX bells and whistles, as they become available. In cases where you need to incorporate special functionality not covered by the standard (yet), the Flexible Programming Model will give you the freedom to allow for that.
Today, you can already use SAP Fiori elements to create applications based on OData v2 services with a variety of typical SAP Fiori floorplans, such as List Report/Object Page, Analytical List Page or Overview Page. Later in 2020, we plan to release a first version of Fiori elements using the latest OData v4 protocol. It is planned to feature the List Report/Object Page floorplan so you can create applications on the basis of this widely-used standard pattern. The Flexible Programming Model will allow you to extend it to your specific needs where required.
To expose your data via the OData protocol, you need to create an OData service that connects your client application to the database (or, in fact, any data source). While SAP leveraged OData v2 in the on-premise world, SAP Cloud technology is now preferred when moving forward with OData v4. For Java and Node.js developers, the Cloud Application Programming Model (CAP) is the natural choice to start with. If ABAP is your favorite direction of development, you can move to the Cloud using the ABAP Environment for SAP Cloud Platform, leveraging the RESTful ABAP Programming Model (RAP), planned to be available starting next year.
Beta program starting soon!
We plan to conduct a Guided Beta program for SAP Fiori elements floorplans for OData v4 starting Q3/2020. Please contact Peter Spielvogel to add your name to the notification list. Email your name and company using the standard firstname dot lastname at sap.com format.
Thanks to Hans-Juergen- Richstein and Marita Kruempelmann, for their contributions to this blog.
For the SAP UX Engineering team, Peter Spielvogel.