In vielen Firmen geht es darum, den Mitarbeitern in der Salesforce-Organisation SAP-Daten zur Verfügung zu stellen. Eine wertvolle Hilfe hierfür ist das Data Integration Tool „Salesforce Connect“, das wir in diesem Beitrag ausführlich vorstellen.

Was ist und was kann Salesforce Connect?

Mit Salesforce Connect können externe Daten in der Salesforce-Organisation angezeigt, gesucht und geändert werden. Als Datenquellen sind Fremdsysteme wie SAP, Microsoft oder Oracle denkbar, es können aber auch andere Salesforce-Organisationen angesprochen werden. Die Daten werden dabei in Echtzeit vom Quellsystem abgefragt, in Salesforce wird keine Kopie dieser Daten erstellt. Insofern unterscheidet sich diese Anbindung von ETL Tools, wo per Scheduler Daten in definierten Zeitabständen in Salesforce Objekte kopiert werden, die dann anschließend verarbeitet werden.

Eine weitere Besonderheit von Salesforce Connect ist, dass die externe Datenquelle als quasi-natives SF-Objekt zur Verfügung gestellt wird. Viele Salesforce-Verfahren wie z. B. APEX-Trigger und -Klassen, SOQL-Abfragen, LookUp-Beziehungen uvm. können wie gewohnt auf dieses Objekt angewandt werden –  aus unserer Sicht eine feine Sache!

Für welche Use Cases ist Salesforce Connect geeignet?

Einige Beispiele für denkbare Integrationen sind:

  • On-premise ERP-Systeme (auf Oracle oder IBM DB2 Basis) wie z. B. SAP, PeopleSoft oder JD Edwards
  • Data-Warehouse-Anbindungen wie z. B. Amazon Redshift oder Cloudera
  • Anbindung von Microsoft Sharepoint
  • Marketingdaten-Anbindung wie z. B. von Marketo, Hubspot, Eloqua, oder Google Adwords

Generell bietet sich der Einsatz von Salesforce Connect insbesondere bei diesen Voraussetzungen an:

  • Zugriff in Echtzeit auf die Fremddaten bietet den gewünschten Mehrwert (z. B. Versandstatus in der Warenlogistik)
  • Die Umfänge der Fremddaten sind eher klein, also in Echtzeit abrufbar
  • Große externe Datenmengen müssen oder sollen nicht in Salesforce repliziert werden
  • Daten werden gelesen und müssen nicht (zurück-)geschrieben werden

Wie erfolgt der Datenzugriff?

Dies kommt ganz auf das Datenquellsystem an. Für den Zugriff auf die Daten einer anderen Salesforce-Organisation wird die Lightning Platform REST API verwendet. Nutzt die externe Datenquelle den OData-Standard, ermöglichen die Open Data Protocol Version 2.0 oder 4.0 mit den entsprechenden Adaptern den Zugriff auf die externen Daten. 

Treffen diese Möglichkeiten nicht auf das Fremdsystem zu, kann andernfalls mittels Apex eine Verbindung aufgebaut werden.

Integrationsbeispiel

Als Integrationsbeispiel zeigen wir hier die Anbindung eines SAP-Systems an Salesforce (OData 2.0). Beides sind Demo-Systeme, die von den jeweiligen Herstellern zur Verfügung gestellt werden. Das SAP-System ist über die SAP Community, die Salesforce Developer ORG dagegen über die Salesforce Entwickler Community verfügbar. Man muss sich dort jeweils entsprechend registrieren. Bei SAP wird dann noch ein User für das SAP Demo-System benötigt.

Um Salesforce für die Verwendung von Salesforce Connect zu konfigurieren, wird als Erstes eine „Externe Datenquelle“ angelegt. Dazu gehen wir in unserer Salesforce-Organisation in das Setup und suchen nach External Data Sources (wir benutzen für unser Beispiel das englische Sprachschema). Dort klicken wir auf den Button “New External Data Source”:

Nun tragen wir die für die OData-Verbindung nötigen Parameter wie Service Root URL, Authentifizierungsdaten etc. ein:

Danach können wir die Verbindung validieren und dabei die Datenschemata synchronisieren:

War die Validierung erfolgreich, bekommen wir den Status = „Success“ zurückgemeldet. Die verfügbaren Datenobjekte aus der entsprechenden Datenquelle werden aufgelistet. Wir wählen nun die Tabelle „SalesOrderSet“ aus, die die Masterdaten unserer SAP-Bestellungen enthält. Die Tabelle „SalesOrderLineItemSet“ liefert die einzelnen Bestellposten.

Durch Klicken auf die Schaltfläche „Sync“ kann Salesforce die SAP-Metadaten für die Erstellung eines externen Objektes bereitstellen.

