Vereinfachte Nutzung von OData Services - getestet mit SAP S/4HANA

Neue OData Komponenten von Talend

Das Open Data Protokoll, kurz OData, ist ein Standard, der Best Practices für die Nutzung von RESTful APIs definiert. OData ist allerdings kein neuer Standard. Er befindet sich aktuell bereits in der Version 4 und lässt sich in zahlreichen (oder zunehmend mehr) Produkten finden – beispielsweise in SAP S/4HANA. Die Anzahl von Schnittstellen bewegen sich hier in beinahe vierstelligem Bereich, wenn die OData V2, V4 und die sowohl On-Premise als auch die Cloud Services zusammengezählt werden.  

Die Prinzipien des Standards sind zu viele, um sie im Rahmen dieses Beitrags aufzuzählen. Sie betreffen nicht nur Methoden, Ressourcen und Zustände, sondern inkludieren auch Query-Parameter, JSON-Strukturen in Input und Output Referenzen zu weiteren Objekten.  Aber fairerweise lässt sich der Standard nicht mit einem Satz beschreiben. 

Inzwischen gibt es viele Tools, die OData ansprechen. Auch Excel (OData stammt ursprünglich von Microsoft) bietet seinerseits bereits die Möglichkeit, aus OData Daten zu lesen. OData Services können andererseits aber auch Daten konsumieren. Talend verspricht mit den erstmalig mit dem Patch R2024-01 veröffentlichten OData Komponenten diese beiden Szenarien abzubilden. Wir haben es uns zur Aufgabe gemacht, diese Komponenten zu testen und Ihnen die Ergebnisse in diesem Beitrag vorzustellen. Unsere Erwartungshaltung ist, dass die Verwendung dieser beiden Komponenten einen deutlichen Vorteil in Gegensatz zur Verwendung der herkömmlichen tRESTClient-Implementation darstellt.

Anlegen der Talend Meta-Daten

Um die Nutzung der Komponenten möglichst bequem und generisch zu halten, können ODataMeta-Daten angelegt werden. 

Screenshot Anlegen der Talend Meta-Daten

Die OData Schnittstelle lässt sich hier, wie von Talend gewohnt, einfach einrichten. Anschließend können pro Eintrag die Entitätsgruppen der jeweiligen Schnittstelle geladen werden.  

Allgemeines zu Talend tODATAInput & tODATAOutput

Die neuen ODataKomponenten sind in ihrer Konfiguration einfach gestaltet. In Summe liefert Talend zwei Komponenten zur Nutzung: tODATAInput & tODATAOutput. Wie bereits aus anderen Komponenten vertraut impliziert die Input Komponente das Lesen aus dem Service und die Output Komponente beschreibt das Einfügen, Aktualisieren und das Löschen von Daten in dem Service. 

Beide Komponenten erlauben es, das Schema aus dem Service zu laden. Ist dies erst einmal erfolgt, so können weitere Talend-Komponenten mit diesem Schema versorgt werden. Das Schema liefert Informationen darüber, wie der Datentyp definiert ist. Pflichtfelder, z. B. Schlüsselfelder, müssen jedoch manuell gesetzt werden. 

Testergebnisse der Komponenten mit SAP S/4HANA On-Premise & Public Cloud

Extrahieren von Daten aus dem Service via tODATAInput

Die Verwendung dieser neuen Komponenten zeigen wir anhand eines exemplarischen Szenarios, das den Austausch von Bank-Stammdaten mit einem SAP S/4 HANA abbildet. In welcher Form das SAP S/4 HANA betrieben wird, spielt bei der Verwendung der ODataKomponenten keine Rolle. Sowohl in der Variante On-Premise als auch in der Variante Public Cloud, werden durch SAP bereits eine Vielzahl an vorkonfigurierten OData-Service angeboten.   

Fangen wir mit dem Beispiel des Auslesens der Daten aus einer OData v4 an. 

Nachdem die Metadaten des OData-Service abgerufen und in das Repository integriert worden sind, kann die tOData-Input-Komponente in einem neuen Job genutzt werden. Dafür können wir aus den Meta-Daten die jeweilige Entitätsgruppe auswählen und die Komponente via Drag & Drop eine tODATAInputin den Job-Designer ziehen. Mit “Guess Schema” wird das Schema der Entitätsgruppe ermittelt. 

Als Nächstes soll die Datenmenge reduziert werden. Hier sind für uns lediglich die ersten drei Einträge bzw. Banken, interessant. Das Ergebnis soll absteigend anhand der BankInternalID sortiert angezeigt werden.  

Zu Testzwecken wird noch eine tLogRow hinter die tODATAInput-Komponente platziert und der Job gestartet. Die Konsolenausgabe ist wie folgt: 

