Schritte des Universal-Sync

Dieses Kapitel beschreibt die Ablaufphasen, Verzweigungen und Entscheidungen eines Syncs am Beispiel des Universal Sync – von der Anstoßung über die Verarbeitung je Datensatz bis zum Abschluss der Ausführung.

Kurzüberblick

  • Start über Warteschlangeneintrag (Ausführungsart + Parameter)
  • Preflight-Prüfungen von Quelle/Ziel je Konnektor
  • Sonderfall Wiederherstellung (Rollback aus Backup, ohne Quelldaten)
  • Lesen der Quelldaten (Grenzwerte/Flags/Einzelübertragung)
  • Verarbeitungspipeline: Transformation → 2. Filter → Einzelverarbeitung
  • Einzelverarbeitung: Sperren, Abbildungen, Suche/Vorbedingung, Konflikte, Backup, Schreiben, Erfolgsbedingung, Zurückschreiben
  • Abschluss: Ergebnislisten, Status, neuer Grenzwert, Planung nächster Lauf

1. Anstoßung & Preflight

Warteschlangeneintrag: Legt Ausführungsart (z. B. Geplant, Manuell, Einzelübertragung, Nachfolger, Wiederholung, Ablauf) fest und kann Parameter (IDs, Filter, Flags) enthalten.

Preflight-Checks (konnektorspezifisch):

  • Erreichbarkeit/Authentifizierung von Quell- und Zielsystem
  • ggf. Schema-/Version-/Rechte-Checks
  • Abbruch bei Fehlern, um Folgeschritte zu vermeiden

Sonderfall – Wiederherstellung
Vorab prüfen, ob Ausführungsart = Wiederherstellen:

  • Ja → Ziel wird aus Backup aktualisiert (ohne Quelldatenzugriff) und die Ausführung verzweigt direkt in die Einzelverarbeitung am Ziel.
  • Nein → Normaler Ablauf.

2. Lesen der Quelldaten

2.1 Grenzwert & Flags

Existiert eine letzte Änderungsinformation (Grenzwert) am Sync (»Zusätzliche Information«)?

  • Ja → Manuelle/Geplante Läufe lesen nur Änderungen ab Grenzwert.
  • NeinAlle Quelldaten lesen.

Spezial-Flags:

  • Immer alle Datensätze aus Quelle abfragen
    Ignoriert Grenzwerte (z. B. für regelmäßige Umsatz-Refreshs).
  • Initial-Synchronisierung von Datensatzänderungen
    Einmalige Wiederaufnahme nach längerer Pause: alle Datensätze lesen, aber Übertragung entscheidet die Datensatz-Abbildung (nicht jeder Datensatz wird geschrieben). Flag wird nach Erfolg deaktiviert.
  • Initial-Synchronisierung von Konfigurationsänderungen
    Nach Änderungen an Feldzuordnungen/Transformationen: Übertragung unabhängig von Grenzwerten.

2.2 Ausführungsarten & Quellenumfang

  • Einzelübertragung
    Liest gezielte Datensätze gemäß Warteschlangen-Parametern (auch aus historischem Eintrag möglich).
  • Manuell/Geplant
    Liest alle oder nur geänderte Datensätze plus:
    • geplante Datensätze (aus Fehlerbehandlung mit Zeitsteuerung, beliebig oft wiederholbar)
    • Wiederholungen (aus Vorbedingung/Übereinstimmung/Sperren)
  • Wiederholung (direkt)
    Liest betroffene Datensätze aus der Historie des vorherigen Eintrags.
  • Nachfolger
    Nutzt IDs aus Vorgänger; wird nur eingeplant, wenn der Vorgänger erfolgreich war. (Für zusammenhängende Fehlerbehandlung sind Abläufe flexibler.)
  • Ablauf
    Eintrag wird vom Ablauf erzeugt; dient Orchestrierung und Protokollierung.

Wiederholungsgrenze: Die Anzahl unmittelbarer Wiederholungen steuert „Maximale Anzahl an fortlaufenden Wiederholungen“ (z. B. bei fehlender Eltern-Entität).


