Taschenrechner via GET-Methode und Übergabe von Parametern im Query-Part
Mittels GET-Request werden zwei Ganzzahlen als sogenannte Query-Parameter an ein Profil übergeben:
http://<Server>/dw/Request/profilSuffix? int_1 = 24 & int_2 = 42 |
Hinweis: Die Query-Parameter, hier rot und blau hervorgehoben, werden durch ein Fragezeichen (?) in der URL eingeleitet. Die Query setzt sich aus Paaren von Schlüssel (rot) und Wert (blau) zusammen. Die Zuordnung der Werte an die Schlüssel (auch Parameter genannt) erfolgt durch Gleichheitszeichen (=). Die Paare sind untereinander durch kaufmännische UNDs (&) getrennt.
Auf die einzelnen Query-Parameter können Sie im Mapping über die System-Variable MSG_CALL_HEADER_HTTP_QUERY zugreifen. Zudem stehen Ihnen weitere Informationen, wie z. B. der komplette Query-Part, als Variablen zur Verfügung.
Schritt 1 - Basis Daten
Erstellen Sie bitte ein neues Profil mit einem aussagekräftigen Namen, z. B. Lobster_Tutorial_HTTP_simple_calculator.
Wählen Sie die Mapping-Art Daten-Routing oder Kein Mapping aus, da die GET-Methode keinen Request-Body besitzt und somit der Inhalt des Eingangsdokuments irrelevant ist.
Schritt 2 - Phase 1
Wählen Sie in Phase 1 den eventgesteuerten Eingangsagenten des Typs HTTP aus.
Um einem Profil Daten per HTTP zu senden, muss man eine bestimmte URL ansprechen. Der schematische Aufbau der URL lautet: <Protokoll>://<Server>:<Port><URL-Kontext>/<URL-Suffix><Query>
Protokoll: http(s)
Server und Port: DNS-Name oder IP-Adresse des Integration Servers und optional der Port.
URL-Kontext: Bei Profilen mit eventgesteuertem HTTP-Eingangsagenten dw/Request oder für zeitgesteuerte Profile /dw/Trigger
URL-Suffix: Sprechender Name, der Funktionalität des Profils beschreibt.
Wählen Sie als URL Adress-Suffix für dieses Profil den Wert simple_calculator. Somit ist das Profil unter https://<Server>/dw/Request/simple_calculator erreichbar.
Hinweis: Eine umfassende Erklärung aller Einstellungen für den Eingangsagenten HTTP finden Sie in der Kontexthilfe.
Aktivieren Sie die Checkbox GET, wie im obigen Screenshot gezeigt.
Damit der Aufrufer eine dynamische Antwort erhält, setzen Sie bitte unter Antwort senden durch den Radiobutton 'Eigene Klasse' oder 'Datenrückgabe' im Antwortweg des Profils.
Die Antwort bei Fehler ist in einer Übungsaufgabe nicht "kriegsentscheidend" und wir empfehlen hier einfach eine sprechende Fehlermeldung einzutragen, die auch das Profil eindeutig identifiziert, z. B. error@Lobster_Tutorial_HTTP_simple_calculator {--Exception--}.
Schritt 3 - Variablen setzen in Phase 3
Um auf die Query-Parameter int_1 und int_2 in Phase 3 zugreifen zu können, müssen Sie vorab die folgenden MSG_CALL-Variablen deklarieren:
MSG_CALL_INT_1
MSG_CALL_INT_2
Diese MSG_CALL-Variablen werden beim Aufruf des Profils (per HTTP-Call) mit den übergebenen Werten befüllt, somit stehen die Werte im Mapping zur Verfügung.
Schritt 4 - Zielstruktur erstellen und Berechnung in Phase 3
Eine Quellstruktur ist bereits vorhanden, wenn Sie in den Basis-Daten die Option Daten-Routing gewählt haben. Hier werden Dummy-Daten erstellt, da die Eingangsdaten keine Relevanz haben und damit nicht geparst werden müssen.
Erstellen Sie einen Zielstrukturknoten mit dem Namen Result und ein Feld result darunter. Im Feld result wollen wir die komplette Gleichung anzeigen lassen. Sprich, für den Benutzer, der folgenden HTTP-Request sendet
http://<Server>/dw/Request/simple_calculator? int_1 = 24 & int_2 = 42 |
, soll im Body der HTTP-Response folgender Text zurück gegeben werden: 24 + 42 = 66
Definieren Sie folgende Funktionen auf dem Zielstrukturfeld r esult:
result:
1. a + b
a Variable: MSG_CALL_INT_1
b Variable: MSG_CALL_INT_2
2. concat(a,b,c,d,e,f,g,h, [CR-support i])
a Variable: MSG_CALL_INT_1
b Wert: " + "
c Variable: MSG_CALL_INT_2
d Wert: " = "
e Ergebnis: 1 (d. h. die Berechnung aus der ersten Funktion)
Die erste Funktion dient der Addition der Werte, während mit der zweiten Funktion die Zeichenkette generiert wird.
Schritt 5 - Phase 6 und Ausgabe
Im Eingangsagenten in Phase 1 wurde ganz bewusst die Option 'Eigene Klasse' oder 'Datenrückgabe' im Antwortweg des Profils gesetzt, um eine dynamische Antwort zu erzeugen.
Nun legen Sie in Phase 6 einen neuen Antwortweg des Typs Eigene Klasse - PassBackDataResponse an, um eine Antwort von diesem Profil zu erhalten. Sollte dieser Antwortweg fehlschlagen, wird der ganze Job scheitern (Option ist standardmäßig im Antwortweg aktiviert).
Als Inhalts-Einstellung wählen Sie bitte FixRecord aus. Dieses Format bietet in der Praxis eine Ausgabe, in der der Implementierer keine festen Zeichenlängen verwendet oder bestimmte Trennzeichen generiert.
Speichern Sie den Antwortweg und das Profil bitte ab.
Geben Sie die folgende Adresse über Ihren Browser ein: http://<Server>/dw/Request/simple_calculator? int_1 = 24 & int_2 = 42
In der Log-Übersicht im Control Center finden Sie die Informationen und Meta-Daten zum Profil.