!--a11y-->
R/3-Funktionsaufrufe mit SAP-Web-Listen verknüpfen 
Sie können interaktives Web-Reporting implementieren, indem Sie URL-Adressen mit Listenzeilen verknüpfen, die SAP-Web-Funktionsbausteine aufrufen. Sie können dann die Aufgaben in den Funktionsbausteinen programmieren, die das System nach bestimmten Benutzereingaben auf einer Internet-Liste ausführen soll.
Der Funktionsbaustein
WWW_SET_URL legt solche URL-Adressen automatisch an und speichert zeilenspezifische Informationen im Hide-Bereich.Um den Aufruf eines SAP-Funktionsbausteins in einer Zeile einer Internet-Liste zu implementieren, verwenden Sie den Funktionsbaustein WWW_SET_URL so in Ihrem Report:
·
Leere interne Tabelle der Struktur W3QUERY mit den Parametern füllen, die Sie dem Funktionsbaustein übergeben möchten. Die Struktur W3QUERY hat zwei Felder: NAME und VALUE.·
Listenzeile mit der Anweisung WRITE anlegen.·
WWW_SET_URL direkt nach der Anweisung WRITE aufrufen.·
Offset des gewünschten Links im Import-Parameter OFFSET angeben.·
Länge des gewünschten Links im Import-Parameter LENGTH angeben.·
Funktionsbaustein, den Sie in der URL-Adresse aufrufen möchten, als Literal oder Variable im Import-Parameter FUNC angeben. Der Funktionsbaustein muß die standardisierte Schnittstelle haben.·
Interne Tabelle mit den Parametern an den Tabellenparameter QUERY_STRING übergeben.Im Gegensatz zum interaktiven Standard-Reporting in ABAP müssen Sie anstatt eines Hide-Bereichs die interne Tabelle QUERY_STRING verwenden, um die für eine Listenzeile spezifische Informationen abzulegen, die Sie später in einem interaktiven Ereignis verwenden möchten.
Wenn Sie einen derartigen Report im Internet starten, handelt es sich bei dem angegebenen Teil der Listenzeile tatsächlich um ein Link. Die URL-Adresse dieses Links enthält den Aufruf des SAP-Web-Funktionsbausteins, der im Parameter FUNC übergeben wird, und eine Liste der Parameter, die in der internen Tabelle gespeichert ist, die im Parameter QUERY_STRING übergeben wird.

Für jede URL-Adresse können Sie verschiedene Web-Funktionsbausteine mit verschiedenen Parametern angeben.
Sollen Benutzer, die Reports aus dem R/3-System starten können, die gleichen Aktionen auch im Internet durchführen können, dann sollten Sie ein entsprechendes interaktives Ereignisschlüsselwort in Ihrem ABAP-Report aufnehmen.
Da Sie beim interaktiven Reporting im Internet zeilenspezifische Informationen mit dem Funktionsbaustein WWW_SET_URL und nicht mit der Anweisung HIDE ablegen, ruft das System diese Daten nicht automatisch wie bei einem interaktiven Standardereignis ab. Da Sie im R/3-System und im Internet die gleichen Aufgaben durchführen möchten, sollten Sie weiterhin die gleichen Funktionsbausteine innerhalb eines interaktiven Ereignisses aufrufen.
Für diese Aufgabe stellt das R/3-System den Funktionsbaustein
WWW_GET_URL bereit. Er gibt für jede interaktive Listenzeile die gleiche Information (d.h. Funktionsname und Parameter) zurück, wie sie mit WWW_SET_URL hintergelegt wurde.Nach dem Aufruf von WWW_GET_URL können Sie mit dieser Information aus dem R/3-System heraus den entsprechenden Funktionsbaustein für jedes interaktive Ereignis aufrufen. Da die Schnittstelle dieser Funktionsbausteine standardisiert ist, müssen Sie nur einen Funktionsaufruf mit einem dynamischen Funktionsnamen programmieren. Um die standardisierte Schnittstelle anbieten zu können, müssen Sie zwei zusätzliche interne Tabellen definieren, die auf die ABAP-Dictionary-Strukturen W3HTML und W3MIME in Ihrem Programm zeigen. Sie können diese Tabellen leer lassen.