Jeder, der bereits Custom Objects in Salesforce angelegt hat, findet bei diesem Objekt viele vertraute Details. Zur Unterscheidung dieser externen Objekte enden die API-Namen nicht wie sonst auf „__c“ sondern auf „__x“. Die externen Objekte sind separat unter „External Objects“ zu finden. Hier das Beispiel zu unserem „SalesOrderSet“:

Um die in SAP hinterlegten Daten auch in der Salesforce-Organisation ansehen zu können, erstellen wir einen Tab für das externe Objekt. Wir suchen im Setup nach „Tabs“ und klicken auf „New“:

Und tatsächlich können wir nun die in Echtzeit abgefragten SAP-Daten sehen. Die URLs sind die Adressen, unter denen SAPs OData Service den jeweiligen Datensatz zur Verfügung stellt. Sehen wir uns den Datensatz 0500000004 an:

Salesforce hat während der Erzeugung des externen Objektes auch ein passendes Layout erstellt. Dort sehen wir alle Daten dieser Bestellung. Man beachte die Kundennummer im Feld „CustomerID“. Diese Nummer verwenden wir nun zur Anzeige der Bestellungen in einem Account. So erreichen wir die gewünschte „360-Grad“-Ansicht des Kunden.

Wenn wir die ListView im Tab „SalesOrderSet“ noch um ein paar Felder erweitern, sehen wir, dass zum Kunden mit der CustomerID „0100000006“ mehrere Bestellungsdatensätze gehören.

Um einen bestimmten Account - wir haben hier den Datensatz „Burlington Textiles“ ausgewählt - mit diesen Bestellungen zu verbinden, erstellen wir zunächst im Account-Objekt ein neues Feld mit dem Label „CustomerID“ und dem API-Namen „CustomerID__c“, Text, Länge 10. Wir fügen dieses Feld zum Account-Layout hinzu und tragen bei unserem Demo-Account die CustomerID „0100000006“ ein.

In einem Produktivsystem wäre natürlich vorher bei allen Accounts die SAP-Kundennummer in diesem Feld hinterlegt worden.

Nun wechseln wir zu unserem externen Objekt „SalesOrderSet__x“ und klicken beim gleichnamigen Feld auf „Edit“:

Salesforce Connect bietet verschiedene Verknüpfungen für externe Objekte an. So können diese mit anderen externen Objekten verbunden werden, etwa um die Tabelle „SalesOrderSet“ mit den Details „SalesOrderLineItemSet“ zu verbinden. Diesen Fall lassen wir hier der Kürze halber aus.

Stattdessen wollen wir das Standardobjekt „Accounts“ mit unserem „SalesOrderSet“ verlinken. Daher ändern wir nun den Feldtyp von „CustomerID“ und wählen „Indirect Lookup Relationship“ aus:

Nachfolgend wählen wir noch das Feld im Account aus, auf das unsere Verbindung zielt:

Anschließend können wir im Account-Layout die Related List „SalesOrderSet“ einfügen und die gewünschten Felder auswählen. Geschafft! 

Wer schon Erfahrungen mit Salesforce gesammelt hat, dem ist sicherlich aufgefallen, dass die Verbindung der beiden Objekte anders aufgebaut ist als zwischen internen Objekten. Nehmen wir die Beziehung Account und Contact wo eine Verbindung mit der jeweiligen ID hergestellt ist. Beim Contact-Objekt mit der AccountID. Bei den externen Datensätzen wird keine SalesforceId als Verbindungsglied verwendet, sondern eine externe ID, die in der Salesforce-Umgebung eingebunden werden muss. 

Jetzt schauen wir nach den verknüpften Order-Datensätzen (mit CustomerID = „0100000006“) bei unserem Account. Diese werden direkt aus einem SAP-System in Echtzeit eingebunden. Man kann sofort sehen, wenn sich z. B. ein Delivery Status auf „verschickt“ (= sent) ändert.

Fazit 

Salesforce Connect ist ein kostenpflichtiges Tool, allerdings steht damit ein effektives und einfach anwendbares Tool zur Integration von Fremdsystemen zur Verfügung. Speziell bei der Integration in Echtzeit kann Salesforce Connect seine Stärken ausspielen und ist im Vergleich zu den bekannten Data Integration Tools wie Magic XPI, Talend, Dell Boomi, Jitterbit oder Informatica eine ausgezeichnete Alternative. Sollen oder müssen externe Daten allerdings in Salesforce bestehen bleiben, dann geht dies nicht mit Salesforce Connect sondern u. a. über die oben genannten Integrationsplattformen. 

Salesforce Connect ist immer dann eine gute Wahl, wenn Daten nicht physikalisch in eine Salesforce-Organisation übertragen werden müssen.

Ressourcen:

Photo by Clint Adair on Unsplash

Zurück zur Artikelübersicht
Topics
Relevante Seiten

Teilen Sie diesen Artikel