
Skript: OData Batch Creator [007]
Du möchtest einfach und ohne Kopfschmerzen Batch-Requests in OData erstellen und testen können? Ohne die Regeln zu kennen wird es schwer. Mit diesem kleinen Tool sollte es in Zukunft aber kein Problem mehr sein.
Inhaltsverzeichnis
Einleitung
Herzlich Willkommen zur aktuellen Folge. In dieser Folge geht es um den O Data batch Creator, ein Tool was wir selbst geschrieben haben. Bevor wir allerdings in das Tool einsteigen, schauen wir uns noch einmal das API Pattern für Rap an. Beim RAP Pattern geht es darum dass wir einen Endpunkt zur Verfügung stellen, der Daten entgegennehmen kann. Das Objekt ist sehr einfach aufgebaut wir haben einen Service und eine Custom Entity, diese fungiert als Struktur und wir bauen dazu einen Behavior welches die Daten durch das RAP Framework schleust und am Ende können wir die Daten flexibel verarbeiten. Innerhalb des RAP Frameworks verwenden wir die Methoden CREATE, CHECK_BEFORE_SAVE und SAVE. Damit wir die Daten von der Create Methode übergeben können verwenden wir einen lokalen Puffer innerhalb der Klasse.
Schauen wir uns dazu einmal die Implementierung in den ABAP Development Tools an, dazu haben wir bereits das Paket in unsere Struktur eingebunden. Dazu öffnen wir im ersten Schritt die Custom Entity und schauen uns die Struktur an. Hier findest du 4 Felder, die unsere Daten wiederspiegeln. Als nächstes gehen wir in die Behavior Implementation dort schauen wir uns die CREATE Methode an. In der Create Methode übernehmen wir die Daten nur noch in den Puffer, mehr Aufgaben hat diese Methode nicht. In der CHECK_BEFORE_SAVE Methode haben wir die Möglichkeit die Daten aus dem Puffer zu nehmen und zu überprüfen, sollten wir Fehler finden oder die Daten nicht vollständig sein so können wir die Datensätze ablehnen lehnen und diese werden als Fehler an den Aufrufe zurückgegeben. Die letzte Methode ist die SAVE Methode, diese ist nur noch dafür verantwortlich die Daten dann an die Weiterverarbeitung zu übergeben.
Den Artikel findest du in der Videobeschreibung um weitere Details zur Funktionsweise des RAP Patterns zu erfahren.
Metadata
Im nächsten Schritt brauchen wir die Metadaten des Services, dazu verwenden wir das Tool Postman in der Online Version. Hier haben wir bereits eine Abfrage vorbereitet, hierbei handelt es sich um eine GET Abfrage. Hinter dem Service findest du $metadata, ansonsten gibt es nichts weiter zu beachten außer dass wir uns Anmelden müssen am Service. Die Anmeldung und die URL ist bereits im Hintergrund vergeben. Den Inhalt des Ergebnisses können wir über die Taste kopieren und in einer neuen XML Datei speichern.
OData Batch Creator
Das Tool findest du auf unserer Seite im Menü unter SAP. Aktuell befindet sich das Tool noch im Beta Status. Im ersten Schritt müssen wir die Datei laden um alle möglichen Informationen aus dem Service bekannt zu geben. Nach dem Laden können wir neue Defaktionen definieren hierbei handelt es sich um die verschiedenen Aktionen die wir dem Batch Request mitgeben möchten. Insgesamt definieren wir 3 Aktionen, um 3 neue Datensätze anzulegen. Über den Button Refresh laden wir dann die Daten in die Anzeige. Dort sehen wir die Erweiterung für die URL, den neuen Content den wir benötigen und die Payload die wir jetzt noch anpassen müssen. Zum Abschluss passen wir noch die einzelnen Datensätze an, die Location ID muss mit einem "L" beginnen hier können der eine freie Nummer verwenden, als Location Namen nehmen wir einen Ort und um es zu vereinfachen verwenden für für die Koordinaten eine zufällige Richtung. Die Einwohnerzahl definieren wir ebenso zufällig, um einige Testdaten zu erhalten. Zum Abschluss kopieren wir den Content Type, sowie die Payload.
Test
Zum Abschluss beginnen wir mit dem eigentlichen Test, dazu kopieren wir die Payload in den Body unserer Abfrage und den Content-Type in die Header Felder. Der Content-Type ist deshalb wichtig, weil er die Batch-ID enthält die eindeutig ist. Wichtig ist dass wir am Ende der URL einen $batch haben.
Im nächsten Schritt brauchen wir einen X-CSRF-Token diesen holen wir uns über eine einfache GET Abfrage. Dazu müssen wir in den Header-Feldern ein FETCH mitgeben. Haben wir die Abfrage durchgeführt dann finden wir im Response-Header den entsprechenden Token den wir dann in unserem Batch-Request verwenden können.
Den Token kopieren wir uns dann und fügen ihn in unserem Batch-Request in den Header ein. Hier darauf achten dass keine Sonderzeichen oder Leerzeilen enthalten sind. Bevor wir dann die Abfrage abschicken, setzen wir noch einen Breakpoint bei uns in der SAVE Methode. Wichtig dabei ist, den Breakpoint auf den externen User zu setzen mit dem wir uns auch am System anmelden. Führen wir dann die Abfrage durch startet bei uns der Debugger und wir befinden uns in der SAVE Methode. Dort können wir dann die Einträge prüfen, die wir erhalten haben. Die Daten entsprechen den konfigurierten Daten der Anfrage.
Zum Abschluss lassen wir den Debugger durchlaufen und speichern das Ergebnis. Gehen wir dann zurück in den Postman, können wir das Ergebnis prüfen, in dem wir uns den Response anschauen. Dort finden wir für jeden Datensatz einen eigenen Response der den Status 201 haben sollte.
Fazit
Das API Pattern ist ein spezielles Pattern für Endpunkte bei dem wir vor allem das RAP Framework wiederverwenden. Damit können wir sehr leicht Endpunkte im System umsetzen und die weitere Verarbeitung sehr flexibel gestalten. Mit dem OData Batch Creator können wir dann ganz einfach diesen Endpunkt testen und eine Massenverarbeitung simulieren. Möchtest du weitere Informationen zum Tool haben Dann schau bei uns auf der Seite vorbei.
Danke fürs Zuschauen und bis dahin.
YouTube
Video