Dieser Report ist mit der logischen Datenbank F1S verbunden:
REPORT W3HKTST2.
TABLES SPFLI.
DATA: QSTRING LIKE W3QUERY OCCURS 10 WITH HEADER LINE,
MYHTML LIKE W3HTML OCCURS 0 WITH HEADER LINE,
MYMIME LIKE W3MIME OCCURS 0 WITH HEADER LINE.
DATA FUNCT(100).
START-OF-SELECTION.
GET SPFLI.
REFRESH QSTRING.
QSTRING-NAME = 'CARRID'. QSTRING-VALUE = SPFLI-CARRID.
APPEND QSTRING.
QSTRING-NAME = 'CONNID'. QSTRING-VALUE = SPFLI-CONNID.
APPEND QSTRING.
WRITE: / 'O' HOTSPOT COLOR = 5,
SPFLI-CARRID ,
SPFLI-CONNID,
SPFLI-CITYFROM,
SPFLI-CITYTO.
CALL FUNCTION 'WWW_SET_URL'
EXPORTING
OFFSET = 0
LENGTH = 1
FUNC = 'SECONDARY_LIST'
TABLES
QUERY_STRING = QSTRING
EXCEPTIONS
INVALID_TABLE = 1
OTHERS = 2.
IF SY-SUBRC NE 0.
WRITE / 'Error in that line!'.
ENDIF.
END-OF-SELECTION.
AT LINE-SELECTION.
IF SY-CUCOL = 2.
CALL FUNCTION 'WWW_GET_URL'
IMPORTING
FUNC = FUNCT
TABLES
QUERY_STRING = QSTRING
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC NE 1.
CALL FUNCTION FUNCT
TABLES
QUERY_STRING = QSTRING
HTML = MYHTML
MIME = MYMIME
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC = 1.
WRITE 'Error !!'.
ENDIF.
ENDIF.
ENDIF.
Dieser Report erzeugt eine Grundliste aus der Datenbanktabelle SPFLI. Mit dem Aufruf des Funktionsbausteins WWW_SET_URL wird die erste Spalte jeder Zeile mit einer URL-Adresse verknüpft. Für jede URL wird der Funktionsbaustein SECONDARY_LIST angegeben. Die interne Tabelle QSTRING wird mit Parameterpaaren gefüllt und an WWW_SET_URL übergeben. QSTRING wird für jede neue Listenzeile geleert.
Sie starten den Report im Internet mit der URL-Adresse:
http://<mymachine:myport>/scripts/wgate/xgwfc/!?_FUNCTION=WWW_GET_SELSCREEN&_REPORT=W3HKTST2
Damit zeigen Sie ein Selektionsbild an. Wenn Sie Selektionskriterien eingeben und den Report ausführen, erscheint in Ihrem Browser die folgende Liste.
Reportliste im Internet-Browser

Die URL-Adresse der fünften Zeile sieht so aus:
href="/http://<mymachine:myport>/scripts/wgate/xgwfc/!?_FUNCTION=SECONDARY_LIST&CARRID=LH&CONNID=2402"
Hierzu gehören auch der Name des Funktionsbausteins und das Parameterpaar für die Fluggesellschaft und die Flugverbindungen.
Der Quelltext des Funktionsbausteins SECONDARY_LIST sieht so aus:
FUNCTION SECONDARY_LIST.
REFRESH HTML.
REFRESH MIME.
CONTENT_TYPE = 'text/html'.
TABLES SFLIGHT.
DATA: MY_CARRID LIKE SPFLI-CARRID,
MY_CONNID LIKE SPFLI-CONNID.
LOOP AT QUERY_STRING.
IF QUERY_STRING-NAME EQ 'CARRID'.
MY_CARRID = QUERY_STRING-VALUE.
ENDIF.
IF QUERY_STRING-NAME EQ 'CONNID'.
MY_CONNID = QUERY_STRING-VALUE.
ENDIF.
ENDLOOP.
WRITE: MY_CARRID, MY_CONNID.
ULINE.
SELECT * FROM SFLIGHT WHERE
CARRID EQ MY_CARRID
AND CONNID EQ MY_CONNID.
WRITE: / SFLIGHT-FLDATE,
SFLIGHT-SEATSMAX,
SFLIGHT-SEATSOCC.
ENDSELECT.
CALL FUNCTION 'WWW_LIST_TO_HTML'
TABLES
HTML = HTML.
ENDFUNCTION.
Diese Funktion liest zuerst die importierten Parameter aus der internen Tabelle QUERY_STRING. Sie erzeugt dann eine Ausgabeliste in einer SELECT-Schleife und sendet die Liste schließlich ins Internet.
Wenn Sie ein Link auf einer Web-Liste wählen, sehen Sie die folgende Aufrißliste.
Aufrißliste im Internet-Browser

Starten Sie den Report W3HKTST2 im R/3-System, ergibt sich die folgende Grundliste.
Ergebnisliste im R/3-System

Um dieser Liste eine ähnliches Aussehen wie der Web-Liste zu geben, wird die erste Spalte als Hotspot formatiert. Aktiviert der Benutzer den Hotspot, löst er das Ereignis AT-LINE-SELECTION aus.
Im Verarbeitungsblock dieses Ereignisses wird mit dem Funktionsbaustein WWW_GET_URL die für jede Zeile abgelegten Parameter abgerufen. Der Funktionsbaustein SECONDARY_LIST wird dann mit diesen Parametern dynamisch aufgerufen, und eine R/3-Aufrißliste erscheint.
Aufrißliste im R/3-System
Diese Liste hat den gleichen Inhalt wie die Aufrißliste im Internet (siehe oben).