OData Service in SAP ERP einfach einrichten - Administration (2024)

OData – Eine Schnittstelle in SAP ERP für die Kommunikation mit externen Geräten. Die Geschäftsdaten sowie die Geschäftsprozesse eines Unternehmens befinden sich heutzutage in einem oder mehreren Backend-Systemen. Der Systemzugriff wird häufig über proprietäre Programmierlösungen durchgeführt. Vor allem, da die wichtigen Geschäftsdaten nicht redundant und veraltet gehalten werden sollen, muss es für externe Programme möglich sein, auf das SAP-System und die notwendigen Daten zuzugreifen.

Auch gerade für die Entwicklung von mobilen Anwendungen mit Fiori und SAPUI5 in der SAP Cloud Platform ist OData eine wichtige Schnittstelle, die man häufig benutzt. Denn das Frontend oder die mobilen Anwendungen bekommen schließlich vom Backend-System die Daten.

Wie man OData in SAP ERP einrichtet, möchte ich Dir in diesem Artikel ausführlich erklären.

Inhaltsverzeichnis Anzeigen

Was ist OData?

OData ist ein REST-basiertes Datenzugriffsprotokoll, das für die Datenabfrage und -änderung entwickelt wurde. Der lesende und schreibende Zugriff auf Daten wird mithilfe von CRUD-Operationen gewährleistet.

Die Abkürzung CRUD setzt sich aus den Anfangsbuchstaben der Wörter Create, Read, Update und Delete zusammen. Damit wird das Anlegen, Lesen, Ändern und Löschen von Daten ermöglicht.

Basierend auf Internettechnologien wie Hypertext Transfer Protocol (HTTP), Atom Publishing Protocol, Extensible Markup Language (XML) und JavaScript Object Notation (JSON) stellt OData eine definierte Schnittstelle fur den Zugriff auf verschiedenen Datenquellen zur Verfügung.

Strukturierte Daten werden zwischen Client und Server ausgetauscht. Dabei definiert der angebotene Service durch den Server die zugreifbaren Ressourcen, die HTTP-Operationen und das Format, in denen die Ressourcen abgefragt werden. XML und JSON sind Formate, die beispielsweise unterstützt werden.
Eine Implementierung auf Basis von OData verwendet folgende Komponenten:

  • Datenmodell
  • Protokoll
  • Client-Bibliotheken
  • Services
  • URI-Konventionen

Das Datenmodell sichert das Format der übermittelten Daten. Gemäß den Vorgaben des Protokolls werden Abfragen und Antworten zwischen dem Client und dem Service übermittelt. Die Bibliotheken liefern ein Rahmenwerk für die Entwicklung von Anwendungen, die auf OData-Ressourcen zugreifen und erleichtern die Verwendung von OData.
Die Implementierung wird durch den OData-Service benutzt. Außerdem können eine große Anzahl an URI-Konventionen verwendet werden, die beispielsweise die Navigation, Filterung und Sortierung beinhalten. Die Abkürzung URI steht für „Uniform Resource Identifier“ und gibt den Ort und die Zugriffsmethode der Ressource an.

Was ist das SAP Gateway?

OData Service in SAP ERP einfach einrichten - Administration (1)

Heutzutage befinden sich die Geschäftsdaten und -prozesse eines Unternehmens in einem oder mehrere SAP-Backend-Systemen. Häufig wird der Systemzugriff über mehrere unterschiedliche Programmierlösungen durchgeführt. Die Anpassung, Wartung und Weiterentwicklung sind mit Kosten und individuellen Programmieraufwänden verbunden. Zusätzlich zu den verschiedenen Backend-Systemen muss eine große Anzahl an Endgeräten und Kommunikationskanälen unterstützt werden. Obwohl manche Backend-Systeme eine Webschnittstelle bereitstellen, führt die Verknüpfung der Endgeräte mit dem Backend-System zu einer Punkt-zu-Punkt-Lösung.

Ein Ansatz, um die genannten Schwierigkeiten zu beseitigen, ist die Verwendung von offenen Standards, die in einer Zwischenschicht mit dem SAP Gateway implementiert werden. SAP Gateway ist ein Framework und eine REST-basierte Schnittstelle für die ABAP-Technologieplattform auf Basis des OData-Protokolls.

Wichtige Transaktionen für OData in SAP ERP

TransaktionBeschreibung
SEGWSAP Gateway Service Builder
/IWFND/MAINT_SERVICEServices aktivieren und verwalten
/IWFND/GW_CLIENTSAP Gateway Client
/IWFND/ERROR_LOGSAP Gateway: Fehlerprotokoll

OData Service erstellen

ABAP-Struktur anlegen

