In der HubEngine hast du die Möglichkeit innerhalb eines Planes für die Synchronisierung im Felder-Mapping einen Relation-Lookup anzulegen. Dieser mappt den Wert eines Feldes auf Basis eines Lookups. Folgendes Beispiel veranschaulicht die Funktionsweise. Wir synchronisieren unidirektional (ob uni- oder bidirektional macht keinen Unterschied in diesem Falle, der Einfachheit halber nehmen wir unidirektional) Kontakte und Accounts.
Wir haben vier Tabellen:
- System A – Contacts
- System B – Contacts
- System A – Accounts
- System B – Accounts
Hinzu kommen jeweils die Relationen für den Relation Store zwischen den Contacts und Accounts. Contacts in System B sind bislang nicht existent und sollen nun synchronisiert werden. Die anderen Module enthalten folgende Datensätze:
System A - Contacts
ID | Name | Account_ID |
---|---|---|
1 | John | A1 |
2 | Jane | A2 |
3 | Mary | A1 |
System A - Accounts
ID | Name |
---|---|
A1 | Company_1 |
A2 | Company_2 |
System B - Accounts
ID | Name |
---|---|
B1 | Company_1 |
B2 | Company_2 |
Account Relations
ID System A | ID System B |
---|---|
A1 | B1 |
A2 | B2 |
Wenn wir nun die Contacts synchronisieren, indem wir die Felder ohne zusätzliche Aktion mappen, erhielten wir folgende Tabelle:
System B - Contacts
ID | Name | Account_ID |
---|---|---|
A | John | A1 |
B | Jane | A2 |
C | Mary | A1 |
Die Account_ID wird übertragen. Jedoch steht nun die Account_ID aus System A in System B. Wir wollen jedoch die Account_ID von System B in diesem Feld speichern. Sprich, wir möchten folgende Tabelle erhalten, sodass in System B Relationen zwischen Contacts und Accounts hergestellt werden können:
ID | Name | Account_ID |
---|---|---|
A | John | B1 |
B | Jane | B2 |
C | Mary | B1 |
Dafür verwenden wir den Relation Lookup im Feld-Mapping des Plans für die Synchronisierung der Contacts. Wenn wir das Feld Account_ID mappen, wählen wir als Type „relation_lookup“ aus. Dabei konfigurieren wir, dass die Account_ID des zu übertragenen Datensatzes im Relation Store des Plans für die Synchronisierung der Accounts zum Nachschlagen verwendet wird. Praktisch passiert folgendes:
- Der Datensatz mit der ID „1“ (Contacts) aus System A soll übertragen werden. Anstelle nun die Account_ID „A1“ als Wert einfach zu übertragen, wird diese verwendet, um im Relation Store des Plans für die Account-Synchronisierung die Account_ID aus System B nachzuschlagen.
- Account_ID „A1“ wird in der obigen Tabelle Account Relations (den Relation Store des Plans repräsentierend) nachgeschlagen. Als nachgeschlagenen Wert erhalten wir „B1“ zurück.
- „B1“ wird als Wert für das Feld Account_ID übertragen.
- Wir erhalten ordnungsgemäß die gewünschte Tabelle für Contacts in System B.
Umsetzung in der HubEngine
In der HubEngine kannst du den Relation Lookup einrichten, indem du in einem Plan in den entsprechenden „Connection“-Tab wechselst. Dort richtest du den Lookup im Mapping ein. Wir synchronisieren hier Contacts und Accounts von SAP zu HubSpot. Der Screenshot zeigt den Plan für die Synchronisierung der Contacts. Wir wollen äquivalent zu obigem Beispiel den Lookup durchführen.
- System A = SAP
- System B = HubSpot
Wähle dafür im Mapping den Type „relation_lookup“ aus. Daraufhin erscheint der Button „select relation“.
Wenn du auf den Button „select relation“ klickst, gelangst du zu folgender Auswahlmaske.
Sobald du den Plan auswählst (1. Select Plan), erscheint der zweite Schritt rechts. Hier wählst du aus, mit welcher ID du den Lookup durchführen willst.
Da wir von SAP zu HubSpot synchronisieren (SAP -> HubSpot), wählen wir die ID von SAP aus. Diese wird verwendet, um den Wert der ID von HubSpot nachzuschlagen (lookup) und in das im Mapping angegebene Feld zu übertragen.
Anschließend gelangst du zurück zum Mapping und kannst dort fortfahren.