Backpersist

Die Funktion „Backpersist“ findest du in den Connections eines Plans unter den Advanced Options.

Bei backpersist wird die ID, wenn ein Datensatz im Zielsystem angelegt wird, in ein definiertes Feld zurückgeschrieben. Es gibt drei Optionen bei Backpersist:

  • backpersist creation field
  • backpersist delete field
  • backpersist delete value

Backpersist Creation Field

Über einen Plan wird aus System A in System B synchronisiert. Ein Datensatz aus System A wird in System B angelegt, weil er dort noch nicht existiert. Die ID des Datensatzes in System B wird nach dem Anlegen in System A in das definierte Feld zurückgeschrieben (Backpersist Creation Field).

Backpersist Delete Field

In das backpersist delete field wird ein Wert geschrieben, wenn der Datensatz im Zielsystem gelöscht wird. Der default ist 1. Sofern du einen custom value schreiben möchtest, dann trage diesen Wert in Backpersist Delete Value ein.

Zum Beispiel synchronisierst du von System A zu System B. Wird in System B nun ein Datensatz gelöscht und ist nicht mehr verfügbar, schreibt die HubEngine in das festgelegte Backpersist Delete Field.

Backpersist Delete Value

Hier legst du den Wert fest, der in das Backpersist Delete Field geschrieben werden soll.

HubEngine: Connection Advanced Options
HubEngine: Connection Advanced Options

Wir synchronisieren unidirektional von System A zu System B. Das heißt, wir legen die Backpersist-Optionen in der Connection von A -> B an.

Zur Veranschaulichung nutzen wir ein sehr reduziertes Beispiel. Die Datensätze von John und Jane werden synchronisiert. Wir mappen die Felder Name und Deleted für die Synchronisierung. Beachte, dass das Feld Deleted in beiden Systemen unterschiedliche Ausprägung hat! Damit lässt sich später die Funktion „backpersist delete“ einfacher veranschaulichen. Das Mapping:

  • Name : Name, type = string
  • Deleted_In_A : Deleted, type = boolean, Optionen-Mapping: 0 = False, 1 = True

In System A wird über den Integer-Wert 0 und 1 geflaggt, ob ein Datensatz gelöscht ist. In System B wird dies über Booleans.

Die Konfiguration aller Backpersist-Optionen lautet:

Option Wert
backpersist creation field ID_System_B
backpersist delete field Deleted_In_A
backpersist delete value 1

System A

ID Name ID_System_B Deleted_In_A
1 John 0
2 Jane 0

Die relevanten Felder sind ID, Name, ID_System_B, Deleted_In_A. ID_System_B ist noch leer. Durch das Backpersist möchten wir genau dieses Feld füllen. Durch die Synchronisierung erhalten wir in System B folgende Daten:

System B

ID Name Deleted
A John False
B Jane False

Backpersist Create

Während der Planausführung werden die IDs der beiden erstellten Datensätze zurück in System A geschrieben, in das Feld ID_System_B, welches wir vorher in der Funktion „backpersist creation field“ hinterlegt haben. Daher sieht System A nun folgendermaßen aus:

ID Name ID_System_B Deleted_In_A
1 John A 0
2 Jane B 0

Backpersist Delete

Wenn nun ein Datensatz in System A löschst, wird durch die Synchronisierung auch der Datensatz in System B als gelöscht geflaggt. Wenn nun aber ein Datensatz in System B gelöscht wird, kannst du durch die Backpersist Delete Option diesen auch in System A als gelöscht flaggen. Wir löschen John aus System B:

ID Name Deleted
A John True
B Jane False

Bei der nächsten Planausführung erkennt die HubEngine nun, dass John in System B gelöscht wurde. Dadurch wird die Funktion Backpersist Delete aktiv. Wir schreiben nun den Wert 1 (Backpersist Delete Value) in das Feld Deleted_In_A (Backpersist Delete Field). Somit ist John auch in System A als gelöscht geflaggt.

ID Name ID_System_B Deleted_In_A
1 John A 1
2 Jane B 0