3. Verarbeitung der Quelldaten

3.1 Paketierung & geplante Liste

Quell-Systeme liefern Daten paketweise (Batch). Ein Paket wird vollständig verarbeitet, bevor das nächste folgt.
Alle gelesenen Datensätze werden in die Liste geplanter Datensätze am Warteschlangen-Eintrag aufgenommen.

3.2 Pipeline: Transformation → 2. Filter → Fehlerbehandlung

  1. Transformation (sequenziell, schrittweise):
    Felder transformieren/anreichern, Parameter/Flags erzeugen.
  2. Zweiter Filter (nach Transformation):
    Ausgefilterte Datensätze werden vollständig ignoriert (kein Schreiben).
  3. Fehlerbehandlung auf Batch-Ebene:
    Fehlgeschlagene Datensätze → Wiederholung/Planung gemäß Konfiguration.

3.3 Einzelverarbeitung (pro Datensatz)

a) Sperre Quelle

  • Prüfen/Setzen einer Datensatzsperre für die Quelle.
  • Bei Sperre durch anderen Sync → Datensatz am Ende des Laufs erneut prüfen; wenn weiterhin gesperrt → Wiederholung in nächstem Lauf.
  • Aufgehobene Sperren werden temporär aufbewahrt (inkl. letzter Änderungsinfo), damit nachträglich erkannt werden kann, ob Daten noch aktuell sind.

b) Datensatz-Abbildungen (Mappings) ermitteln

  • Zuerst eigene Abbildung, dann parallele/komplementäre (gleiche Systeme/Objekte, gleicher Mandant).
  • Gefunden & Ziel existiert nicht → Eigene Abbildung als gelöscht markieren, Datensatz beenden (Folgeläufe erkennen dies).
  • Nicht gefundenSuche per Übereinstimmungsregel; kein Treffer → Regel anwenden (überspringen oder Neuanlage); Treffer → Abbildung herstellen.

c) Vorbedingung für Neuanlage

  • Vor Neuanlage prüfen (z. B. Firma muss existieren); andernfalls wiederholen.

d) Sperre Ziel (bei Aktualisierung)

  • Prüfen/Setzen analog zur Quelle.

e) Konfliktprüfung (bei Aktualisierung)
Nicht ausgeführt bei Einzelübertragung, Immer alle Datensätze… und Initial-Sync der Konfigurationsänderungen.

  • Quelle (Loop-Schutz):
    Ist Quellen-Änderungsinfo == in Abbildung gespeicherte letzte Syncler-Änderung? → Überspringen.
  • Ziel (Konflikt):
    Ziel-Änderungsinfo neuer als in Abbildung? → externe Änderung → Konfliktverhalten des Syncs anwenden (Quelle gewinnt/Ziel gewinnt/nur Quelländerungen/feldbasiert …).
    Nach erfolgreicher Verarbeitung werden eigene und andere Abbildungen aktualisiert (Cross-Sync-Konsistenz).

f) Backup (vor Schreiben)

  • Bei vorhandener Abbildung: Backup des Ziel-Datensatzes anlegen.
  • Backups werden alterbasiert gelöscht; erstes/letztes Backup sind geschützt.

g) Feldzuordnung & DQM

  • Zuordnung anwenden; Konfliktstrategie kann Teil-Mappings erlauben.
  • Optional DQM-Workflow ausführen.

h) Schreiben & Erfolgsbedingung

  • Ziel schreiben; Ziel kann No-Op durchführen (keine Änderungen/leerer Datensatz).
  • Erfolgsbedingung prüfen:
    • Erfüllt → Abbildungen aktualisieren (ChangeInfos Quelle/Ziel).
    • Nicht erfülltAbbruch mit Fehler; Abbildungen nicht aktualisieren.

i) Zurückschreiben (Write-Back)

  • Optional Felder aus Quelle/Transformation/Ziel/Konstanten in Quelle zurückschreiben.
  • Wird in Sperre berücksichtigt, nicht in Abbildung.
  • Auch bei Fehlern/Überspringen kann ein begrenztes Zurückschreiben erfolgen (z. B. Status/Diagnose).

