Johannes Behrndt
 - 11. Juni 2015

SAP OData: Service definieren (Teil 1/4)

oData von SAP

In diesem Tutorial möchte ich Ihnen zeigen, wie Sie ohne viel Vorwissen einen OData Service auf Ihrem SAP NetWeaver Gateway anbieten können. Anhand eines kleinen Beispiels werde ich alle benötigten Schritte im Detail durchgehen.

Sie werden mit dem OData Modeler Plugin für Eclipse Ihr OData Model erstellen und anschließend exportieren. Danach werden Sie Ihr Model ins SAP-System importieren und dort als Service registrieren.

Unser Video-Kurs „ODATA Services im SAP UI5 Umfeld“

OData Services im SAPUI5 Umfeld

Limitierte Rabattaktion für unseren Kurs „OData Services im SAPUI5 Umfeld“.

Für Besucher von Mission Mobile können wir unseren Kurs „ODATA Services im SAP UI5 Umfeld“ mit kräftigem Rabatt anbieten:

Kurs: „ODATA Services im SAP UI5 Umfeld

PS: Wir haben den Rabatt nur für 20 Käufe erhalten. Falls Sie den Link klicken und keine Vergünstigung mehr angezeigt werden, ist unser Kontingent bereits aufgebraucht.

OData Service auf SAP NetWeaver Gateway anbieten

Zuerst eine kurze Liste der Vorraussetzungen:

Dieses HowTo ist der erste Teil einer Reihe von Blogbeiträgen zum Thema OData. Die Themen der Blogbeiträge im Überblick:

  1. OData Service definieren
  2. OData Service implementieren
  3. OData: Filter und Navigation implementieren
  4. OData: Entitäten erstellen

Installation des OData Modeler

Im ersten Schritt muss also der OData Service definiert werden. Ein nützliches Tool für diese Aufgabe ist das Plugin OData Modeler für die Eclipse IDE. Mit diesem Plugin kann eine OData Schnittstelle schnell erstellt und anschließend als .XML-Datei exportiert werden. Dies geht wesentlich intuitiver und schneller von der Hand als die Erstellung in der SAP GUI. Als erstes muss der OData Modeler installiert werden.

  • Öffnen Sie Eclipse
  • Klicken Sie auf Help -> Install New Software …
Installation des OData Modeler

Installation des OData Modeler

  • Geben Sie als Repository https://tools.hana.ondemand.com/kepler/ an und bestätigen Sie mit Enter
  • Es erscheint nun ein Baum, in dem Sie einen Haken bei SAP Mobile Platform Tools -> OData Modeler setzen
  • Klicken Sie auf Next, bestätigen Sie die Lizenzbedingungen und klicken Sie anschließend auf Finish
  • Anschließend sollte der OData Modeler installiert sein
    • Achtung: Unter Umständen muss Eclipse auch neu gestartet werden

Erstellen des OData Models

Nachdem Sie den OData Modeler installiert haben, können Sie anfangen ihr Model zu erstellen. Ein OData Model besteht aus Entitäten. Diese Entitäten (oder Entities) stehen für gleichartige Objekte, welche auch zu Mengen (oder Collections) zusammengefasst werden können. OData kann nun eine einzelne Entität, die komplette Collection oder eine gefilterte Collection zurückgeben. In meinem Beispiel gibt es zwei Entitäten: Equipment und ServiceNotification. Über den OData Service soll es möglich sein, die Equipments und Servicemeldungen eines Kunden anzuzeigen und für ein bestimmtes Equipment eine Servicemeldung zu erstellen. Im nächsten Schritt erstellen wir das OData Modell mit dem OData Modeler.

  • Erstellen Sie ein neues Projekt mit File -> New -> Project …
  • Wählen Sie General -> Project und geben Sie einen beliebigen Projektnamen ein
  • Erstellen Sie nun ein neues OData Model, indem Sie auf Ihr Projekt rechtsklicken und New -> OData Model wählen
  • Geben Sie Ihrem Model einen Namen und wählen Sie Blank OData Model
  • Sie gelangen nun in den Model Editor
E-Book: App-Entwicklung

In diesem E-Book geht es um die Entwicklung von Enterprise-Apps mit SAPUI5 und OData.

Hinzufügen von Entitäten und Properties

  • Sie können per Drag&Drop Entitäten zu Ihrem Model hinzufügen
  • Der Editor legt für jede Entität automatisch ein Set und eine ID an
  • Es empfiehlt sich, das Set in Collection umzubenennen, da SAP von Collections spricht
  • Sie können Properties hinzufügen, wenn Sie auf Properties rechtsklicken und Add Property wählen

Hinzufügen von NavigationProperties

  • Bewegen Sie Ihre Maus über eine Entität
  • Es erscheinen kleine Buttons
  • Drücken Sie auf den Pfeil und halten Sie Ihre Maus gedrückt
  • Ziehen Sie die Verbindung zu einer anderen Entität und lassen Sie Ihre Maus los
  • Sie haben nun eine Navigationproperty erstellt
  • Es empfiehlt sich, auch diese Property etwas sprechender zu benennen

Versuchen Sie nun das hier abgebildete OData Model zu erstellen:

Erstellung OData Model

Erstellung OData Model

 

Das fertige Model als .XML-Datei exportieren

Im nächsten Schritt wird das OData Model als .XML-Datei exportiert. Diese Datei kann dann ins SAP System importiert werden.

  • Rechtsklicken Sie auf Ihr Model im Projektbaum und wählen Sie Export…
  • Wählen Sie anschließend Ogee -> OData Model und im nächsten Bildschirm geben Sie unter Export as: einen Dateinamen an (zb: OData_Model.xml)
  • Falls Sie an diesem Punkt einsteigen möchten oder eine fehlerhafte .XML-Datei generiert wurde, finden Sie hier die Musterlösung:
