Show TOC Anfang des Inhaltsbereichs

Funktionsdokumentation Routing  Dokument im Navigationsbaum lokalisieren

Verwendung

In der Exchange Infrastructure konfigurieren Sie den oder die Empfänger eine Message zentral im Integration Builder. Beim Aufruf eines Client-Proxy ist daher zum Beispiel keine Angabe des Empfängers nötig. Mit dem Routing-Protokoll setzen Sie den Emfpänger der Message im Anwendungsprogramm selbst. Dies kann insbesondere in B2B-Scenarios notwendig sein.

Integration

Mit dem Routing-Protokoll können Sie Sender und Empfänger einer Message angeben. Die ABAP-Proxy-Laufzeit schreibt dann die durch das Anwendungsprogramm übergebenen Werte in die Message. Die Routing-Laufzeit des Integration Server verhält sich folgendermaßen, wenn ein Empfänger bereits im Message-Header steht:

...

       1.      Gibt es keine Routing-Konfiguration zum Sender in der Message, entnimmt die Routing-Laufzeit den Empfänger dem Message-Header.

       2.      Gibt es eine Routing-Konfiguration zum Sender der Message im Integration Directory, gibt es folgende Möglichkeiten:

¡        Unter den laut Bedingungen gültigen Empfänger-Zeilen ist eine vorhanden, bei der explizit angegeben ist, dass der Empfänger aus der Message übernommen werden soll. Dann wird die Message an alle die gültigen Empfänger geschickt, inklusive desjenigen, der in der Message steht.

¡        Unter den laut Bedingungen gültigen Empfänger-Zeilen ist keine vorhanden, bei der explizit angegeben ist, dass der Empfänger aus der Message übernommen werden kann. In diesem Fall werden nur die im Integration Directory konfigurierten Empfänger erreicht.

Gibt es eine Routing-Konfiguration im Integration Directory, müssen Administratoren im Message-Header gesetzte Empfänger also explizit zulassen.

Funktionsumfang

Die folgenden Methoden verwenden Sie vor beziehungsweise nach dem Aufruf eines Client-Proxy.

Methoden des Protokolls IF_WSPROTOCOL_ROUTING

Methode

Verwendung

GET_SENDER

Abfragen des von der Proxy-Laufzeit gesetzten Senders nach einem Proxy-Aufruf.

GET_SERVICE_FOR_THIS_SYSTEM

Abfragen des Service, der im Integration Directory für dieses System angelegt wurde.

SET_RECEIVERS

Setzen von Empfängern für die Request-Message

GET_RECEIVERS

Abfragen der gesetzten Empfänger zu einem späteren Zeitpunkt (etwa bei geschachtelten Methoden-Aufrufen).

GET_PRE_ROUTING

Gibt ein Objekt zur Durchführung einer Vorab-Emfpängerermittlung zurück.

Empfänger in B2B-Anwendungen

In B2B-Anwendungen werden Empfänger über die Angabe einer vergebenen Agentur (beispielsweise: Dun & Bradstreet), eines Identifikationsschemas (beispielsweise: D&B D-U-N-S-Nummer) und eines Namens identifiziert (der DUNS-Nummer selbst). Da es verschiedene vergebene Agenturen gibt, kann ein B2B-Kommunikationspartner einerseits durch eine DUNS-Nummer und andererseits beispielsweise durch eine EAN-Nummer (EAN: International Article Numbering Association) identifiziert sein. Innerhalb von SAP XI werden verschiedene Identifikatoren auf einen Kommunikationspartner (communication party) abgebildet. Für die Identifikation des Kommunikationspartners beim Empfänger einer Message ist es aber wesentlich, was im Message-Header steht. Diese Information können Sie selbst im Anwendungsprogramm setzen.

Siehe auch:

Identifikatoren

Setzen des Empfängers

In einem Anwendungsprogramm ist der Empfänger möglicherweise schon auf Grund von Anwendungsdaten bekannt beziehungsweise soll um B2B-Informationen erweitert werden. Das folgende Beispielprogramm zeigt, wie Sie so einen Empfänger mit Hilfe des Routing-Protokolls setzen können:

Das folgende Beispielprogramm zeigt, wie Sie den Empfänger selbst setzen:

DATA: interface TYPE REF TO co_sxidag_fsa_query,
      request TYPE sxidag_fsa_query_mt,
      response TYPE sxidag_fsa_response_mt,
      receivers TYPE sxi_addresses,
      receiver LIKE LINE OF receivers,
      routing TYPE REF TO if_wsprotocol_routing.

* create instance

CREATE OBJECT interface.

* fill request data

request-flight_seat_availability_query-flight_id-airline_id = 'LH'.

TRY.

* get routing protocol

  routing ?=  interface->get_protocol( if_wsprotocol=>routing ).

* specify receiver
* (sender will be set to sending business system automatically)

  receiver-partyagency = '016'.   " Dun & Bradstreet Corporation
  receiver-partytype = 'DUNS'.    " Schema from Dun & Bradstreet
  receiver-party = '123456789'.   " DUNS-Number for Company Lufthansa

  receiver-service = 'DEMO_AIRLINE_SYSTEM'.

  APPEND receiver TO receivers.
  routing->set_receivers( receivers = receivers ).

* call client proxy

  CALL METHOD interface->execute_synchronous
    EXPORTING
       output = request
    IMPORTING
       input  = response.

  CATCH cx_ai_system_fault.

  CATCH cx_ai_application_fault.

ENDTRY.

 

 

 

Ende des Inhaltsbereichs