Ein OData Service kann auf eine ABAP-Struktur basieren. Natürlich kann man auch komplett eigene Felder definieren, aber es wird sehr empfohlen, eine bestehende oder eigene ABAP-Struktur für den OData-Service zu verwenden. Bevor man also einen OData Service überhaupt erstellen kann, muss man im ABAP Dictionary in der Transaktion SE11 eine entsprechende ABAP-Struktur anlegen.

In diesem Beispiel verwende ich eine Z-Tabelle, die auf der Tabelle SPFLI basiert. Zusätzlich dazu habe ich das Attribut CURRNAME aus der Tabelle SCARR mit aufgenommen, da im späteren Verlauf eine Read-Operation auf einen Join zwischen SPFLI und SCARR erzeugt wird.

OData Service in SAP ERP einfach einrichten - Administration (2)

Wie gesagt ist dieser Schritt optional, aber sehr empfohlen.

OData Service anlegen

Um einen OData Service anzulegen, startet man den SAP Gateway Service Builder und damit die Transaktion SEGW.

Anschließend klickt man auf den Button für „Projekt anlegen“. In den darauf angezeigtem Fenster gibt man den Namen des Service (Projekt), die notwendigen Attribute und die Zuordnung zum Paket an.

Den vorgeschlagenen Projekttyp und die Generierungsstrategie kann man vorausgefüllt lassen.

OData Service in SAP ERP einfach einrichten - Administration (3)

Entitätstypen festlegen

Nachdem der OData Service erstellt ist, muss man diesen noch mit entsprechenden Entitätstypen füllen. Dazu klickt man in der Baumstruktur im angelegten OData Service im Knoten „Data Model“ mit der rechten Maustaste auf „Importieren > ABAP-Dictionary-Struktur“. Natürlich könnte man auch auf „Anlegen > Entitätstyp“ eine eigene Entität definieren, aber das leichte Vorgehen ist der Import von einer ABAP-Struktur.

OData Service in SAP ERP einfach einrichten - Administration (4)

Daraufhin gibt man einen Namen der Entität an. Dieser kann komplett frei gewählt werden. Zusätzlich tragt man die eigene oder bereits vordefinierte ABAP-Struktur ein. Den Haken „StandrdentitMnge anlegen“ sollte man auswählen, da dadurch die Standardentitäten mit angelegt werden.

OData Service in SAP ERP einfach einrichten - Administration (5)

Im nächsten Schritt werden die in der Struktur enthaltenen Attribute angezeigt. Nun wählt man die Attribute aus, die man in der Entität mit aufnehmen möchte. Man kann dabei einzelne Attribute oder alle auswählen.

OData Service in SAP ERP einfach einrichten - Administration (6)

Als letztes wählt man noch die Attribute aus, die als Schlüsselwerte definiert werden sollen. Nach Klick auf „Fertig stellen“ ist der Entitätstyp erfolgreich importiert.

OData Service in SAP ERP einfach einrichten - Administration (7)

Wenn man anschließend den Entitätstyp in der Baumstruktur aufklappt, kann man die hinzufügten Attribute erkennen.

Wenn man einen Entitätstyp um weitere Attribute zu vergrößern, die aber nicht in der ABAP-Struktur vorhanden sind, entfernt man einfach nach dem Import die ABAP-Struktur im Entitätstyp.

Anschließend kann man durch Klick auf „Eigenschaften“ und den Button „Zeile anhängen“ oder „Zeile hinzufügen“ eine neue Zeile und damit ein neues Attribut hinzufügen. Dabei kann man einen eigenen ABAP-Datentyp angeben.

OData Service in SAP ERP einfach einrichten - Administration (8)

OData Service generieren bzw. aktivieren

Damit ein SAP-Objekt in SAP ERP verwendet werden kann, muss man es aktivieren. Einen OData Service kann man aktivieren, indem man den Button „Laufzeitobjekte erzeugen“ klickt. Das ist der Button mit dem weiß-rot-gefleckten Kreis. Dadurch werden die notwendigen Laufzeitartefakte generiert.

Jedes mal, wenn man einen OData Service verändert, muss man die Laufzeitartefakte neu generieren.

Beim angezeigten PopUp kann man die vorausgefüllten Klassen so übernehmen. Alternativ kann man sich natürlich an die eigenen Namens-Konventionen halten.

OData Service in SAP ERP einfach einrichten - Administration (9)

Anschließend weißt man den Laufzeitobjekten das Paket zu. Nach dem erfolgreichen Generieren erhält man die Erfolgsmeldungen in dem Bereich „Nachrichten“ im unteren Bereich.

In der Baumstruktur unter „Laufzeitartefakte“ kann man nun die generierten Klassen erkennen.

OData Service registrieren

