Transformation

Die Transformation ist ein zentrales Werkzeug in der Datenverarbeitung von Syncler.
Sie bringt Quelldaten in die erforderliche Form für das Zielsystem, reichert Daten bei Bedarf an und kann durch logische Funktionen und Skripte komplexe Anforderungen abbilden.

Neben der klassischen Feldumformung lassen sich:

  • externe Abfragen durchführen (z. B. Lookup in anderen Systemen),
  • Steuerdaten für Sync-Parameter erzeugen,
  • Vorbedingungen und Übereinstimmungsregeln vorbereiten,
  • Filter vorbereiten (zweiter Filter),
  • Webhooks und andere Nebenwirkungen gezielt anstoßen.

Einordnung in den Sync-Ablauf

  • Die Transformation wird pro Datensatz sequenziell ausgeführt; Schritte bauen aufeinander auf.
  • Der zweite Filter eines Syncs wird nach der Transformation angewendet.

    Fehlen im Quellsystem Filterfunktionen oder ist eine systemübergreifende Prüfung nötig, kann die Transformation Felder/Flags vorbereiten, die der zweite Filter auswertet.

  • Vorbedingung für Neuanlage und Übereinstimmungsregel können durch Transformationsschritte vorbereitet werden (z. B. Ableitung einer externen ID).
  • Ergebnisse der Transformation können Sync-Parameter speisen (z. B. dynamische Zielwerte, Flags für Einmalübertragung).

Tipp: Planen Sie Transformationen so, dass jeder Schritt idempotent ist (gleicher Input ⇒ gleicher Output). Das erleichtert Wiederholungen und Fehlerbehandlung.


Ausführungslogik & Best Practices

  • Reihenfolge: Schritte werden top-down abgearbeitet; spätere Schritte sehen die Resultate früherer.
  • Datentypen: Achten Sie auf klare Typen (Datum/Zahl/Text). Nutzen Sie Typ formatieren und Konvertierungen, bevor Sie logische Bedingungen anwenden.
  • Null-/Leerwerte: Behandeln Sie fehlende Felder explizit (Defaultwerte, „Erstes nicht-leeres Feld“).
  • Transparenz: Fügen Sie bei komplexen Flows Hilfsfelder (Parameter/Kopien) hinzu statt Originalwerte mehrfach zu überschreiben.
  • Wiederholungen: Bei Nutzung des Datensatz-Speichers darauf achten, dass irreversible Schritte (z. B. String-Schnitte) vorab kopiert werden.

Typen von Transformationsschritten

Jeder Schritt erzeugt bzw. verändert Felder im Quellschema des Datensatzes.
Im Folgenden sind die von Syncler bereitgestellten Schritte beschrieben – jeweils mit Zweck, typischen Eingaben und Hinweisen.

Parameter erzeugen

Statische oder berechnete Werte als Parameterfelder erzeugen, die später für Zuordnungen/Steuerung dienen (z. B. Defaults, Flags, Konstanten, „Erstes nicht-leeres Feld“).
image
Hinweise:

  • Ideal für Abläufe, um Daten zwischen Syncs zu übergeben.
  • Parameterfelder sind „normale“ Felder im Quellschema und können in Mappings genutzt werden.

Spalten kopieren

Aktuelle Feldwerte duplizieren, um sie unabhängig weiterzuverwenden oder zu transformieren.
image
Hinweise:

  • Vor irreversiblen Operationen (Trim, Ersetzen, Schneiden) nutzen.

JSON in Spalten

Aus einem JSON-Schema und einer Vorlage (mit Platzhaltern) wird JSON erzeugt und anschließend in Spalten aufgelöst.
image
Anwendungsfälle:

  • Webhook-/Abfrage-Antworten in Spalten überführen.
  • Komplexe Felder (Objekte/Arrays) in flache Struktur bringen.
    Hinweise:
  • Validieren Sie, dass die Vorlage gültiges JSON erzeugt.

Wert abbilden

Explizite Wertemappings (z. B. Code → Text). Nicht definierte Werte bleiben unverändert, sofern * nicht als Catch-All gesetzt ist.
image
Hinweise:

  • Mappings pflegen/versionieren; fehlende Werte sichtbar machen (z. B. „UNKNOWN:“).

Auswahllisten abbilden

Dynamische Picklists aus Systemen/Syncs oder manuell – zur flexiblen Laufzeitabbildung.
image
Hinweise:

  • Eignet sich, wenn Zielsystem laufend neue Codes einführt.

Sage CRM-Übersetzungscode

Anzeige- zu Speicherwerten auflösen (Caption ↔ Code) direkt gegen CRM.
image
Hinweise:

  • Reduziert redundante Wert-Mappings.

OLE-Automation- oder Unix-Datum konvertieren

Numerische Zeitstempel (Unix/OLE) in Datum/Zeit umwandeln.
image

Geschlecht ermitteln

Aus Vorname + Land Geschlecht ableiten und Anrede erzeugen.
image
Hinweise:

  • Ergebnis ist probabilistisch; immer Fallback-Option vorsehen (z. B. „Guten Tag“).
  • Bei unbekannten Vornamen wird kein Wert festgelegt

Zusammenführen

Neue Werte durch Konkatenation von Feldern/Trennzeichen erzeugen.
image

Groß- / Kleinschreibung

Text in UPPER/lower/Capitalized konvertieren (erster Buchstabe groß, Rest klein).
image

