OData
Inhaltsverzeichnis
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 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.
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.