Damit der OData Service auch im SAP Gateway verwendet werden kann, muss man den erzeugten OData Service registrieren. Hierzu gibt es zwei Möglichkeiten:

  • Im SAP Gateway Service Builder (Transaktion SEGW)
  • Transaktion /IWFND/MAINT_SERVICE

Der einfachste Weg, einen OData Service zu aktivieren, ist direkt im SAP Gateway Service Builder. Im Knoten „Serviceverwaltung > GW_HUB“ kann man einfach durch Klick auf den Button „Serv. registr.“ den Service registrieren.

OData Service in SAP ERP einfach einrichten - Administration (10)

Nach dem Betätigen des Buttons gibt man noch technische Informationen an und bestätigt das Fenster. Die Vorauswahl reicht für die Registrierung absolut aus.

In der Transaktion /IWFND/MAINT_SERVICE kann man den Service ebenfalls aktivieren. Hierzu klickt man zuerst auf den Button „Service hinzufügen“ und wählt anschließend in der Liste den erstellten OData Service aus. Wenn man auf den technischen Servicenamen klickt, kann man noch relevante Informationen zum Service bzw. zur Registrierung angeben.

OData Service in SAP ERP einfach einrichten - Administration (11)
OData Service in SAP ERP einfach einrichten - Administration (12)

Anschließend ist ebenfalls der OData Service registriert.

CRUD-Operationen für einen OData-Service anlegen

Nachdem der OData Service erstellt und registriert ist, wird er leider immer noch bei einer CRUD-Operation nicht funktionieren bzw. keine Daten zurückliefern.

Bei einem ersten Test im SAP Gateway Client in der Transaktion /IWFND/GW_CLIENT bekommt man bei einer GET-Operation zwar eine 200-Statusmeldung zurück, dafür aber leider noch keine Daten.

Um das zu ändern, richtet man die entsprechenden Methoden für die CRUD-Operation ein.

In den Laufzeitartefakten klickt man einfach doppelt auf die Data-Provider-Erweiterungsklasse. Im Standard beginnt diese mit „ZCL_“ und endet mit „_DPC_EXT„. Dazwischen wird der OData Service-Name aufgeführt. Nach dem Doppelklick springt man in den Class Builder und kann die geerbten CRUD-Methoden redefinieren.

Um die GET-Operation für das gesamte Entityset zu definieren, muss man die Methode „*_GET_ENTITYSET“ redefinieren.

Nach dem Redefinieren sieht man bereits ein auskommentiertes Coding, das es zu erweitern gilt. Um also die Daten aus der SPFLI und SCARR zu lesen, eignet sich folgende Programmierung:

 METHOD spfliset_get_entityset. SELECT spfli~carrid spfli~connid spfli~cityfrom spfli~cityto spfli~distance scarr~carrname FROM spfli JOIN scarr ON spfli~carrid = scarr~carrid INTO CORRESPONDING FIELDS OF TABLE et_entityset. ENDMETHOD.

Nach dem Speichern nicht das Aktivieren vergessen.

OData Service testen

Abschließend ist es von großen Vorteil, den OData Service einmal zu testen. Hierfür kann man den SAP Gateway Client in der Transaktion /IWFND/GW_CLIENT benutzen.

Indem man die Request-URI angibt, kann man mit dem Radio-Button „GET“ einfach eine GET-Operation ausführen und überprüfen, ob die Daten korrekt übergeben werden.

OData Service in SAP ERP einfach einrichten - Administration (13)

So kann man in der URI auch Operation wie filter, select, orderby, count, expand oder format testen.

Vor allem ist die Funktion „EntitySets“ nützlich, um den korrekten Entitätstyp auszuwählen und den Aufruf korrekt durchzuführen.

Und nun ist der OData-Service fertig angelegt und kann bereits dafür genutzt werden, um Daten aus dem SAP-Backend zu lesen. Man kann nun die weiteren CRUD-Methoden redefinieren, um mit dem OData-Service vollumfänglich die Daten im Backend zu verwalten.

Über den Autor

Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.

Mehr zu ERP UP

ERP UP unterstützen

Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.

OData Service in SAP ERP einfach einrichten - Administration (2024)

FAQs

What is the OData service in SAP? ›

OData allows data, updates, and queries on SAP Gateway in formats like Atom, JSON, and XML. It also allows a uniform alternative for the structure, query, and display of data. Thanks to this, SAP and non-SAP developers no longer have a communication barrier.

What are the different types of OData services in SAP? ›

OData ABAP services -> For ODATA ABAP services the backend server is SAP ECC/CRM/SRM. OData HANA services-> For ODATA HANA services the backend server is SAP HANA. OData External services-> For OData External services the backend server is Non SAP servers /External servers.

How do I provide authorization for OData service in SAP? ›