Export als .XML Datei

Export als .XML Datei

 

OData Model als .XML-Datei in das SAP System importieren

Der nächste Schritt ist nun der Import der Datei ins SAP System.

  • Verbinden Sie sich mit Ihrem SAP System und starten Sie den SAP NetWeaver Gateway Service Builder (Transaktion: SEGW)
  • Erstellen Sie ein neues Projekt
  • Im Baum unter Ihrem Projekt finden Sie das Data Model
  • Rechtsklicken Sie auf Data Model und wählen Sie Importieren -> Datenmodell aus Datei:
Import als .XML Datei

Import als .XML Datei

  • Wählen Sie die im vorherigen Punkt erstellte .XML-Datei und bestätigen Sie
  • Nachdem die Daten importiert wurden, können Sie unter Data Model -> Entitätstypen die Entitäten und deren Eigenschaften sehen:
Entitäten und deren Eigenschaften

Entitäten und deren Eigenschaften

  • An dieser Stelle können Sie auch die Datentypen einstellen, die für die jeweilige Property verwendet werden (ACHTUNG: hier können Sie keine ABAP Dictionary Typen verwenden!)
    • Für den Anfang können Sie den Datentyp String benutzen

Laufzeitartefakte generieren

Nun haben Sie Ihr OData Modell erfolgreich ins SAP System importiert. Jetzt muss das Modell noch mit Logik befüllt werden. Dazu werden Laufzeitartefakte generiert. Das sind ABAP OO Klassen, welche für die Business Logik sorgen, wenn der OData Service genutzt wird. Diese Klassen können automatisch generiert werden.

  • Um die Laufzeitobjekte zu generieren, klicken Sie bitte auf den folgenden Button: OData Definition 5
  • Nachdem Sie ihren Transportauftrag ausgewählt haben, können Sie im nächsten Fenster den techn. Modell Namen für Ihren Service wählen. Dieser Name ist dann der Bestandteil der URL zum Service. Er kann also von außerhalb gesehen werden.
Generierung Laufzeitartefakte

Generierung Laufzeitartefakte

Sie sehen in diesem Fenster auch die generierten Namen für die Model-Provider-Klasse und die Data-Provider-Klasse. Nachdem Sie bestätigt haben, werden die Klassen erstellt. Sie finden sie unter Laufzeitartefakte:

Ansicht Laufzeitartefakte

Ansicht Laufzeitartefakte

  • Die Model-Provider-Basisklasse enthält Ihr Model inklusive Typdefinitionen.
  • Die Data-Provider-Basisklasse enthält die Methoden, um Ihr Model zu füllen.
  • Beiden Klassen können von Ihnen erweitert werden. Dies geschieht in den Erweiterungsklassen mit dem Postfix ‚_EXT‘

Service am Gateway registrieren

Sie haben nun alle wichtigen Komponenten für Ihren OData Service erstellt. Der letzte Schritt ist nun die Registrierung des Service an Ihrem Gateway. Bleiben Sie weiterhin in der Transaktion SEGW.

  • Wählen Sie unter Serviceverwaltung Ihr Gateway aus und klicken Sie auf den Button ‚Registr.‘
  • Alternativ können Sie auf Ihr Gateway rechtsklicken und Registrieren wählen
Service am Gateway registrieren

Service am Gateway registrieren

Ihr OData Service ist nun registriert und kann im Browser aufgerufen werden. Dazu verbinden Sie sich bitte mit Ihrem Gateway und öffnen die Transaktion /IWFND/MAINT_SERVICE. Hier können Sie Ihren Service auswählen und auf Browser aufrufen klicken. Fügen Sie der aufgerufenen URL bitte den Zusatz ?sap-ds-debug=true hinzu. Dies bereitet die Ausgabe etwas auf und bietet darüber hinaus einige Analysewerkzeuge.

Zusätzliche Analysewerkzeuge

Zusätzliche Analysewerkzeuge

Da die Data Provider Klasse allerdings noch nicht bearbeitet wurde, gibt der Service erst einmal keine Daten zurück. In Ihrem Browser sollte trotzdem, abhängig von Ihrer Gateway-Adresse und der Benennnung Ihres Service, folgendes Ergebnis erscheinen:

Codeansicht Data Provider Klasse

Codeansicht Data Provider Klasse

Ein Klick auf eine Collection würde nun die entsprechende Methode in der Data-Provider-Klasse auf Ihrem SAP-System auslösen. Da diese bis zu diesem Punkt noch nicht befüllt ist, erhalten Sie eine leere Antwort. Das Füllen der Data-Provider-Klasse ist der Inhalt meines nächsten Blog-Artikels in dieser Reihe über OData.

Ich hoffe, dieses SAP Entwickler Tutorial war hilfreich bei der Erstellung ihres OData Services und ich freue mich auf Fragen, Feedback und Kommentare.

Johannes Behrndt

Seit über 10 Jahren berate ich große und mittelständische Unternehmen rund um mobile Lösungen, insbesondere im SAP-Umfeld. Ich habe den Überblick über die relevanten SAP-Prozesse und kenne die neuesten Technologien für mobile Lösungen.

Sie haben Fragen? Kontaktieren Sie mich!




Das könnte Sie auch interessieren


2 Kommentare zu "SAP OData: Service definieren (Teil 1/4)"

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