Hinweis: Abbildungen werden nur genutzt, wenn Quelle und Ziel über definierte ID-Werte verfügen.
Nachfolger ohne IDs: Ist ein Nachfolger konfiguriert, der aktuelle Datensatz hat aber keine IDs, wird der Datensatz-Speicher zur Übergabe verwendet.


4. Abschluss der Ausführung

4.1 Ergebnislisten & Status

  • Am Warteschlangen-Eintrag werden ID-Listen je Ergebnistyp aufgebaut (Erfolg, Fehler, Übersprungen, …).
  • Die geplante Liste wird bereinigt: Einträge mit Ergebnis oder gefilterte werden entfernt.
  • Bleiben Reste zurück, gelten diese als fehlgeschlagen.
  • Laufstatus: Erfolgreich oder Fehlgeschlagen (bei Einzelfehlern oder globalem Fehler).

4.2 Neuer Grenzwert (max. Änderungsinfo aus dem Lauf)

Grenzwert wird gespeichert, wenn:

  • Ausführung erfolgreich und manuell/geplant/Ablauf
  • Geplante Ausführung und Fehlerbehandlung verlangt keine komplette Wiederholung
  • Manuell und „Fehler ignorieren

Grenzwert wird nicht gespeichert, wenn:

  • Lesen aus Quelle nicht abgeschlossen
  • In allen anderen Fällen

Wird der Grenzwert nicht gespeichert, fragt der nächste Lauf erneut ab diesem Grenzwert an.

4.3 Planung der nächsten Ausführung

  • Nicht geplantkeine nächste Ausführung
  • Fehlerhaft + Abbruchkeine nächste Ausführung
  • Fehlerhaft + komplette WiederholungWiederholen in 3 Minuten
  • Ablaufdatum (Zeitsteuerung) erreichtkeine nächste Ausführung
  • Normalfall → Nächste Ausführung gemäß Zeitsteuerung
    • Bei „Mit nächster Ausführung wiederholen“: Liste geplanter Datensätze anfügen
    • Teilweise Fehlerwiederholung: zusätzlicher Eintrag „Wiederholen“ in 3 Minuten
      Ausnahme: Ende des Tagesintervalls erreicht → Planung auf nächsten Tag

Mit dem Abschluss ist der Warteschlangeneintrag finalisiert.


Ablaufdiagramm

flowchart TD
  A[Warteschlange: Eintrag] --> B{Preflight Quelle/Ziel ok?}
  B -- Nein --> X[Abbruch mit Fehler]
  B -- Ja --> C{Ausführungsart = Wiederherstellen?}
  C -- Ja --> WR[Backup lesen & Ziel aktualisieren] --> Z
  C -- Nein --> D[Grenzwert/Flags bestimmen]
  D --> E[Quelldaten lesen inkl. Geplant/Wiederholung]
  E --> F[Transformation]
  F --> G{2. Filter}
  G -- Gefiltert --> R[Überspringen]
  G -- OK --> H[Einzelverarbeitung]
  H --> H1[Quelle sperren]
  H1 --> H2{Abbildung vorhanden?}
  H2 -- Ja --> H3{Ziel existiert?}
  H3 -- Nein --> H4[Abbildung löschen & Ende]
  H3 -- Ja --> H5[Ziel sperren]
  H2 -- Nein --> H6[Suche via Übereinstimmungsregel / Neuanlage/Skip]
  H5 --> H7{Konfliktprüfung}
  H7 -- Konflikt --> H8[Konfliktverhalten anwenden]
  H7 -- Kein Konflikt --> H9[Backup anlegen falls vorhanden]
  H8 --> H9
  H9 --> H10[Feldzuordnung / DQM]
  H10 --> H11[Ziel schreiben]
  H11 --> H12{Erfolgsbedingung erfüllt?}
  H12 -- Nein --> R
  H12 -- Ja --> H13[Abbildungen aktualisieren]
  H13 --> H14[Zurückschreiben optional]
  H14 --> Z[Ende Einzelverarbeitung]
  Z --> K[Abschluss: Ergebnislisten, Status, Grenzwert, Planung]