Verwendung
Es ist möglich, Requests parallel abzusetzen und auf alle Antworten gleichzeitig zu warten. Die Methode
LISTEN dient dann zum Ermitteln, welcher Request nun beantwortet wurde.Dies lohnt sich, wenn viele Requests an verschiedene Server abgesetzt werden, deren Antwortzeit stark differiert.
Aktivitäten

Man erweitert das obige Programm um die folgenden Zeilen:
Zusätzliche Parameter, ob man mit der Methode
LISTEN arbeiten will, und wie viele Requests versendet werden sollen:|
parameters: listen type c default space, times type i default '1', … |
Nun wird auf die Antworten der Requests gewartet. Sie werden in der Reihenfolge entgegengenommen, in der sie vom Server zurückkommen.
|
*Empfangen mit listen (Parallelisierung von #times Requests) do times times. if not listen is initial. call method client->listen receiving client = cclient exceptions http_communication_failure = 1 http_no_open_connection = 2 others = 3. if sy-subrc <> 0. call method client->get_last_error importing code = subrc message = dummy. write: / listen’, / 'code: ', subrc, 'message: ', dummy. exit. endif. |
Die eintreffenden Antworten werden wieder den Requests zugeordnet.
|
* Zuordnung der Responses zu den Requests * wenn es mehr Requests gibt, alle Antworten aufnehmen client = cclient. call method client->receive exceptions http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 others = 4. if sy-subrc <> 0. call method client->get_last_error importing code = subrc message = dummy. write: / 'communication_error( receive )', / 'code: ', subrc, 'message: ', dummy. exit. endif. ... enddo. |
Dann kann eingegeben werden, wie oft ein Request abgesetzt werden soll (Parameter
times), und in der Ausgabe sieht man, in welcher Reihenfolge die Antworten empfangen wurden. Dies muss nicht die Reihenfolge sein, in der die Requests abgeschickt wurden.
Der obige ABAP-Code soll nur ein einfaches Beispiel darstellen, es handelt sich nicht um eine Vorlage zum professionellen Arbeiten.