Set Up Authorizations in the SAP Gateway Hub System
  1. On the Authorizations tab under Maintain Authorization Data and Generate Profiles, choose Change Authorization Data.
  2. Maintain the necessary authorizations for the role.
  3. Save your settings and then generate an authorization profile.

What are the methods of OData service? ›

The OData service interface has a fixed number of operations that have uniform meaning across all the resources it can act on. These operations are retrieve, create, update and delete and they map to the GET, POST, PUT/MERGE and DELETE HTTP methods.

What is the difference between OData and REST service? ›

OData and REST are related but distinct concepts. REST is an architectural style for building web APIs, while OData builds upon REST to define best practices for building RESTful APIs. OData provides additional features such as enhanced query capabilities and standardized metadata.

What is the difference between OData service and REST API? ›

In summary, while REST APIs provide a simple, lightweight way to expose CRUD operations over HTTP, OData is a more comprehensive protocol for querying and updating data, with a rich set of features for accessing and modifying data, complex types and relationships, custom operations, and more standardized querying.

Is SAP OData a REST API? ›

OData is a Web protocol based on REST, for querying and updating data, applying and building on Web technologies such as HTTP, Atom Publishing Protocol (AtomPub), and RSS (Really Simple Syndication) to provide access to information from a variety of applications.

Is OData a REST or SOAP service? ›

OData supports Representational State Transfer (REST)-based data services, which enable resources, identified using Uniform Resource Identifiers (URIs), and defined in an abstract data model (EDM), to be published and edited by web clients within corporate networks and across the Internet using simple Hypertext ...

What is the OData model in SAP? ›

The OData model is a server-side model, meaning that the data set is only available on the server and the client only knows the currently visible (requested) data. Operations, such as sorting and filtering, are done on the server. The client sends a request to the server and shows the returned data.

How do I call an OData service in SAP? ›

Go to transaction code /IWFND/MAINT_SERVICE . Click on push button Add services . Now click back and go to main screen of transaction /IWFND/MAINT_SERVICE and find your service. A new screen will come, Execute the transaction and check the response .

How to check OData service in SAP system? ›

Tip
  1. Choose Add Service. The Add Selected Services screen is displayed.
  2. In System Alias, select the alias of your back-end system.
  3. Choose Get Services (or press ENTER ). The available services are displayed.
  4. Use the following table for reference and verify that the services for your application are active:

How to add OData service to user in SAP? ›

To add an OData service to a role, carry out the following steps:
  1. Go to transaction PFCG, enter the role to which you want to add the OData service, then press the Change pushbutton.
  2. Go to the Menu tab.
  3. From the Transaction pushbutton, choose the Authorization Default menu item.
  4. Choose the following:

How does OData work in SAP? ›

SAP OData is a standard Web protocol used for querying and updating data present in SAP using ABAP. In SAP, we use SEGW transaction code to create an OData Service. OData is used to define best practices that are required to build and consume RESTful APIs.

How to use OData API in SAP? ›

Procedure
  1. Choose Design.
  2. Choose Create.
  3. Enter the required data for the integration package. ...
  4. In the Artifacts tab, choose Add OData API.
  5. In the Add OData API dialog box, choose one of the following options: ...
  6. Enter the OData API details as listed in the following table. ...
  7. Choose Create. ...
  8. Deploy the OData API.

How to create OData service for table in SAP? ›

Step by Step Process to create SAP OData service
  1. We will use SAP Service Gateway Builder (SEGW) to create a new project.
  2. We will Import DDIC/CDS or other Structure to create an OData Model.
  3. We will Generate our OData.
  4. We will Register and test our Service.
Jan 25, 2021

What is the OData service definition? ›

The OData service definition is the mechanism you use to define what data to expose with OData, how, and to whom. Data exposed as an OData collection is available for analysis and display by client applications, for example, a browser that uses functions provided by an OData client library running on the client system.

Why do we use OData service? ›

The purpose of OData is to provide a protocol that is based on Representational State Transfer (REST) for create, read, update, and delete (CRUD) operations. OData applies web technologies such as HTTP and JavaScript Object Notation (JSON) to provide access to information from various programs.

Top Articles
Latest Posts
Article information

Author: Gov. Deandrea McKenzie

Last Updated:

Views: 6196

Rating: 4.6 / 5 (46 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Gov. Deandrea McKenzie

Birthday: 2001-01-17

Address: Suite 769 2454 Marsha Coves, Debbieton, MS 95002

Phone: +813077629322

Job: Real-Estate Executive

Hobby: Archery, Metal detecting, Kitesurfing, Genealogy, Kitesurfing, Calligraphy, Roller skating

Introduction: My name is Gov. Deandrea McKenzie, I am a spotless, clean, glamorous, sparkling, adventurous, nice, brainy person who loves writing and wants to share my knowledge and understanding with you.