Christoph Lordieck
5. November 2019

OData

OData Das Open Data Protocol (OData) ist ein HTTP-basiertes Protokoll für den Datenzugriff zwischen kompatiblen Softwaresystemen. Es berücksichtigt die REST-Prinzipien (Representational-State-Transfer-Prinzipien) und ist deshalb in der Lage, Datensätze aus verschiedenen Quellen wie Datenbanken, CMS (Content-Management-Systeme) oder Websites zu verarbeiten. Das Protokoll ermöglicht es Anwendern, unter der Verwendung von abstrakten Datenmodellen und URIs (Uniform Resource Identifiers) HTTP-basierte Datenservices zu erstellen.

Webservice mit OData

Ein Webservice, der mit OData betrieben wird, beinhaltet abstrakte Datenmodelle, URIs und Schnittstellen zu CRUD-Operatoren. Die 3 Komponenten erfüllen verschiedene Funktionen, die voneinander abhängen. Der OData-Service stellt die Kommunikation zwischen ihnen sicher:

Abstraktes Datenmodell

Mit einem abstrakten Datenmodell lassen sich bestimmte Objekte definieren. Wird zum Beispiel in einem Entwicklungs-Projekt das Objekt „Auftrag“ im System angelegt, kann ein Programmierer die Eigenschaften dieses Objektes in einem abstrakten Datenmodell festhalten: Im Fall eines Auftrags wären die Eigenschaften zum Beispiel Auftragsnummer, Ersteller, etc.

Die für das Datenmodell benötigten Daten stammen im SAP-Kontext aus der SAP-Datenbank. Über die Regeln, die OData festlegt, lassen sich die Daten des Modells zwischen Backend und Frontend transportieren. Dabei werden auch Metadaten übermittelt, die die Eigenschaften des abstrakten Datenmodells beschreiben. Es handelt sich bei OData deshalb um eine Schnittstelle, die es den unterschiedlich aufgebauten Backend- und Frontend-Systemen erlaubt, miteinander zu kommunizieren.

URI

Der Aufruf eines OData-Services erfolgt über die URI. OData stellt ein abstraktes Datenmodell zur Verfügung, das von einem Programmierer mittels CRUD-Operationen Daten erhält – wie genau die unterschiedlichen Daten definiert werden, hängt von der URI ab. Aus diesem Grund werden verschiedene Bestandteile eines Webservices über verschiedene URIs angezeigt.

Über eine URI wird daher bestimmt, welcher OData-Service aufgerufen wird und auf welches Datenmodell der OData-Service zugreift. Zudem enthält die URI query options, mit denen zusätzliche Informationen an den OData-Service geliefert werden, sodass die Daten zum Beispiel in einer speziellen Reihenfolge sortiert werden können.

ODATA Grundlagen

ODATA bildet die Schnittstelle zwischen dem UI5 Frontend und dem SAP Backend. Lesen Sie hier wichtigsten Learnings im Bereich ODATA.

CRUD-Operatoren

CRUD ist die Abkürzung für Create, Read, Update und Delete. OData-Services sind die Schnittstellen, durch die CRUD-Operationen auf dem abstrakten Datenmodell angewandt werden können. Entwickler implementieren die Operationen im Backend – das System bekommt nach einer Eingabe durch den Nutzer über den OData-Service die zu ändernden Daten und die Information, welcher CRUD-Operator ausgeführt werden soll.

Create

Bei einer Create-Operation müssen dem System Daten hinzugefügt werden, um ein Ergebnis zu bekommen. Ein Nutzer gibt entsprechende Daten im Frontend des Systems ein, die über den OData-Service ans Backend weitergeleitet werden. Ebenfalls weitergegeben wird die Information darüber, wie das System die Daten verarbeiten soll. Der Verarbeitungsprozess selbst ist zuvor von Entwicklern implementiert worden.

Read

Der OData-Service übermittelt dem Backend, welche Daten ein Nutzer aufrufen möchte. Die Read-Funktion sorgt dafür, dass sie ihm bereitgestellt werden.

Update

Der Update-Operator aktualisiert Daten, die von einem Nutzer geändert und mittels OData-Service ans Backend übertragen wurden.

Delete

Der Delete-Operator löscht Daten auf Anweisung des Users.

AtomPub, HTTP und JSON

Über AtomPub (Atom Publishing Protocol) lassen sich Webinhalte mit Berücksichtigung der REST-Prinzipien auf der Basis von HTML und XML erstellen und bearbeiten. Auch OData basiert auf dem Protokoll und verwendet gleichzeitig Internet-Technologien wie HTTP (Hypertext Transfer Protocol) und JSON (JavaScript Object Notation).

OData in SAP

SAPUI5-Anwendungen greifen über OData nicht direkt auf das Backend, sondern auf einen Gateway zu, der die Verbindung zum Backend aufbaut.

Um OData-Services im SAP-System anzulegen, geben Entwickler die Transaktion „SEGW“ in die SAP GUI (SAP Graphical User Interface) ein. Nachdem ein OData-Service erstellt wurde, muss er im System registriert werden, damit das Gateway ihn aufrufen kann. Über die Transaktion „/N/IWFND/MAINT_SERVICE“ rufen Entwickler eine Übersicht der registrierten OData-Services auf dem Gateway auf und können sie über den SAP Gateway Client testen.

Programmierer haben die Möglichkeit, Metadaten, die die Eigenschaften des abstrakten Datenmodells beschreiben, für die Entwicklung von SAPUI5-Apps zu nutzen. Hierzu werden Smart Controls verwendet, die die Informationen aus den Metadaten automatisch beachten.

