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.

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.

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 der OData-Service 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.


Mehr von unseren Partnern


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 wir uns unterhalten.

Mehr Informationen

Ein wichtiger Schritt in Richtung des neuen SAP Frameworks for Digital Business ist die in-memory Datenbank SAP HANA. Für bestehende SAP Kunden ist vor allem wichtig: Wie schaffe ich das richtige Knowhow im IT-Team, um mit der SAP HANA Datenbank …

Mehr Informationen

Die aktuelle Herausforderung der IT-Abteilung ist, dass es eine Liste von aktuellen Problemen in der IT gibt und diese abgearbeitet werden soll. Ein Beispiel dafür sind veraltete IT-Systeme. Die Frage ist jedoch: Welcher Schritt hat Priorität?

Mehr Informationen

Schreiben Sie einen Kommentar

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





Angebot anfordern
Preisliste herunterladen
Expert Session
Support