Verbindung – Mapping

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.

HubEngine Connection Overview
HubEngine Connection Overview

Wenn du auf den „Bearbeiten“ klickst, kannst du die gesamte Connection bearbeiten. Dies beinhaltet:

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.

HubEngine Mapping Edit View Overview
HubEngine Mapping Edit View Overview

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
HubEngine Mapping Edit Types
HubEngine Mapping Edit Types

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-$1hello-world -> world-hello, not_matching -> not_matching
  • t/(.*)-(.*)/$2-$1/hello-world -> world-hello, not_matching -> „
  • t/(.*)-(.*)/$2-$1/missing-valuehello-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.

HubEngine Mapping - Field Mapping
HubEngine Mapping - Field Mapping

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.