Das Mapping der Felder in der HubEngine kannst du unter dem Tab Connection für die jeweilige Synchronisierungsrichtung konfigurieren. Im Mapping legst du fest, welche Felder der jeweiligen Systeme miteinander synchronisiert werden sollen. Im dargestellten Beispiel wird SAP mit HubSpot integriert. Die Felder heißen in diesem Falle auf beiden Seiten gleich (da Demo-Instanzen), das muss jedoch nicht der Fall sein.
Wenn du auf den „Bearbeiten“ klickst, kannst du die gesamte Connection bearbeiten. Dies beinhaltet:
- Mapping
- Aktionen
- Bedingungen
- Advanced Options
Input bezieht sich in dieser Synchronisation auf das SAP-System, während Output sich auf HubSpot bezieht. Wenn wir nun die andere Richtung modellieren würden (HubSpot -> SAP), wäre es getauscht. Dennoch würde das Input-System links und Output-System rechts gelistet werden.
Die Felder für das Mapping kannst du über ein Drop-Down-Menü auswählen. Die Felder wurden entweder zu Beginn der Planeinrichtung durch automatisches Ausführen der Funktion „Test and Fetch Fields“ oder manuelles Ausführen zu einem späteren Zeitpunkt aus den Systemen abgefragt und in der HubEngine gespeichert. Wenn neue Felder in den angebundenen Systemen hinzukommen, muss erneut „Test and Fetch Fields“ ausgeführt werden. Die Funktion ist unter dem Tab „System“ verfügbar.
Für jedes Feld kann ein Typ ausgewählt werden. Folgende Typen stehen zur Verfügung:
- auto
- int (integer)
- string
- bool (boolean)
- date / datetime
- regex
- mapping
- relation lookup
In den meisten Fällen reicht die Option „auto“ aus. Die Optionen für „int“, „string“, „bool“, „date“, „datetime“ führen dazu, dass der Adapter die Daten in diesem Datenbankfeldformat an das Zielsystem überträgt. Die Optionen sollten nur gewählt werden, wenn die Integrität der Formate sichergestellt werden kann. Ansonsten ist die Option „auto“ zu empfehlen, da diese am robustesten funktioniert.
Regex
Regex ist nur sinnvoll, wenn ein aus einem String-Feld ausgelesen wird. Über Regex kann der String manipuliert werden. So können aus einem String bestimmte Zeichen(ketten) extrahiert werden. So kann eine Transformation von Text stattfinden, bevor die Daten übertragen werden.
Transformation/Ersetzung
Die Transformation innerhalb von Regex hat folgenden Syntax:
Form 1: t/[REGEXP]/[ERSATZ]
[REGEXP]
ist ein regulärer Ausdruck mit einer oder mehr Erfassungsgruppen.[ERSATZ]
ist der Ersetzungsstring, der Backreferences verwendet, die mit$
beginnen und mit 1 nummeriert sind.
Wenn der Eingabestring nicht übereinstimmt, bleibt der String unverändert.
Form 2: t/[REGEXP]/[ERSATZ]/[DEFAULT]
[DEFAULT]
ist ein einfacher String, der verwendet wird, wenn der Eingabestring nicht übereinstimmt.[DEFAULT]
kann ein leerer String sein.
Beispiele:
t/(.*)-(.*)/$2-$1
–hello-world
->world-hello
,not_matching
->not_matching
t/(.*)-(.*)/$2-$1/
–hello-world
->world-hello
,not_matching
-> „t/(.*)-(.*)/$2-$1/missing-value
–hello-world
->world-hello
,not_matching
->missing-value
Relation Lookup
Mit dem Relation Lookup kannst du basierend auf anderen Relationen einen Lookup durchführen. Wie genau das funktioniert, erklären wir in einem separaten Beitrag.
Mapping von Feldoptionen
Unter dieser Option kannst du Aktionen und Mappings festlegen. Das einfachste Beispiel ist, wenn du nur ein Mapping von Werten festlegst. Ein häufiges Beispiel wäre folgendes Mapping:
- From „Mrs“ to „Frau“
- From „Mr“ to „Herr“
Damit könntest du, wenn die Anrede in englisch verfügbar ist, diese ins Deutsche übertragen.
Dir stehen aber auch komplexere Möglichkeiten mit den Aktionen zur Verfügung.
Bei Aktionen gibt es 3 Konfigurationsoptionen:
- Type: dropdown
- Delimiter: string
- Event: dropdown
Die Idee der Aktionen ist es, Listen und Arrays zu verarbeiten. Dadurch können mehrere Werte in einem Feld verarbeitet werden.
Type
Hier stehen zwei Auswahlmöglichkeiten zur Verfügung: „implode“ oder „explode“. Explode macht aus einer Liste (bspw. komma-separierte Strings) ein Array. Implode macht aus einem Array wieder eine Liste, d.h. einen String, der innerhalb durch Trennzeichen Werte separiert.
Delimiter
Der Delimiter gibt an, durch welches Zeichen die einzelnen Werte getrennt sind. Häufige Trennzeichen sind Kommata, Tabstops oder Semikolons.
Event
Das Event kann entweder vor oder nach dem Mapping sein. Denn Aktionen ergeben in der Regel nur Sinn kombiniert mit einem Mapping.
Beispiel
Im obigen Beispiel erwarten wir ein Feld, das folgendes enthalten könnte:
- „DE“
- „FR“
- „DE,FR“
- „FR,DE“
Durch die Konfiguration oben machen wir daraus entsprechend:
- „Deutschland“
- „Frankreich“
- „Deutschland,Frankreich“
- „Frankreich,Deutschland“
Dadurch wird die Funktionalität klar. Ich kann eine Liste von Werte bearbeiten, indem ich diese vorher auflöse, dann mappe und anschließend wieder zusammenfüge.