Web Dynpro war gestern, UI5 ist heute? – Eine Einführung in SAP UI5 – Teil 6
>> Aktualisiert am 09.08.2021 <<
Dies ist der sechste Teil der mehrteiligen Blog-Reihe „Einführung zu SAP UI5“, in welcher wir Ihnen zeigen möchten, wie Sie Oberflächen mit der neuen SAP-Technologie UI5 entwickeln können. Im vorherigen Teil der Reihe haben Sie Ihre erste Anwendung mit mehreren Views erstellt. In diesem Teil beschäftigen Sie sich mit der Kommunikation zum Backend System, also wie Sie Daten an Ihr SAP HR System schicken und Daten aus dem System in Ihre Anwendung laden. Dieser Teil behandelt dabei ausschließlich die Theorie, die Praxis, also das Implementieren eines eigenen Services sowie das Ansprechen des Services aus Ihrer UI5 heraus ist Inhalt des nächsten Artikels.
Was Sie in diesem Artikel lernen
Nach diesem Artikel können Sie
- erklären, wie die Kommunikation zwischen SAP System und UI5 Anwendung funktioniert
- erklären, was REST- und CRUD-Operationen sind
Rest und OData
Warum eigentlich OData
In alten Zeiten war die Kommunikation zwischen der Benutzeroberfläche (z.B. der SAP-GUI oder einer WebDynpro-Anwendungen) und dem SAP-Backend nichts, was für einen Entwickler relevant war. Es hat „einfach funktioniert“. Dies hatte den Nachteil, dass die entsprechende Anwendung auch nur mit der entsprechenden Oberfläche zu benutzen war. Als Entwickler konnte man nicht einfach eine „andere“ SAP-GUI schreiben.
Bei UI5-Anwendungen hat die SAP die Verknüpfung zwischen Oberfläche (also der Anwendung im Browser) und Backend (dem SAP-Server) gelockert. Es können verschiedene UI5-Anwendungen auf den gleichen Backend-Service zugreifen. Oder andersherum kann eine UI5-Anwendung auch Nicht-SAP-Backends ansprechen. Das geht so weit, dass theoretisch, mittels komplett anderer Technologien SAP-Oberflächen erstellt werden können, solange es für die Programmiersprache eine OData-Implementierung gibt.
Die Konsequenz aus dieser Lockerung ist allerdings, dass man als Entwickler die Schnittstelle zwischen Benutzeroberfläche und SAP-Server explizit definieren und entwickeln muss. Für so eine Schnittstelle gibt es verschiedene technische Möglichkeiten. Die SAP verwendet dazu das sogenannte OData-Protokoll, dass auf REST basiert.
Was ist REST
Die Kommunikation zwischen Applikationen auf Ihrem lokalen Rechner und Services im Internet ist heutzutage nicht mehr weg zu denken, doch wie funktioniert diese eigentlich? Es wurden im Laufe der Jahre viele Protokolle veröffentlicht, einige sehr komplex, andere eher leichtgewichtig. Eine sehr einfache Möglichkeit zur Kommunikation ist das REST-Protokoll. REST baut auf HTTP auf, genau wie das klassische Internet.
Wenn Sie an das klassische Internet denken, stellen Sie über Ihren Webbrowser eine Anfrage an eine URI in der Form http://www.L3Consulting.de. Zurück bekommen Sie eine Webseite, genau genommen eine Datei im .html-Format, die Ihr Webbrowser darstellt. Bei REST sprechen Sie mit einer URI keinen Webserver, sondern einen Applikationsserver bzw. einen Service. Eine ganz konkrete URI spricht eine Methode in einem Programm an. Zurückgeliefert wird hier kein .html-Dokument, sondern Daten, bspw. im XML-Format, mit denen das Programm arbeitet.
Ein Beispiel:
http://L3Consulting.de/services/Anwendung1/Klasse1/Methode1/pernr=00000005
Auf dem Applikationsserver L3Consulting.de gibt es eine Anwendung die „Anwendung1“ heißt. In dieser Anwendung gibt es eine „Klasse1“, welche eine „Methode1“ hat. Übergeben wird die Personalnummer „00000005“. Zurückgeliefert wird kein HTML-Dokument, sondern bspw. ein XML- oder JSON-Dokument, mit verschiedenen Informationen für die lokale Anwendung.
HTTP – und damit REST – unterstützen vier wesentliche Arten von Methoden:
- GET
- POST
- PUT
- DELETE
Jede dieser Methodenarten ist für unterschiedliche Aufgaben zuständig. Mit POST können Sie z.B. umfangreiche Dokumente an den Webserver schicken, während GET dafür da ist, umfangreiche Dokumente vom Server zu laden. Im klassischen Internet würde ein POST ausgeführt werden, wenn Sie ein Formular ausgefüllt haben, z.B. um sich bei Google zu registrieren, während ein GET ausgeführt wird, wenn Sie über Google eine Webseite aufrufen, bspw. www.L3Consulting.de. PUT dient dazu, Ressourcen die sich auf einem Server befinden zu ändern, DELETE um Sie zu löschen.
Diese Operationen werden auch CRUD-Operationen genannt. CRUD steht für „Create, Read, Update, Delete“. Wenn Sie ABAP-Entwickler sind, sind Ihnen diese Operationen schon oft begegnet, auch wenn Ihnen CRUD vielleicht nichts sagt. Denken Sie an Insert, Select, Update und Delete
Was ist OData?
REST ist im Grunde genommen nur eine Spezifikation, eine Vorgabe. OData ist eine konkrete Implementierung, die darüberhinaus bestimmte Vorgaben macht, also REST einschränkt. Ein Beispiel dafür wäre, dass unter OData nur XML- und JSON-Daten übertragen werden dürfen, Binärdaten sind verboten. Mittels OData können also GET-, POST-, PUT- und DELETE-Methoden von Services im Internet aufgerufen werden.
SAP Gateway
SAP Gateway ist eine Komponente im SAP, die für die Kommunikation mit externen Anwendungen zuständig ist. SAP Gateway bietet zur Kommunikation ein OData Interface. Sie können in SAP OData-Services anlegen, die auszutauschenden Daten definieren sowie Methoden, die die GET-, POST-, PUT- und DELETE-Operationen implementieren. Dazu aber im nächsten Blogartikel mehr.
Wie läuft die Kommunikation
Während Web-Dynpro ein serverseitiges Framework ist, das heißt, die Dialogsteurung und Verarbeitung auf dem Server durchgeführt wird, passiert dies bei UI5 auf dem Client im Webbrowser. Über JavaScript im Webbrowser wird die Eingabe des Benutzers verarbeitet und bestimmt, welche Daten vom Server angefordert werden. Der Applikationsserver hält lediglich die Daten.
Das bedeutet allerdings nicht, dass auch Geschäftslogik in UI5 ausgeführt wird. Diese wird in normalen ABAP-Klassen ausgeführt und hat in UI5 sowie in den Serviceklassen nichts zu suchen!
Ausblick
Das in diesem Teil vermittelte theoretische Wissen wird im nächsten Teil dieser Serie angewandt. Sie werden einen eigenen SAP Gateway Service schreiben mittels diesem Datensätze auf dem Applikationsserver anlegen, auslesen und löschen.
Haben Sie Fragen, Anregungen, positive oder negative Kritik? Oder möchten Sie bestimmte Punkte des Artikels noch näher erläutert bekommen? Dann kontaktieren Sie uns.