Smart Controls werden auf der Oberfläche einer SAPUI5-Anwendung als grafisches Element angezeigt, z. B. als Eingabefeld. Wenn die Metadaten eines abstrakten Datenmodells beschreiben, dass es Zahlenwerte für eine Operation benötigt, kann ein Anwender in das Eingabefeld auf der Nutzeroberfläche lediglich Zahlen und keine Buchstaben eingeben. Die Eigenschaften von Smart Controls lassen sich aus den Metadaten des abstrakten Datenmodels definieren und müssen nicht zusätzlich programmiert werden.

In diesem Webinar zeigt SAP Consultant Timo Eggengoor, wie Sie Excel Add-Ins erstellen und mit SAP verbinden können.

Verwendung von OData mit Excel

OData-Services lassen sich auch durch andere Programme wie Excel verwenden. Anwender geben hierzu die URI in Excel ein, sodass die Daten direkt in die Excel-Tabelle geladen werden. Hierzu müssen sie wissen, wo sich diese Services befindet und über Login-Daten zum Gateway-System verfügen.

Fazit

Für die Entwicklung von SAPUI5-Anwendungen ist OData essentiell wichtig, weil mit ihm eine Verbindung von Frontend und Backend hergestellt wird. Der Aufruf des Protokolls erfolgt über die URI. Nachdem ein Nutzer auf den OData-Service zugegriffen hat, greift dieses auf ein abstraktes Datenmodell zu und bestimmt, welche CRUD-Operationen dort ausgeführt werden. Nutzer können dadurch Daten auslesen, erstellen, bearbeiten oder löschen.

Im SAP-Kontext greifen die OData-Services nicht direkt auf das Backend, sondern auf einen Gateway zu, der sich mit dem Backend verbindet. Sie werden in der SAP GUI über die Transaktion „SEGW“ erstellt und dem Gateway über die Transaktion „/N/IWFND/MAINT_SERVICE“ zugeordnet. Für die Entwicklung von SAPUI5-Apps können Programmierer die Metadaten des abstrakten Datenmodells nutzen. Mit ihnen lassen sich Smart Controls definieren, die auf der Nutzeroberfläche der Anwendung angezeigt werden und bestimmte Funktionen übernehmen. Handelt es sich bei einer Smart Control zum Beispiel um ein Eingabefeld, sorgen die Informationen aus den Metadaten dafür, dass Nutzer nur Informationen eingeben können, die das abstrakte Datenmodell in einer Operation verarbeiten kann. So können zum Beispiel keine Buchstaben in ein Eingabefeld eingegeben werden, wenn das Datenmodell Zahlenwerte für eine Operation benötigt.

Haben Sie weitere Fragen zum Thema OData? Kontaktieren Sie uns gerne, damit wir Ihnen bei Ihrem individuellen Anliegen behilflich sein können.

Lordieck

Websession: OData

Sollten Sie Fragen zu uns und unserer Arbeit oder konkret zu Umstellungsprojekten haben, dann vereinbaren Sie eine kostenlose Websession mit uns.

FAQ

Was ist OData?

OData ist ein HTTP-basiertes Protokoll für den Datenzugriff zwischen kompatiblen Softwaresystemen. Es berücksichtigt die REST-Prinzipien (Representational-State-Transfer-Prinzipien) und ist deshalb in der Lage, Datensätze aus verschiedenen Quellen wie Datenbanken, CMS (Content-Management-Systeme) oder Websites zu verarbeiten.

Welche Komponenten enthält ein OData-betriebener Webservice?

Webservices, die mit OData betrieben werden, haben folgende Komponenten: abstrakte Datenmodelle, URIs und Schnittstellen zu CRUD-Operatoren.

Christoph Lordieck

Christoph Lordieck

Als Bereichsleiter SAP Entwicklung berate ich Unternehmen rund um das Thema SAP Individualentwicklung. Einige Jahre Projekt- und Umsetzungserfahrung haben meinen Wissenshunger noch nicht gestillt und ich suche ständig nach neuen Themen und Entwicklungen im ABAP-Umfeld.

Sie haben Fragen? Kontaktieren Sie mich!


Verwandte Beiträge

Was bedeutet eigentlich der Wechsel auf HANA für die ABAP-Entwicklung? S/4HANA löst immer mehr die alte SAP Business Suite ab. Der Support dieser läuft nur noch bis 2027. Damit steht […]

weiterlesen

In SAP das eigene Passwort rund um die Uhr zurücksetzen können? Was so einfach im SAP Standard nicht möglich ist, haben wir mit unserem Password Self-Service (PSS) Tool realisiert und bereits […]

weiterlesen

Wie gehe ich die Entwicklungen von SAP-Erweiterungen an? Lege ich einfach los oder schreibe ich einen Plan? Wie plane ich den Prozess? Wie helfen Prozessmodelle dabei? All diese Überlegungen wurden […]

weiterlesen

Unsere Produkte zu OData

Haben Sie ein gutes Gefühl was die Code-Qualität Ihrer Kundenentwicklungen im SAP angeht? Wenn bei Lesbarkeit, Dokumentation, Modularisierung oder systematischer Transport- & Releasestrategie noch Luft nach oben ist, dann sollten […]

Mehr Informationen

Was müssen ABAP Entwickler wissen, wenn sie Applikationen für die SAP HANA Datenbank vorbereiten, entwickeln und optimieren wollen?

Mehr Informationen

Schnittstellen sind die Achillesferse moderner IT-Infrastrukturen. Damit Ihre Systeme jederzeit funktionieren, bieten wir Ihnen bedarfsgenaue Enterprise Application Integration als Managed Service an. Ob Anbindung, Monitorung und Wartung – wir sorgen […]

Mehr Informationen

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Alexander Koessner-Maier
Alexander Kössner-Maier Kundenservice