Ansicht
Dokumentation

ABENICF_SERVICE_ABEXA - ICF SERVICE ABEXA

ABENICF_SERVICE_ABEXA - ICF SERVICE ABEXA

Vendor Master (General Section)   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Aufruf eines HTTP-Service

Das Beispiel demonstriert den direkten Aufruf eines HTTP-Service des ICF mit einem Web-Browser.

Quelltext

Ausführen

Beschreibung

Ein in der Servicepflege (Transaktion SICF) definierter HTTP-Service kann dort getestet werden. Wenn der URL des Service bekannt ist, kann er aus dem Internet, z.B. durch die Eingabe der Adresse in einem Browser, aufgerufen werden. Im vorliegenden Beispiel wird ein solcher Service mit Hilfe einer generierten Webseite aufgerufen, die einen Verweis auf den URL des Service enthält. Der URL wird aus Host und Port der aktuellen , dem Pfad im Servicebaum und einem Formularfeld zusammengesetzt. Host und Port werden mit der Methode CL_HTTP_SERVER=>GET_LOCATION besorgt. Das Formularfeld carrid wird mit dem Inhalt eines Felds versehen, das zuvor über eine Benutzereingabe gefüllt wurde. Bei Auswahl des Verweises zeigt der Browser die vom Service zurück gegebene HTML-Seite an. Im Eingabefeld des Browsers kann der Inhalt des Formularfelds carrid geändert werden, um andere Daten darzustellen.

Der aufgerufene HTTP-Service ist in der Transaktion SICF als Knoten /sap/bc/abap/demo definiert. Der zugeordnete HTTP-Request-Handler ist die Klasse CL_HTTP_EXT_SERVICE_DEMO. Wenn der URL des Services um ein Formularfeld "...&carrid=..." ergänzt ist, wird dessen Inhalt als Schlüssel verwendet wird, um zugehörige Daten aus der Datenbanktabelle SPFLI zu selektieren. Die Klasse CL_HTTP_EXT_SERVICE_DEMO implementiert hierfür das Interface IF_HTTP_EXTENSION und dessen Methode HANDLE_REQUEST. Diese Methode wird vom ICF aufgerufen, wobei eine Referenz auf ein Server-Objekt übergeben wird, welches das Interface IF_HTTP_SERVER implementiert. Die Attribute REQUEST und RESPONSE dieses Interfaces verweisen wiederum auf Objekte, welche die Interfaces IF_HTTP_REQUEST bzw. IF_HTTP_RESPONSE implementieren. Mit dem REQUEST-Objekt wird das Formularfeld ausgelesen, mit dem RESPONSE-Objekt wird das Ergebnis zurück geliefert.

Mit der eingebauten Funktion escape und der Methode ESCAPE_QUOTES der Klasse CL_ABAP_DYN_PRG wird Cross Site Scripting und SQL-Injections vorgebeugt. Der Inhalt der gemäß dem übergebenen Formularfeld gefüllten internen Tabelle connections wird vor der Übergabe an das RESPONSE-Objekt mit der Klasse CL_DEMO_OUTPUT nach HTML konvertiert.

Hinweis

Damit das Beispiel funktioniert, muss der HTTP-Service in der Transaktion SICF aktiviert sein.






ABAP Short Reference   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 3921 Date: 20240523 Time: 155127     sap01-206 ( 79 ms )