Ansicht
Dokumentation

ABENAPC_ABEXA - APC ABEXA

ABENAPC_ABEXA - APC ABEXA

PERFORM Short Reference   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- AS ABAP als WebSocket-Server

Das Beispiel demonstriert ABAP Push Channels des AS ABAP als WebSocket-Server.

Quelltext

Ausführen

Beschreibung

Das Beispiel demonstriert eine bidirektionale Kommunikation zwischen einem Browser, der das WebSocket-Protokoll unterstützt, als APC-Client und einem AS ABAP als APC-Server. Die Aufgabe des obigen Beispielprogramms besteht darin, eine Webseite zur Anzeige zu bringen, welche die Kommunikation mit dem aktuellen AS ABAP durchführt. Es kann ausgewählt werden, ob

  • bei Verwendung des Subprotokolls PCP ein zustandsbehafteter Service verwendet werden soll.

Die Webseite wird von einem HTTP-Service des ICF zur Verfügung gestellt, deren URL für die aktuelle im Programm zusammengesetzt wird. Wenn der aufgerufene Standardbrowser keine Kommunikation über das WebSocket-Protokoll unterstützt, müssen Sie den URL mit einem Browser öffnen, der dafür geeignet ist.

Die Kommunikationspartner sind:

  • Die im HTTP-Request-Handler CL_HTTP_EXT_APC_DEMO oder CL_HTTP_EXT_APC_PCP_DEMO generierten Webseiten. Die eine Webseite ermöglicht das Öffnen eines WebSocket-Objekts ohne Unterstützung des Push Channel Protocol (PCP), die andere Webseite ermöglicht das Öffnen eines WebSocket-Objekts mit Unterstützung dieses Protokolls. Beide Webseiten ermöglichen das Senden von Nachrichten über das Objekt und das Schließen des Objekts. Diese Aufgaben werden von einer in der Webseite implementierten JavaScript-Funktion ausgeführt. Bei der Verwendung von PCP muss zusätzlich eine JavaScript-Datei sap-pcp-websocket.js aus dem Mime-Repository des AS ABAP eingebunden werden, welche den Client-seitigen Rahmen zur Verwendung dieses Protokolls bereitstellt. Ohne PCP wird dieses API nicht benötigt. Bei Verwendung des PCP-Protokolls kann sowohl auf einen zustandslosen als auch auf einen zustandsbehafteten ABAP Channel zugegriffen werden.
  • Der ABAP Push Channel DEMO_APC, DEMO_APC_PCP oder DEMO_APC_PCP_STATEFUL aus dem Paket SABAPDEMOS des aktuellen AS ABAP, wobei die beiden letzten das Push Channel Protocol (PCP) unterstützten und der letzte zustandsbehaftet ist. Der URL des dem Push Channel zugeordneten Service wird in der JavaScript-Funktion der zugehörigen Webseite verwendet, um die WebSocket-Kommunikation zu diesem zu öffnen, wobei das Formularfeld amc weitergegeben wird. Die APC-Handler-Klassen CL_APC_WS_EXT_DEMO_APC und CL_APC_WSP_EXT_DEMO_APC_PCP implementieren die Methoden ON_START und ON_MESSAGE des Interface IF_APC_WSP_EXTENSION für eine Kommunikation mit und ohne Verbindung zu einem AMC. Die APC-Handler-Klasse CL_APC_WSP_EXT_DEMO_APC_PCP_ST zur Demonstration eines zustandsbehafteten Service ruft einfach die gleichnamigen Methoden eines Objekts der Klasse CL_APC_WSP_EXT_DEMO_APC_PCP auf. Der verwendete AMC ist /demo_text bzw. /demo_pcp aus den ausführbaren Beispielen zu AMC. In der Methode ON_MESSAGE wird bei Empfang einer Nachricht eine neue Nachricht mit Informationen zur empfangenen Nachricht erstellt und gesendet. Ohne Verwendung von PCP wird eine Textnachricht gesendet. In der Version für PCP wird dieses Protokoll verwendet. Zur Demonstration des zustandsbehafteten Service wird in CL_APC_WSP_EXT_DEMO_APC_PCP ein Zähler erhöht, dessen Wert beim zustandslosen Service immer gleich bleibt, sich beim zustandsbehafteten Service aber ändert.

Wenn der ABAP Push Channel mit dem Formularfeld amc=x geöffnet wird, findet die Kommunikation über AMC statt. Jede mit dem Push Channel verbundene Webseite empfängt jede Nachricht, die über den AMC gesendet wird. Im Beispiel kann die von ON_MESSAGE gesendete Nachricht damit nicht nur von der Webseite empfangen werden, welche eine Nachricht gesendet hat. Weiterhin empfangen die mit dem Push Channel verbundenen Webseiten Nachrichten, die beispielsweise mit dem Programm DEMO_SEND_AMC aus dem ausführbaren Beispiel Senden von AMC-Nachrichten gesendet werden. Umgekehrt empfängt das Programm DEMO_RECEIVE_AMC aus dem ausführbaren Beispiel Empfangen von AMC-Nachrichten die Nachrichten, die von den Webseiten gesendet werden.

Hinweis

Damit das Beispiel funktioniert, müssen in der Transaktion SMICM nach Auswahl der Funktion Services die Protokolle WEBSOCKET und WEBSOCKETS als aktive Services aufgeführt sein.






TXBHW - Original Tax Base Amount in Local Currency   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6870 Date: 20240523 Time: 182138     sap01-206 ( 125 ms )