Verwendung von BAPIs in Verteilten Systemen (ALE)

Einsatzmöglichkeiten

Seit Release 3.0 wird der Datenaustausch zwischen einzelnen, verteilten SAP-Systemen und Nicht-SAP-Systemen über die ALE-Technologie (Application Link Enabling) ermöglicht.

Im verteilten Umfeld ist es besonders wichtig, daß die einzelnen Systeme lose miteinander gekoppelt und voneinander unabhängig sind. Auch bei einem Ausfall eines der Systeme oder einer Kommunikationsverbindung müssen die einzelnen Systeme weiterarbeiten können. Lose Kopplung bedeutet also, daß die einzelnen Systeme größtenteils asynchron, d.h. zeitlich versetzt miteinander kommunizieren. Aus diesen Gründen findet in den ALE-Verteilungsszenarien die Datenkommunikation zwischen den beteiligten Systemen über den Austausch von Nachrichten statt.

Ab Release 4.0 können Sie ein BAPI auch als asynchrone Schnittstelle implementieren, indem Sie zu dem BAPI eine ALE-IDoc-Schnittstelle generieren und diese im gewünschten ALE-Verteilungsszenario einsetzen.

Detaillierte Informationen zur ALE-Technologie und zur Verwendung von BAPIs im ALE-Kontext sind im ALE-Programmierleitfaden beschrieben. Dieser Abschnitt gibt Ihnen einen allgemeinen Überblick darüber, was Sie bei der Implementierung eines BAPIs zur asynchronen Datenübertragung beachten sollten.

Ablauf

Bei der Verwendung eines BAPIs zur asynchronen Datenübertragung wird von der Anwendung im sendenden System anstelle des BAPIs die generierte ALE-IDoc-Schnittstelle aufgerufen. Die ALE-IDoc-Schnittstelle führt folgende Schritte aus:

Um die für diesen Prozeß zusätzlich zum BAPI benötigten Objekte, d.h. das zugehörige IDoc und die erforderlichen Funktionsbausteine, automatisch zu erstellen, steht Ihnen die Transaktion BDBG zur Verfügung. Diese Transaktion ist im ALE-Programmierleitfaden

genau beschrieben.

Voraussetzungen

Bevor Sie ein BAPI implementieren, das zur asynchronen Datenübertragung im Rahmen von ALE verwendet wird, sollten Sie sicherstellen, daß für die Aufgabenstellung ein derartiges BAPI benötigt wird. Wenn mindestens eines der folgenden Kriterien zutrifft, sollten Sie Ihr BAPI als asynchrone Schnittstelle implementieren:

Daten müssen sowohl auf dem lokalen System als auch auf einem entfernten System konsistent fortgeschrieben werden.

Eine Implementierung als synchrone Schnittstelle würde eine zu enge Kopplung zwischen dem Client- und dem Server-System darstellen. Bei Ausfall der Verbindung könnte das Client-System nicht mehr vernünftig arbeiten.

Es handelt sich um eine Schnittstelle mit großem Datenvolumen oder es sollen zeitaufwendige Datenbankoperationen auf dem Server-System durchgeführt werden. Eine synchrone Schnittstelle kommt in dieser Situation aus Performance-Gründen nicht in Frage.

Zusätzliche Richtlinien

Wenn Sie sicher sind, daß Sie Ihr BAPI als asynchrone Schnittstelle implementieren möchten, sollten Sie neben den üblichen Richtlinien bei der Programmierung eines BAPIs folgende zusätzliche Punkte beachten:

Wenn in mindestens einem übergebenen Eintrag des Return-Parameters das Feld Type mit A (Abbruch) gefüllt ist, wird für alle Statussätze des IDocs der Status 51 (Fehler, Anwendungsbeleg nicht gebucht) geschrieben, nachdem ein 'Rollback Work' durchgeführt wurde. Wenn in mindestens einem übergebenen Eintrag des Return-Parameters das Feld Type mit E (Fehler) gefüllt ist, wird für alle Statussätze des IDocs der Status 51 (Fehler, Anwendungsbeleg nicht gebucht) geschrieben und ein 'Commit Work' durchgeführt. Andernfalls wird der Status 53 (Anwendungsbeleg gebucht) geschrieben und ein 'Commit Work' durchgeführt.