Abschneiden

Zeichen am Anfang/Ende eines Wertes entfernen (Default: Leerzeichen).
image

Ersetzen

Suchen/Ersetzen von Zeichenketten (z. B. .,, Zeilenumbrüche normalisieren).
image
Hinweise:

  • Reihenfolge mehrerer Ersetzungen beachten; ggf. Regex verwenden.

HTML in Text

HTML-Dokumente in Plain-Text konvertieren; Struktur bleibt soweit möglich erhalten.
image

Dokument konvertieren

Dokumente (Text/Base64) von Quelle- in Zielformat konvertieren (z. B. DOCX → PDF).
image
Hinweise:

  • Ergebnis wird im gleichen Feld abgelegt (Formatwechsel beachten).
  • Dateigrößen/Quota/Performance berücksichtigen.

Typ formatieren

Daten typgerecht formatieren (Datum/Zeit, Kommazahl, Ganzzahl).
image
Platzhalter (Auszug):

  • Datum/Zeit: MM (Monat), yyyy (Jahr), hh/HH (Stunde 12/24), mm (Minute), ss, fff
  • Kommazahl: c (Währung), p (Prozent), n2 (2 Nachkommastellen)
  • Ganzzahl: c, n2

Suche / Trennen mit regulärem Ausdruck

Mit Regex Werte finden oder splitten; Anzahl Treffer/Teile steuerbar.
image

Vollständigen Namen trennen

Anrede, Vorname, 2. Vorname, Nachname extrahieren (festes Schema oder Auto-Erkennung).
image

Telefonnummern trennen

Telefonnummer in Bestandteile zerlegen (z. B. Ländercode, Vorwahl, Nummer).
image

Nach Vorlage trennen

Zeichenketten anhand einer Musterspezifikation (Platzhalter + Trennfolgen) aufteilen; neue Felder entstehen je Platzhalter.
image

C# Code-Skript

Eigenen C#-Code ausführen; Datensatz als Dictionary verfügbar, Zugriff auf SDK-Helper.
image
Hinweise:

  • Für hochkomplexe Logik; Fehlerhandling & Performance beachten.
  • Seiteneffekte (externe Aufrufe) dokumentieren.
  • In Cloud-Instanzen ist die Speichernutzung begrenzt. Skripte mit z.B. FileContent kann zu Abbrüchen führen.

Erstes nicht-leeres Feld

Aus einer Liste das erste befüllte Feld wählen und in ein Ziel schreiben.
image

Formel ausführen

Berechnungen/Entscheidungen per Formelsprache; Platzhalter für aktuelle Daten möglich.
image
Hinweise:

  • Ergebnis landet in einem neuen Feld; Typ beachten.

KI Abfrage

KI Chat Anfrage mit OpenAI- oder Mistral-Konnektor; Modell wählbar; Anfrage mit Platzhaltern formulieren; Antwort in neuen Feldern. image
Hinweise:

  • Ergebnis ist je nach Modell konkret, ausformuliert oder geraten.

Datum und Uhrzeit

Datum/Zeit erzeugen oder berechnen (Quelle: Feld oder aktuelle Systemzeit); Komponenten addieren/subtrahieren, feste Uhrzeit setzen.
image

Daten abfragen

Beliebige Daten aus beliebigen Systemen abrufen (dynamisch Quelle/Ziel oder spezifisches System).
image
Hinweise:

  • Liefert nur eine feste Anzahl von Datensätzen – Filter/SORT sauber definieren.
  • Der erste Datensatz wird ohne Nummerierung im Namen bereitgestellt (Abwärtskompatibilität).
  • Alle weiteren Datensätze erhalten eine Nummer am Feldnamen.
  • Bei Systemänderungen (Import/Export, Löschen) Referenzen prüfen.

Adressen (DQM-Erweiterung)

Adressen prüfen, korrigieren und in Koordinaten auflösen.
image
Hinweise:

  • Ergebnisfelder (Prüfstatus, Geo-Koordinaten) benennen; Korrekturen schreiben.

Datensatz-Abbildung abfragen

Bestehende Mappings (z. B. Firma ↔ Person) nachschlagen, um Ziel-IDs für Zuordnungen/Bedingungen zu erhalten.
image

Abfrage ausführen

Schema-unabhängige Abfrage gegen ein System (SQL, URL); System liefert Datenschema, auswählbare Felder.
image
Hinweise:

  • Erster Datensatz wird übernommen – Filter/SORT beachten.

Webhook

Beliebigen Webhook aufrufen; Nachricht über Platzhalter konstruieren, Ergebnis in neues Feld schreiben.
image
Hinweise:

  • JSON-Ergebnisse mit „JSON in Spalten“ auswerten.
  • Doppelte Aufrufe via Checkbox vermeiden (Nachrichtenvergleich & Resultat-Wiederverwendung).
  • Authentifizierung, Timeouts, Fehler-/Retry-Strategie definieren.

Zusammenspiel mit Filtern, Regeln und Parametern

  • Zweiter Filter nach Transformation: Nutzen Sie Transformationsfelder als Filterkriterien (z. B. isValid, hasParent).
  • Vorbedingung / Übereinstimmung: IDs/Schlüssel in der Transformation ableiten oder lookupen.
  • Sync-Parameter: Dynamische Zielwerte/Steuerflags in der Transformation erzeugen und im Sync verwenden (z. B. Bedingungen an Feldzuordnungen).