Bei der BAPI-Ausgangsverarbeitung sendet ein Nachrichtenfluss eine Anforderung an den
SAP-Server.
Bei BAPI-Arbeitseinheiten und BAPI-Ergebnismengen erfolgt die Verarbeitung synchron (der Nachrichtenfluss wartet auf eine Antwort
vom SAP-Server).
Bei einfachen BAPIs kann eine synchrone oder eine asynchrone Verarbeitung (der Nachrichtenfluss wartet nicht auf eine Antwort vom
SAP-Server) angefordert werden.
Bei BAPI-Arbeitseinheiten und BAPI-Ergebnismengen erfolgt die Verarbeitung wie im Abschnitt
Synchroner Remote Function Call beschrieben.
Bei einfachen BAPIs wählen Sie während der Konfiguration den Typ des gewünschten fernen RFC-Aufrufs aus.
Synchroner Remote Function Call
Wenn Sie während der Konfiguration für eine einfache BAPI Synchronous
RFC (Synchroner Remote Function Call, Standardeinstellung) auswählen oder BAPI-Arbeitseinheiten oder BAPI-Ergebnismengen verwenden, werden die folgenden Verarbeitungsschritte ausgeführt:- Der Adapter empfängt eine Anforderung von einem Nachrichtenfluss in Form eines
BAPI-Geschäftsobjekts.
- Der Adapter wandelt das BAPI-Geschäftsobjekt in einen SAP-JCo-Funktionsaufruf um.
- Der Adapter verarbeitet mithilfe der RFC-Schnittstelle (Remote Function
Call) den BAPI- oder RFC-Funktionsaufruf in der SAP-Anwendung.
- Nach der Übergabe der Daten an den SAP-Server verarbeitet der Adapter die Antwort von SAP und wandelt sie wieder in das für den Nachrichtenfluss erforderliche Geschäftsobjektformat um.
- Der Adapter sendet dann die Antwort zurück an den Nachrichtenfluss.
Asynchroner transaktionsorientierter Remote Function Call
Bei Auswahl von
Asynchronous
transactional RFC (Asynchroner transaktionsorientierter Remote Function Call) während der Konfiguration werden die folgenden Verarbeitungsschritte ausgeführt:
- Der Adapter empfängt eine Anforderung von einem Nachrichtenfluss in Form eines
BAPI-Geschäftsobjekts.
- Der Adapter prüft das Geschäftsobjekt und stellt fest, ob dem Attribut der SAP-Transaktions-ID ein Wert zugeordnet ist. (Die SAP-Transaktions-ID (TID) bildet ein Feld in der Nachricht.)
- Ist dem Attribut der SAP-Transaktions-ID ein Wert zugeordnet, wird dieser vom Adapter während der Verarbeitung verwendet.
- Ist für das Attribut kein Wert festgelegt, nimmt der Adapter einen Aufruf an den
SAP-Server vor und ruft eine Transaktions-ID vom
SAP-Server ab.
- Der Adapter wandelt das BAPI-Geschäftsobjekt in einen SAP-JCo-Funktionsaufruf um.
- Der Adapter verwendet für den Aufruf an den SAP-Server das tRFC-Protokoll (tRFC = transaktionsorientierter Remote Function Call).
Er wartet nicht auf eine Antwort vom SAP-Server.
- Nach der Übergabe der Funktionsdaten an die SAP-Anwendung wird die Steuerung an den Adapter zurückgegeben.
- Im Falle eines Fehlschlagens des Aufrufs an den SAP-Server gibt der SAP-Server eine
ABAPException-Ausnahme aus.
- Ist der Aufruf an den SAP-Server zwar erfolgreich, enthält jedoch ungültige Daten, wird keine Ausnahme an den Adapter gemeldet.
Wenn der Adapter beispielsweise eine Anforderung mit einer ungültigen Kundennummer sendet, wird keine Ausnahme als Antwort gemeldet, aus der hervorgeht, dass eine solche Kundennummer nicht vorhanden ist.
- Vom Anforderungsknoten wird eine Nachrichtenbaumstruktur erstellt, in der die Transaktions-ID eines der Felder bildet.
Asynchroner in die Warteschlange eingereihter Remote Function Call
Bei Auswahl von
Asynchronous
queued RFC (Asynchroner in die Warteschlange eingereihter Remote Function Call) während der Konfiguration werden die folgenden Verarbeitungsschritte ausgeführt:
- Der Adapter empfängt eine Anforderung von einem Nachrichtenfluss in Form eines
BAPI-Geschäftsobjekts.
- Der Adapter prüft das Geschäftsobjekt und stellt fest, ob dem Attribut der SAP-Transaktions-ID ein Wert zugeordnet ist. (Die SAP-Transaktions-ID (TID) bildet ein Feld in der Nachricht.)
- Ist dem Attribut der SAP-Transaktions-ID ein Wert zugeordnet, wird dieser vom Adapter während der Verarbeitung verwendet.
- Ist für das Attribut kein Wert festgelegt, nimmt der Adapter einen Aufruf an den
SAP-Server vor und ruft eine Transaktions-ID vom
SAP-Server ab.
- Der Adapter wandelt das BAPI-Geschäftsobjekt in einen SAP-JCo-Funktionsaufruf um.
- Der Adapter verwendet für den Aufruf an die angegebene Warteschlange auf dem SAP-Server das tRFC-Protokoll (tRFC = transaktionsorientierter Remote Function Call).
Er wartet nicht auf eine Antwort vom SAP-Server.
- Nach der Übergabe der Funktionsdaten an die SAP-Anwendung wird die Steuerung an den Adapter zurückgegeben.
- Im Falle eines Fehlschlagens des Aufrufs an den SAP-Server gibt der SAP-Server eine
ABAPException-Ausnahme aus.
- Ist der Aufruf an den SAP-Server zwar erfolgreich, enthält jedoch ungültige Daten, wird keine Ausnahme an den Adapter gemeldet.
Wenn der Adapter beispielsweise eine Anforderung mit einer ungültigen Kundennummer sendet, wird keine Ausnahme als Antwort gemeldet, aus der hervorgeht, dass eine solche Kundennummer nicht vorhanden ist.
- Vom Anforderungsknoten wird eine Nachrichtenbaumstruktur erstellt, in der die Transaktions-ID eines der Felder bildet.