Sie können ein Consumer-Proxy folgendermaßen einsetzen:
· Um einen Service über den Integration Server aufzurufen.
· Um einen Web Service aufzurufen.
Die Art der Verwendung hängt von der Laufzeitkonfiguration ab.
Das Programmiermodell der ABAP-Proxy-Laufzeit für Web Services, die im Outside-In-Modus entwickelt werden, unterstützt synchrone Kommunikation. Die XI-Laufzeit unterstützt außerdem asynchrone Kommunikation.
Um eine Message zu versenden, rufen Sie den zugehörigen Consumer-Proxy in Ihrem Anwendungsprogramm auf.
Sie können ein Consumer-Proxy im Object Navigator markieren und per Drag&Drop in den Editor ziehen.
...
1. Deklarieren Sie folgende Variablen:
DATA:
* Reference variables for proxy and exception
class
lo_clientProxy TYPE REF TO
[generierte
Proxy-Klasse],
lo_sys_exception TYPE REF TO
cx_ai_system_fault,
* Structures to set and get message content
ls_request TYPE
[Output-Message-Typ],
ls_response TYPE
[Input-Message-Typ].
2. Füllen Sie die Struktur ls_request für die Request-Message.
3. Instanziieren Sie Ihr Consumer-Proxy:
TRY.
· create proxy client
CREATE OBJECT lo_consumerProxy
EXPORTING LOGICAL_PORT_NAME = ‘LOGICAL_PORT_NAME’
LOGICAL_PORT_NAME ist der Name des logischen Ports, den Sie verwenden wollen und über den der Empfänger festgelegt wird. Dieser Parameter kann auch weggelassen werden, wenn ein voreingestellter Port verwendet werden soll oder die XI-Laufzeit (siehe Laufzeitkonfiguration) verwendet wird.
4. Um eine Message zu versenden, rufen Sie die entsprechende Methode des Consumer-Proxies auf. WSDL lässt mehrere solcher Methoden zu (spezifiziert über das Element <operation>). Im XI-Fall gibt es nur eine Methode, deren Name auf EXECUTE_SYNCHRONOUS beziehungsweise EXECUTE_ASYNCHRONOUS voreingestellt ist. Fangen Sie mindestens die Ausnahme cx_ai_system_fault ab:
* do synchronous consumer proxy call
CALL METHOD lo_consumerProxy->execute_synchronous
EXPORTING
output = ls_request
IMPORTING
input = ls_response.
CATCH cx_ai_system_fault INTO lo_sys_exception.
* Error handling
ENDTRY.
Siehe auch: Fehlerbehandlung.