Verbindung – Bedingungen

Über Bedingungen kannst du deine Synchronisation zielgenau steuern. Bedingungen (im Folgenden verwenden wir das englische Wort Conditions dafür), legen fest, ob ein Datensatz überhaupt synchronisiert wird (sowohl bei create als auch update). Du kannst Bedingungen vielseitig konfigurieren mit verschiedensten Feldtypen und beliebig verschachtelt (nested). So kannst du komplexe Synchronisationsbedingungen bequem realisieren.

Um Bedingungen/ Conditions in deinem Plan zu setzen, navigiere zu dem Reiter Verbindung/Connection. Bei einem bidirektionalen Plan, wähle die entsprechende Synchronisationsrichtung aus. Du siehst die gemappten Felder und darunter befindet sich der Konfigurationsbereich für die Conditions, direkt unter den Actions.

Um eine Condition hinzuzufügen, klicke auf den Button Add Rule.

The HubEngine allows you to set conditions for a synchronization plan to be executed.
The HubEngine allows you to set conditions for a synchronization plan to be executed.

Anschließend kann Type und Value (siehe unteres Bild) für die Bedingung ausgewählt werden.

Bei Type kannst du folgende Typen auswählen:

  • Input Field
  • Output Field
  • Field after Action
  • String
  • Null
  • Boolean
  • Integer

Wähle auf der linken Seite am besten immer Field aus.

Conditions Types
Conditions Types

Bei Input/Output Field wählst du ein Feld aus dem System aus, aus welchem du synchronisierst (Input Field) oder in das du synchronisieren willst (Output Field).

Wenn Du auf Werte zugreifen möchtest, die erst nach einem Mapping der Feldoptionen vorhanden sind, wählst Du Field after action.

Bei allen drei Optionen, kannst du einfach mittels einer Feldauswahlliste das gewünschte Feld selektieren.

Ansonsten gibst du den Wert des Types ein. Zwischen den beiden Termen kannst du die logische Operation auswählen. Im Screenshot ist die Operation Equals zu sehen. Weiterhin gibt es:

  • not equals
  • less than
  • greater than
  • begins with
  • contains
  • contains not
  • regex

Die Optionen bei Type bedeuten folgendes:

  • String: Hier kannst du Konditionen basierend auf Text setzen
  • Null: Ist der Wert, wenn ein Datenbankfeld leer ist, also nichts enthält, unabhängig des Datentyps
  • Boolean: Ist der Datentyp für die Ausprägungen wahr/falsch
  • Integer: Hier kannst du Konditionen basierend auf ganzen Zahlen setzen

In unserem Beispiel unten bedeutet dies, dass das Feld sync in dem System, aus dem wir synchronisieren, den Wert 1 haben muss, damit eine Synchronisation des Datensatzes überhaupt stattfindet.

Configure the condition: Choose which side for the condition field is considered (input vs. output) and its name (left column). Then choose the data type you want to set and its value in the right column.
Configure the condition: Choose which side for the condition field is considered (input vs. output) and its name (left column). Then choose the data type you want to set and its value in the right column.

Selbstverständlich kannst du auch mehrere Bedingungen kombinieren. Klicke dafür einfach ein weiteres Mal auf den Button Add Rule.

Wir haben die Bedingung erweitert, sodass das Feld external_id ungleich „null“ sein muss. Die beiden Conditions werden mit einem logischen Und verknüpft (Logische Operatoren). Das heißt, beide Conditions müssen zutreffen, damit eine Synchronisation stattfindet.

You can freely chain and combine conditions for a synchronization plan in the HubEngine.
You can freely chain and combine conditions for a synchronization plan in the HubEngine.

Jetzt möchten wir eine komplexere Bedingung realisieren. Dafür löschen wir die zweite Kondition, da wir diese mit einer weiteren verschachteln. Wir bilden jetzt eine verschachtelte Bedingung ab. Verschachtelte Bedingungen werden auch oft mit Klammern dargestellt. Um Klammern hinzuzufügen, klicken wir auf den Button Add Group.

Wir möchten folgende Synchronisationsbedingung abbilden (in unterschiedlichen Schreibweisen):

  • (deleted == 0) & (external_id == null | external_id == 0)
  • (deleted == 0) AND (external_id == null OR external_id == 0)
  • deleted ist gleich null und entweder external_id ist gleich null oder ist gleich 0
The HubEngine allows you set unlimited nested conditions for a synchronization plan to be executed.
The HubEngine allows you set unlimited nested conditions for a synchronization plan to be executed.

Die erste Gruppe enthält die Condition mit dem sync field und die zweite Gruppe enthält die beiden Bedingungen mit jeweils dem external_id field. Das logische oder bezieht sich auf innerhalb des zweiten Terms/ Gruppe. Das logische und bezieht sich auf zwischen beide Gruppe.

Es müssen sowohl der erste Term (erste Klammer) als auch der zweite Term (zweite Klammer) zutreffen.

Durch den Pfeil neben AND/OR kannst du weitere typische logische Operatoren einblenden. Da diese aber nicht so oft verwendet werden, sind diese standardmäßig ausgeblendet. 

Falls du komplexe Conditions baust oder du dir Notizen zu einer Condition machen willst, kannst du per Klick auf Description ein Eingabefeld für ein Beschreibungstext einblenden und bearbeiten. 

Wenn du Hilfe oder Beratung bei der Einrichtung deiner Conditions benötigst, dann kontaktiere uns einfach. Wir helfen dir gerne!