
Interaktionsmodell
Analog zu der Grafik im Abschnitt
Interaktionsmodell in der Serverrolle wird im folgenden der Daten- und Kontrollfluss für die Clientrolle beschrieben. Wenn ein ABAP-Anwendungsprogramm im SAP-System einen HTTP-Request ins Internet sendet, werden folgende Schritte durchgeführt (siehe auch Erläuterungen, die unterhalb der Grafik aufgeführt sind).

- Erzeugen eines Objektes der Klasse
CL_HTTP_CLIENT
. Dieses wird in folgenden als Client-Kontrollblock (analog zum Server-Kontrollblock) bezeichnet. Die Struktur ist unter
Interface IF_HTTP_CLIENT beschrirben.
Dies geschieht durch den Aufruf der Methode
CL_HTTP_CLIENT=>CREATE
bzw.
CL_HTTP_CLIENT=>CREATE_BY_DESTINATION
. Der Aufruf erfolgt im ABAP-Anwendungsprogramm, das den Request sendet.
Beachten Sie bitte, dass auch die Aktivitäten der Punkte 2, 3, 5, 7, 8 und 9 durch das ABAP-Anwendungsprogramm angestoßen werden müssen – durch Aufrufen von entsprechenden Methoden. Das ABAP-Anwendungsprogramm arbeitet also mit den Komponenten der Klasse
CL_HTTP_CLIENT
, um die Request- und Response-Daten verarbeiten zu können
CL_HTTP_CLIENT=>CREATE
aufgerufen werden soll, müssen dieser Methode die folgenden Informationen zur Verfügung stehen:
HOST
(Hostname),
SERVICE
(Port),
PROXY_HOST
(Hostname des Proxy-Rechners),
PROXY_SERVICE
(Port des Proxy-Rechners)
und
SCHEME
(Angabe, ob HTTP oder HTTPS verwendet werden soll; mit dem Default-Wert
‚SCHEMETYPE_HTTP’
).
Falls die Methode
CL_HTTP_CLIENT=>CREATE_BY_DESTINATION
aufgerufen werden soll, muss die gewünschte HTTP-Destination in der Transaktion SM59 gepflegt sein (Knoten
HTTP-Verbindungen zu R/3 System oder HTTP-Verbindungen zu ext. Server). Details zu den Einstellungen sind unter
Verbindungsaufbau über Destination (SM59) beschrieben.
- Füllen des erzeugten Client-Kontrollblocks:
Das Attribut
REQUEST
wird mit den gewünschten Request-Daten gefüllt.
Absenden des Requests durch Aufruf der Methode
SEND
.
Die Verbindung wird geöffnet, der Request wird in einen HTTP-Datenstrom verwandelt (serialisiert).
Über Taskhandler und Internet Communication Manager geht der Request an den gewünschten HTTP-Server.
Falls der HTTP-Server eine Authentifizierung verlangt (z.B. wenn er auch ein SAP-System ist), erfolgt nun der Logon des Clients.
Dies geschieht über ein SAP-Anmelde-Popup, falls der HTTP-Server ein SAP-System ist, ansonsten über das HTTP-Standard-Popup. Diese Abfrage, ob für die Authentifizierung das SAP-Anmelde- oder HTTP-Standard-Popup verwendet werden soll, wird innerhalb der Methode
RECEIVE
durchgeführt (siehe 7.).
Diese Authentifizierung erfolgt nur in Dialogprozessen, in Batchprozessen wird dieser Schritt nicht durchgeführt.
Der HTTP-Server generiert eine Response und sendet sie zurück.
Durch Aufruf der Methode
RECEIVE
werden die Response-Daten eingelesen und das Attribut
RESPONSE
des Client-Kontrollblocks gefüllt.
Verarbeitung oder Ausgabe der Daten durch Zugriff auf das Response-Attribut.
Es ist auch möglich, die Ausgabe an das HTML-Control zu übergeben, dann wird die Response wie in einem Browser dargestellt.
Schließen der Verbindung durch Aufrufen der
CLOSE
-Methode.

Das folgende ABAP-
Beispielprogramm führt einen HTTP-Request aus. Der Request geht an dieselbe SAP-Instanz, der SAP Web Application Server kann ja sowohl Client als auch Server sein.