Johannes Behrndt
30. März 2020

SAP OData: Entitäten erstellen(Teil 4/4)

oData von SAP

Willkommen zum vierten und letzten Teil meines OData Tutorials. In diesem Blogbeitrag werde ich Ihnen erklären, wie Sie über die OData Schnittstelle Entitäten im SAP System erstellen können. Darüber hinaus zeige ich ihnen einen kleinen Trick, um das Erstellen der Entitäten zu testen.

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.

Entitäten im SAP System erstellen

Falls Sie die vorherigen Teile des Tutorials noch nicht durchgearbeitet haben, bitte ich Sie dies als erstes nachzuholen.

Dieses HowTo ist der vierte Teil einer Reihe von Blogbeiträgen zum Thema OData:

Tobias Feldherr

SAP OData

Das Lesen von Tutorials führt Sie nicht zum Ziel? Dann ist unsere Demo genau das Richtige für Sie. Gerne können wir auch in einer kostenlosen Websession Ihre Herausforderungen und Möglichkeiten besprechen.

Rückblick

In meinem letzten Beitrag haben Sie gelernt, wie Sie Filter und Navigation im Backend realisieren können. Dazu wurden die bekannten Methoden X_GET_ENTITY und X_GET_ENTITY_SET nochmals erweitert, da auf zusätzliche Import-Parameter Rücksicht genommen werden musste.

Entitäten erstellen

Um Entitäten zu erstellen wird nun eine weitere Methode redefiniert: X_CREATE_ENTITY. Um eine Servicemeldung zu erstellen müssen Sie nun also in der Data Provider Extension Klasse die Methode SERVICENOTIFICAT_CREATE_ENTITY redefinieren. An dieser Stelle ist nun der folgende Import-Parameter wichtig: IO_DATA_PROVIDER. Dieser liefert die Daten für die neue Entität. Die Methode read_entry_data kann dazu genutzt werden, diese Daten auszulesen. Mit dem folgenden Aufruf können Sie direkt die Entität ausgeben:

  • io_data_provider->read_entry_data( IMPORTING es_data = er_entity ).

Damit die Methode komplett ist, müssen die Daten natürlich auch im System persistiert werden. Wie dies geschieht ist natürlich von Fall zu Fall unterschiedlich. Im Falle der Servicemeldungen können dazu die BAPIs BAPI_SERVICENOTIFICAT_CREATE und BAPI_ALM_NOTIF_DATA_ADD genutzt werden. Ich stelle Ihnen auf Nachfrage gerne den entsprechenden Quellcode zur Verfügung.

ODATA Grundlagen

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

Das Erstellen testen

Während es bisher einfach war die Methoden GET_ENTITY und GET_ENTITY_SET zu testen (durch Aufrufen einer URL), ist dies beim Erstellen einer Entität nicht so einfach möglich. Damit Sie nicht extra ein Programm schreiben müssen, welches den OData Service ansteuert, nutzen sie den folgenden Workaround:

  1. Verbinden Sie sich mit ihrem SAP NetWeaver Gateway
  2. Starten Sie die Transaktion /IWFND/MAINT_SERVICE (beachten Sie, dass Sie die Transaktion im Kommandofeld so starten müssen: /N/IWFND/MAINT_SERVICE)
  3. Suchen Sie ihren Service und markieren Sie ihn
  4. Klicken Sie anschließend auf Gateway Client
  5. Im folgenden Fenster können Sie HTTP Anfragen an den Service schicken
  6. Schicken Sie zuerst eine Anfrage um eine Entität einzulesen. Wie eine solche URL aussieht, können Sie den vorherigen Teilen dieser Reihe entnehmen. Ein Beispiel: /sap/opu/odata/sap/ZUIF_TEST_SRV/EquipmentCollection(‘1’)
  7. Die Antwort vom Server steht nun auf der rechten Seite. Kopieren Sie diese nun auf die linke Seite mit dem Button Als Anf. verwenden
  8. Entfernen Sie die Stellen, an denen die bereits existierende Entität referenziert wird (zB. die Zeile <link href=“EquipmentCollection(‘1’)” rel=“edit” title=“Equipment”/> wird zu <link href=“EquipmentCollection” rel=“edit” title=“Equipment”/>)
  9. Stellen Sie nun auf HTTP Post um und wählen Sie Ausführen
  10. Ihr X_CREATE_ENTITY Methode sollte nun ausgeführt werden (am besten überprüfen Sie dies mit einem externen Breakpoint).
  11. Doppelklicken Sie auf ER_ENTITY und Sie sollten die angegebenen Daten sehen.

Im Bild unten sehen Sie meine POST-Anfrage:

Gateway - SAP odata

Gateway – SAP odata

Fazit

Herzlichen Glückwunsch, Sie sind am Ende meiner Blogreihe über OData angekommen. Sie haben gelernt, wie Sie

  • einen OData Service modellieren
  • einen OData Service implementieren
  • Filter und Navigation hinzufügen
  • Entitäten erstellen

Ich freue mich auf ihre Fragen und Anregungen. Falls Sie an einer Stelle nicht weiterkommen stehe ich ihnen gerne mit meinem Rat zur Seite. Schreiben Sie einfach einen Kommentar oder eine E-Mail.

Johannes Behrndt

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

Willkommen zum zweiten Teil meines OData Tutorials. In diesem Blogbeitrag werde ich Ihnen erklären, wie Sie einen bestehenden OData Service mit Business Logik füllen können. Am Ende dieses HowTo's werden […]

weiterlesen

Dies ist der dritte Teil meiner OData Einführung. Nachdem Sie diesen Blogbeitrag durchgelesen haben, werden Sie in der Lage sein, gefilterte Entitätsmengen über ihren OData Service anzubieten und über Navigationen […]

weiterlesen

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 […]

weiterlesen

Schreiben Sie einen Kommentar

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





Kontaktieren Sie uns!
Sophie Weber
Sophie Weber Kundenservice