SAP OData: Entitäten erstellen(Teil 4/4)
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“
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:
- OData Service definieren
- OData Service implementieren
- Filter und Navigation implementieren
- OData Entities erstellen und testen
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.
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:
- Verbinden Sie sich mit ihrem SAP NetWeaver Gateway
- Starten Sie die Transaktion /IWFND/MAINT_SERVICE (beachten Sie, dass Sie die Transaktion im Kommandofeld so starten müssen: /N/IWFND/MAINT_SERVICE)
- Suchen Sie ihren Service und markieren Sie ihn
- Klicken Sie anschließend auf Gateway Client
- Im folgenden Fenster können Sie HTTP Anfragen an den Service schicken
- 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’)
- Die Antwort vom Server steht nun auf der rechten Seite. Kopieren Sie diese nun auf die linke Seite mit dem Button Als Anf. verwenden
- 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”/>)
- Stellen Sie nun auf HTTP Post um und wählen Sie Ausführen
- Ihr X_CREATE_ENTITY Methode sollte nun ausgeführt werden (am besten überprüfen Sie dies mit einem externen Breakpoint).
- Doppelklicken Sie auf ER_ENTITY und Sie sollten die angegebenen Daten sehen.
Im Bild unten sehen Sie meine POST-Anfrage:
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.