ORAIORAI
Blog-Header Bidirektionaler Sync ohne Endlosschleife

Bidirektionaler Sync zwischen SAP und Fremdsystem ohne Endlosschleife

Zwei einzeln fehlerfreie Integrationen ergeben zusammen eine Endlosschleife. Wie sie entsteht, wie eigene Schreibvorgänge erkannt werden, welches Feld die Datensätze verbindet und warum Anlege- und Update-Mapping auseinanderlaufen.

Bjoern Ostermann
Björn OstermannTechnology Consultant
9/9/2026SAP Consulting

Zwei Integrationen, die einzeln fehlerfrei laufen, erzeugen zusammen eine Endlosschleife: Jede Seite meldet eine Änderung, und jede Änderung ist die Reaktion auf die vorige. Dieser Beitrag beschreibt, wie die Schleife entsteht, mit welchen zwei Mechanismen sie unterbrochen wird, welches Feld die Datensätze beider Systeme verbindet und warum Anlege- und Update-Mapping auseinanderlaufen können.

Wie die Schleife entsteht

Ein Datensatz ändert sich im Fremdsystem. Die Integration schreibt die Änderung nach SAP. Die Gegenrichtung erhält das Änderungsevent aus SAP oder findet die Änderung bei der nächsten Abfrage und schreibt sie zurück ins Fremdsystem. Dieser Schreibvorgang löst dort erneut ein Änderungsevent aus, und der Ablauf beginnt von vorn.

Keine der vier Stationen arbeitet fehlerhaft. Ein schreibender Aufruf löst in den meisten Systemen ein Änderungsevent aus, und das ist bei einer Integration in eine Richtung das gewünschte Verhalten. Sobald beide Seiten schreiben, wird daraus ein Kreislauf, der ohne Gegenmaßnahme nicht endet.

Vier Stationen zwischen Fremdsystem und SAP, die sich zu einer Endlosschleife schließen
Vier korrekte Schritte, die sich zu einem Kreis schließen.

Eigene Schreibvorgänge erkennen

Ein Zeitfenster, das alles kurz nach dem eigenen Schreibvorgang ignoriert, funktioniert bei geringer Last und versagt, sobald ein Lauf länger dauert. Verlässlicher sind zwei Mechanismen, die auf Inhalten beruhen und keinen gespeicherten Zustand benötigen.

Auf der SAP-Seite über den letzten Änderer. Viele SAP-Objekte führen mit, welcher Benutzer sie zuletzt geändert hat; der Geschäftspartner stellt dafür in der OData-API das Feld LastChangedByUser bereit (API_BUSINESS_PARTNER im SAP Business Accelerator Hub). Schreibt die Integration mit einem eigenen technischen Benutzer, schließt die Rückrichtung genau diesen Benutzer aus und sieht ihre eigenen Schreibvorgänge nicht mehr. Voraussetzung ist, dass dieser Benutzer für nichts anderes verwendet wird.

Auf der Gegenseite über den Inhaltsvergleich. Fremdsysteme führen ein solches Feld häufig nicht. Dann liest die Integration den Datensatz vor dem Schreiben, vergleicht die zu schreibenden Felder mit dem Bestand und schreibt nur bei einer Abweichung. Eine zurücklaufende Änderung trägt exakt die Werte, die gerade geschrieben wurden, findet keinen Unterschied und endet dort. Der Vergleich kostet einen zusätzlichen Leseaufruf pro Datensatz.

Eigene Schreibvorgänge erkennen: LastChangedByUser auf der SAP-Seite, Inhaltsvergleich auf der Gegenseite
Auf jeder Seite ein Mechanismus, beide ohne gespeicherten Zustand.

Das Feld, das die Datensätze verbindet

Damit die Rückrichtung weiß, welcher Datensatz im Fremdsystem zu welchem Objekt in SAP gehört, benötigt sie ein Feld im SAP-Objekt, das die Kennung der Gegenseite trägt. Beim Geschäftspartner ist das BusinessPartnerIDByExtSystem (API_BUSINESS_PARTNER); andere Objekte haben eigene Felder, und wo keines vorhanden ist, wird ein kundeneigenes Feld angelegt.

Das Feld hat zwei Aufgaben: Es verknüpft die Datensätze, und es dient als Filter, denn nur Objekte mit gefülltem Feld stammen aus dem Fremdsystem und gehören in die Rückrichtung. Bei einer Integration in eine Richtung wirkt es überflüssig und wird im Mapping häufig nicht befüllt. Wir empfehlen, es von der ersten Richtung an zu füllen; ist es bei Bestandsdaten leer, müssen diese nachgepflegt werden, bevor die Rückrichtung aktiviert wird.

BusinessPartnerIDByExtSystem verknüpft die Datensätze beider Systeme
Ein Feld mit zwei Aufgaben: verknüpfen und filtern.

Anlege- und Update-Mapping laufen auseinander

In vielen Integrationen decken Anlegen und Update unterschiedliche Felder ab. Das Anlege-Mapping entsteht zuerst und enthält alles, was ein neuer Datensatz benötigt; das Update-Mapping kommt später und beschränkt sich auf die Felder, die zum damaligen Anlass benötigt wurden.

Bei einer Integration in eine Richtung bleibt das ohne Folgen. Bei bidirektionalem Abgleich läuft jedes Feld, das in einer Richtung zurückgeschrieben, in der anderen aber nicht mitgeschrieben wird, mit jedem Durchlauf weiter auseinander, und weil beide Mappings jeweils fehlerfrei arbeiten, meldet kein Monitoring einen Fehler.

Wir empfehlen eine Liste der Felder, die synchron gehalten werden; beide Mappings werden in beiden Richtungen gegen diese Liste geprüft. Ein Feld, das nicht auf der Liste steht, wird in keiner Richtung übertragen.

Anlege-Mapping und Update-Mapping mit unterschiedlichen Feldern
Was nur beim Anlegen übertragen wird, veraltet danach.

Drei Fragen vor der zweiten Richtung

Bidirektionaler Abgleich verwendet dieselbe Technik wie eine Richtung, ergänzt um drei Antworten:

  1. Wie erkennt jede Seite ihre eigenen Schreibvorgänge? Technischer Benutzer und LastChangedByUser auf der SAP-Seite, Inhaltsvergleich auf der Gegenseite.
  2. Über welches Feld sind die Datensätze verknüpft? BusinessPartnerIDByExtSystem oder ein entsprechendes Feld, von Anfang an gefüllt.
  3. Welche Felder gelten als synchron? Eine Liste, gegen die beide Mappings geprüft werden.

Fehlt eine der drei Antworten, läuft der Abgleich trotzdem an; der Fehler zeigt sich später, mit Daten, die bereits auseinandergelaufen sind. Wir empfehlen, die zweite Richtung erst zu aktivieren, wenn alle drei Antworten dokumentiert sind.

Weiterlesen

Passende Beiträge

Termin buchen

Abgleich in beide Richtungen geplant?

Sprechen Sie uns an. Wir unterstützen bei Schleifenschutz, Verknüpfungsfeld und Feldliste, bevor die zweite Richtung aktiviert wird.

  • 30 Minuten
  • unverbindlich
Termin buchen

Bereit zu starten?

Schreib uns oder buche direkt ein kurzes Meeting.

Kontakt aufnehmen