Programmieren von Replicate()/SaveReplica()-BAPIs 

Verwendung

Um eine Business-Objektinstanz zu replizieren, beispielsweise, um im Rahmen von Application Link Enabling (ALE) Daten zwischen verteilten Systemen zu übertragen, müssen Sie bestimmte, standardisierte BAPIs implementieren.

Bei der Replikation von Business-Objekttypen geht es darum, bestimmte Instanzen eines Objekttyps zusätzlich auf ein oder mehreren anderen Systemen zur Verfügung zu stellen. Die replizierten Instanzen werden dabei normalerweise unter dem gleichen Objektschlüssel angelegt.

Da die Schnittstelle dieser BAPIs von den Eigenschaften und Inhalten des spezifischen Business-Objekts abhängt, müssen Replikations-BAPIs individuell für jedes replikationsfähige Business-Objekt implementiert werden.

Die Replikation von Business-Objektinstanzen kann auf zwei Arten erfolgen:

Beide Replikationsarten können mit Hilfe der BAPIs Replicate(), SaveReplica() und SaveReplicaMultiple() implementiert werden. Bei diesen BAPIs handelt es sich um Klassenmethoden (instanzunabhängig).

Funktionsumfang

Replicate()

Das BAPI Replicate() wird in dem System aufgerufen, in dem sich die Originale der Business-Objektinstanzen befinden, die repliziert werden sollen. Das BAPI Replicate() dient dazu,

Mit dem BAPI Replicate() wird nur die Replikation von Business-Objektinstanzen angestoßen. Die eigentliche Replikation erfolgt, wenn im empfangenden System eines der im folgenden beschriebenen SaveReplica()-BAPIs aufgerufen wird.

Folgende Schritte müssen dabei durchgeführt werden:

  1. Selektieren der zu replizierenden Daten
  1. Ermittlung der Empfänger

Dies findet über das ALE-Verteilungsmodell mit Hilfe des Funktionsbausteins ALE_SYNC_BAPI_GET_RECEIVER statt. Informationen zu diesem Funktionsbaustein finden Sie unter <Verteilung über BAPIs> im ALE-Programmierleitfaden. Zusätzlich haben Sie die Möglichkeit, über den Parameter Recipients des Replicate()-BAPIs die möglichen Empfänger einzuschränken.

  1. Loop über die Empfänger und Aufruf des entsprechenden SaveReplica()-BAPIs
  1. Füllen des Return-Parameters und Beenden des Replicate()-BAPIs.

Import-Parameter

Die Schnittstelle des BAPIs Replicate() muß folgende Import-Parameter beinhalten:

Dies können Sie beispielsweise über eine Range-Tabelle für die Schlüsselfelder der Business-Objekttypen realisieren, oder über Selektions-Parameter, die eine Auswahl der zu replizierenden Instanzen ermöglichen (siehe auch Selektionsparameter).

Dieser Parameter identifiziert die logischen Systeme, in denen die Business-Objektinstanzen repliziert werden sollen. Legen Sie diesem Parameter das Datenelement BAPILOGSYS zugrunde. Ist dieser Parameter auf "initial" gesetzt, findet die Ermittlung des Empfängersystems über das ALE-Verteilungsmodell statt.

Informationen zu Extension-Parametern und Empfehlungen, wie das Kundenerweiterungskonzept in einem Replicate()-BAPI realisiert werden sollte, finden Sie unter Kundenerweiterung von BAPIs.

Die Schnittstelle des BAPIs Replicate() kann darüberhinaus folgende Import-Parameter beinhalten:

Mit diesem Parameter können Modifikationen an bereits replizierten Objektinstanzen direkt aus dem Änderungsdienst übernommen und an das empfangende System weitergegeben werden. Diesen Parameter sollten Sie nur verwenden, wenn der betreffende Business-Objekttyp einen Änderungsdienst anbietet.

Legen Sie diesem Parameter das Datenelement RQSTCHNG zugrunde. Dieses kann folgende Werte annehmen:

Der Parameter RequestChanges darf nicht zusammen mit dem Parameter Recipients verwendet werden, da bei einem Zugriff durch einen Empfänger die Änderungszeiger im Änderungsdienst zurückgesetzt werden und eventuelle weitere Empfänger nicht mehr berücksichtigt werden. Die Dokumentation zu diesem Parameter muß explizit auf diesen Zusammenhang hinweisen.

Export-Parameter

Das BAPI Replicate() muß bzw. sollte folgende Export-Parameter enthalten:

Informationen zu diesem Parameter finden Sie unter Return-Parameter (Fehlerdarstellung).

Informationen zu Extension-Parametern und Empfehlungen, wie das Kundenerweiterungskonzept in einem Replicate()-BAPI realisiert werden sollte, finden Sie unter Kundenerweiterung von BAPIs.

SaveReplica() und SaveReplicaMultiple()

Die Klassenmethoden SaveReplica() und SaveReplicaMultiple() erzeugen Replikate von Business-Objektinstanzen. Sie werden für die Replikation von Objekten verwendet, die in verschiedenen Systemen semantisch identisch sind; diese Objekte können dabei möglicherweise aus technischen Gründen mit unterschiedlichen Objektschlüsseln (Objekt-IDs) angelegt werden.

Das BAPI SaveReplica() wird von einem System verwendet, um auf einem Zielsystem eine Business-Objektinstanz zu replizieren, oder eine bestehende, replizierte Instanz zu modifizieren. Im Gegensatz hierzu repliziert das BAPI SaveReplicaMultiple() mehrere Business-Objektinstanzen auf dem Zielsystem bzw. modifiziert bereits replizierte Instanzen.

Für jeden replikationsfähigen Business-Objekttyp müssen Sie, je nach Anforderung, eine oder beide dieser Methoden implementieren.

Import-Parameter

Bei der Festlegung der Import-Parameter sind folgende Aspekte zu beachten:

Weitere Informationen finden Sie unter TestRun-Parameter.

Export-Parameter

Bei der Festlegung der Export-Parameter sind diese Aspekte zu beachten:

Informationen zu Extension-Parametern und Empfehlungen, wie das Kundenerweiterungskonzept in einem SaveReplica()-BAPI realisiert werden sollte, finden Sie unter Kundenerweiterung von BAPIs.

Dabei sind folgende Aspekte von Bedeutung:

Reicht die maximale Kapazität von MESSAGE_V2 (also 50 Zeichen) nicht für diese Informationen aus, so kann das Feld MESSAGE_V3 dazu verwendet werden, den Rest aufzunehmen.

Die Bedeutung der einzelnen Felder ist äquivalent zum Erfolgsfall.

Informationen zu diesem Parameter finden Sie unter Return-Parameter (Fehlerdarstellung).

Siehe auch:

Beispiel für ein SaveReplica()-BAPI