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:

OptionWert
backpersist creation fieldID_System_B
backpersist delete fieldDeleted_In_A
backpersist delete value1

System A

IDNameID_System_BDeleted_In_A
1John0
2Jane0

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

IDNameDeleted
AJohnFalse
BJaneFalse

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:

IDNameID_System_BDeleted_In_A
1JohnA0
2JaneB0

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:

IDNameDeleted
AJohnTrue
BJaneFalse

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.

IDNameID_System_BDeleted_In_A
1JohnA1
2JaneB0