Schemaobjekte

Schemaobjekte bilden die Schnittstelle zwischen einem System und einem Sync.
Sie definieren die Struktur der Daten, die zwischen Quell- und Zielsystem ausgetauscht werden.

Eine Ausnahme sind lediglich Abfrage-Syncs, die ohne ein explizit definiertes Schemaobjekt auskommen.


Erstellung von Schemaobjekten

Bei spezialisierten Konnektoren werden Schemaobjekte automatisch generiert.
In generischen Konnektoren gibt es verschiedene Möglichkeiten zur Erzeugung:

  • REST-API-Konnektor
    Das Schemaobjekt kann mithilfe eines Beispieldatensatzes automatisch generiert werden.
    Dabei werden die Feldstruktur und Datentypen aus den bereitgestellten Daten abgeleitet.

  • Datenbank-Konnektor
    Hier wird ein Tabellenschema direkt durch das Auslesen der Tabellendefinition ermittelt.
    Somit entspricht das Schemaobjekt exakt der Tabellenstruktur der Datenbank.

  • REST-API- und SDK-Konnektor
    Zusätzlich steht ein Schema-Editor zur Verfügung.
    Damit können Schemaobjekte vollständig manuell konfiguriert oder angepasst werden.
    Dies ist besonders dann sinnvoll, wenn Standardmechanismen nicht ausreichen oder eine individuelle Anpassung notwendig ist.


Struktur eines Schemaobjektes

Ein Schemaobjekt besteht aus mehreren zentralen Komponenten:

  • Eindeutiger Name

    • Jeder Name muss innerhalb eines Systems einzigartig sein.
    • Doppelte Namen sind nicht zugelassen.
  • Liste von ID-Feldern (optional)

    • Zur eindeutigen Identifizierung von Datensätzen.
    • Notwendig für komplexe Szenarien mit Rückverfolgung oder Konfliktbehandlung.
  • Feld für Änderungsinformationen (optional)

    • Ermöglicht die Erkennung von Datenänderungen.
    • Voraussetzung für inkrementelle Syncs.
  • Liste von Feldern mit Metainformationen

        1. Typ, Pflichtfeld, maximale Länge, Standardwerte.
    • Diese Angaben sind entscheidend für die Validierung und Transformation von Daten.
      image

Schachtelung von Schemaobjekten

Schemaobjekte können ineinander geschachtelt werden.
Diese Schachtelungen werden Objektgruppen genannt.

Eigenschaften von Objektgruppen:

  • Eine Gruppe hat ein eigenes Schemaobjekt.
  • Innerhalb der Gruppe existiert eine abgezählte Liste von Typen oder Ausprägungen.
  • Schachtelungen können sich beliebig wiederholen.

Eine besondere Rolle nimmt dabei der Typ „list“ ein:

  • Er darf nur auf der obersten Ebene und nur einmal pro Schemaobjekt vorkommen.
  • Er kennzeichnet die Datenstruktur einer Positionsliste.
  • Für Positionslisten gibt es spezialisierte Syncs, die eine eigene Transformation und Feldzuordnung unterstützen.
  • Dadurch können Positionen (z. B. Belegzeilen) separat und differenziert verarbeitet werden.

Positionslisten in Schemaobjekten

Positionslisten sind ein häufiges Szenario in Geschäftsdaten (z. B. Aufträge, Rechnungen).
Sie besitzen besondere Eigenschaften:

  • Eigene Transformation auf Datensatzebene.
  • Separate Feldzuordnung für Positionen.
  • Unterschiedliche Verarbeitung von Stammdatensätzen und Positionsdatensätzen möglich.

Zur Definition eines Schemaobjekts mit Positionsliste in generischen Konnektoren gibt es spezielle Funktionen:

  • Datenbank-Konnektor
    Enthält einen eigenen Editor, mit dem die Beziehung zwischen Stammdatensätzen und Positionen konfiguriert werden kann.

image

  • SDK-Konnektor
    Die Schemaerzeugung kann direkt im Skript festgelegt werden.
    Dies erlaubt eine flexible Anpassung an kundenspezifische Anforderungen.

image


Vorteile von Schemaobjekten

  • Klar definierte Schnittstellen zwischen Systemen und Syncs
  • Automatisierte Erzeugung für Standardfälle, manuelle Anpassung für Sonderfälle
  • Erweiterbarkeit durch Schachtelungen und Objektgruppen
  • Unterstützung komplexer Strukturen wie Positionslisten
  • Grundlage für Transformationen, Feldzuordnungen und Parametern

Für alle Systeme ist die Schnittstelle zu einem Sync ein Schemaobjekt. Nur Abfrage-Sync sind hier eine Ausnahme. Diese Schemaobjekte werden bei spezialisierten Konnektoren automatisch generiert. In generischen Konnektoren gibt es hierfür verschiedene Möglichkeiten.

In dem REST-API-Konnektor kann das Schemaobjekt mit Hilfe eines Beispieldatensatzes generiert werden. Im Datenbank-Konnektor wird ein Tabellenschema durch das Auslesen der Tabellendefinition ermittelt. Daneben gibt es noch einen Schema-Editor für den REST-API- und SDK-Konnektor. Mit diesem kann das Schemaobjekt komplett manuell konfiguriert werden.

Jedes Schemaobjekt besteht strukturell aus den folgenden Komponenten. Ein eindeutiger Name innerhalb eines Systems. Identische Namen sind in einem System nicht zugelassen. Eine Liste von ID-Feldern und ein Feld mit Änderungsinformationen. Diese sind optional, aber für den vollen Funktionsumfang notwendig. Und eine Liste von Feldern, die zusätzliche Metainformationen tragen, wie Typ, Pflicht, Maximale Länge usw.

Schemaobjekte können auch ineinander geschachtelt werden. Dies nennen wir Objektgruppen. Eine Gruppe hat ein Schemaobjekt und eine abgezählte Liste von Typen oder Ausprägungen. Die Schachtelung kann sich auch wiederholen. Eine Sonderstellung nimmt dabei der Typ „list“ ein. Diesen darf es nur auf oberster Ebene und nur einmal im Schemaobjekt geben. Er kennzeichnet die Datenstruktur Positionsliste, zu der es spezialisierte Syncs gibt. Positionslisten haben eine eigene Transformation für die Datensätze und auch eine eigene Feldzuordnung. Damit können Positionen unterschiedlich zum Datensatz verarbeitet werden.

Für die Erzeugung eines Schemaobjektes mit Positionsliste gibt es im Datenbank-Konnektor einen eigenen Editor, mit dem diese Beziehung definiert werden kann. Im SDK-Konnektor kann dies im Skript für die Schemaerzeugung festgelegt werden.