Wir haben anhand dieses einfachen Szenarios gezeigt, wie in nur wenigen Klicks Daten aus einem OData Service mit der tODATAInput Komponente gelesen werden können. 

Laden in den OData Service mithilfe von tRESTClient und tODATAOutput

Das Schreiben in die OData Services von SAP lässt sich ebenfalls einfach mit Talend bedienen. Im Folgenden wird gezeigt, wie mithilfe der tRESTClient-Komponente die Daten nach SAP übertragen werden können. 

Wir bleiben hierfür beim Beispiel der Anlage einer Bank. 

Die Abbildung zeigt ein Muster, welches wir von Talend bereits kennen. Es ist jedoch ersichtlich, dass mit einer tRESTClient-Implementation mehrere Komponenten zur Manipulation der Daten notwendig sind. 

Lassen Sie uns daher ein Beispiel mit der tODATAOutput konstruieren. Zum Schreiben der Daten benötigen wir lediglich die Komponente an sich. Mit dieser möchten wir einen existierenden Eintrag in SAP aktualisieren. Dafür wählen wir in den Basiseinstellungen “Aktualisieren” als Ausgabeaktion und als Update Type „Patch“ aus. 

In diesem Beispiel verwenden wir die Option, den JSON-Body individuell zu definieren. Dafür wählen wir die Checkbox im gelbmarkierten Bereich aus. Anschließend werden noch die Schlüsselfelder übergeben, die als Update-Key benötigt werden (blaumarkierter Bereich), Update-Payload wird in  Request-Body übergeben. Wir lassen den Job laufen und der Eintrag ist erfolgreich aktualisiert. 

Probleme mit der tODATAOutput

Die aktuelle Version der tODATAOutput birgt noch einige Herausforderungen mit den SAP OData Services. Wie bereits erwähnt, sind aktuell nur die OData V4 realisierbar. Wir haben aber auch festgestellt, dass bei Anlage / Einfügen von Datensätzen, ein nicht beeinflussbarer Header-Parameter für Schwierigkeiten sorgt. Diesbezüglich sind wir aktiv in Austausch mit Talend und hoffen auf eine zeitnahe gemeinsame Lösung. 

Zusammenfassung

OData mit der Summe von Best Practices, die die Arbeit mit REST deutlich vereinfachen, ist kein neuer Begriff. REST-Interfaces, die dem OData Standard folgen, nehmen deutlich zu. Darunter befindet sich z. B. auch SAP S/4HANA Public Cloud. Hier übernehmen die OData Services sogar eine zentrale Rolle. Aus fachlicher Sicht ist zu erwarten, dass die Verwendung von OData Services in Zukunft generell an Bedeutung gewinnen wird. 

Mit dem Patch R2024-01 veröffentlicht Talend erstmalig zwei OData-Komponenten, mit denen die Nutzung von OData V4 Services vereinfacht wird. Wir haben tODATAInput und tODATAOutput mit der Schnittstelle der Bank-Stammdaten aus SAP S/4 HANA getestet. Anhand unserer Testergebnisse haben wir festgestellt, dass sich das Ansprechen des OData Services mit den neuen OData-Komponenten deutlich einfacher als mit der herkömmlichen tRESTClient-Implementation gestaltet. Wir haben Bankdaten sowohl erfolgreich ausgelesen als auch manipuliert. Auf Herausforderungen sind wir bei der Konfiguration der tODATAOutput gestoßen, die wir beseitigen konnten. Da beide Komponenten jedoch lediglich OData V4 unterstützen, kann mit Ihnen nicht jeder OData Service abgerufen werden. Diese Einschränkung birgt Ausbaupotenzial. Zusammenfassend können wir die Verwendung der OData-Komponenten allerdings empfehlen.  

Neugierig geworden?

Interessieren Sie sich für die Nutzung und den Einsatz von OData Services in der SAP-Private oder Public Cloud? Nutzen Sie eventuell die S/4HANA On-Premise und möchten dort die OData Services verwenden? Oder interessieren sich allgemein für die Möglichkeiten, OData Services in Ihrem Unternehmen anzubinden?

Dann kommen Sie gerne auf uns zu! Mit unserem breiten Wissen zu SAP-Produkten und Integrationstechnologien können wir mit Ihnen gemeinsam neue Prozesse umsetzen und optimieren. 

Kontakt

Sven Landmann
Telefon: +49 (0)40 53302-0
E-Mail: kontakt@cimt-ag.de

cimtAcademy

Jetzt registrieren und keine Veranstaltungen mehr verpassen.​



    OData V4

    Alle OData APIs finden Sie auf folgender Seite: SAP S/4HANA Cloud Public Edition

    Nach oben scrollen