sap-integration-salesforce-connect-ccg-header.jpg

Tipps & Tricks

Salesforce Connect

SAP Integration mit Salesforce Connect

In diesem Blogbeitrag werden wir das Data Integration Tool "Salesforce Connect" (vormals Lightning Connect) ausführlich vorstellen. Es wurde zur Dreamforce 2014 von Salesforce als eins von verschiedene Modulen der neuen Lightning Architektur vorgestellt.

Was ist und was kann Salesforce Connect?

Mit Salesforce Connect können Sie auf externe Daten lesend zugreifen. Als Datenquellen sind Fremdsysteme wie z.B. SAP, Microsoft oder Oracle denkbar. Die technische Voraussetzung ist, dass die Quellsysteme über den OData Standard (Open Data Protocol Version 2.0 oder 4.0) erreichbar sind. Die Daten werden dabei in Echtzeit vom Quellsystem abgefragt und in Salesforce wird keine Kopie dieser Daten gehalten. Insofern unterscheidet sich diese Anbindung von ETL Tools, die per Scheduler Daten in definierten Zeitabständen in Salesforce Objekte kopieren, von wo sie 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 Objekte angewandt werden - ziemlich "cool" - wie wir meinen!

Für welche Usecases ist Salesforce Connect geeignet?

Einige Beispiele für denkbare Integrationen sind:

  • On-premise ERP Systeme (auf Oracle oder IBM DB2 Basis) wie zB. SAP, PeopleSoft oder JDEdwards
  • Data Warehouse Anbindungen wie z.B. Amazon Redshift oder Cloudera
  • Anbindung von Microsoft Sharepoint
  • Marketing Daten Anbindung wie z.B. von Marketo, Hubspot, Eloqua, or 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 Fremddaten sind eher kleinere Datenmengen, also in Echtzeit abfragbar
  • Es ist nicht gewünscht (oder nötig) große externe Datenmengen in Salesforce zu replizieren
  • Daten werden gelesen und müssen nicht (zurück-) geschrieben werden

Integrationsbeispiel

Ich zeige Ihnen hier als Integrationsbeispiel die Anbindung eines SAP Systems an Salesforce. Beide Systeme 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 ist über die Salesforce Entwickler Community verfügbar. Sie müssen sich dort jeweils entsprechend registrieren. Bei SAP brauchen Sie dann noch einen User für das SAP Demo-System.

Um Salesforce für die Verwendung von Salesforce Connect zu konfigurieren legen wir als erstes eine "Externe Daten Quelle" an. Dazu gehen wir im SF-Setup nach Setup -> Develop -> External Data Sources (wir benutzen für unser Beispiel das englische Sprachschema im Setup). 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 Daten Schemata synchronisieren:

Wir sehen, dass der Status = "Success" gemeldet wurde. Die im SAP Service verfügbaren Datenobjekte werden aufgelistet. Wir wählen hier die Tabelle "SalesOrderSet" aus, die Masterdaten unserer SAP Bestellungen enthält. Die Tabelle "SalesOrderLineItemSet" wären die einzelnen Bestellposten.

Durch klicken auf die Schaltfläche "Sync" kann Salesforce die SAP Metadaten für die Erstellung eines Externen Objektes bereitstellen.

Wenn wir dieses Objekt ansehen, findet jeder, der bereits Custom Objects in Salesforce angelegt hat, viele vertraute Details. Zur Unterscheidung dieser Externen Objekte enden die API Namen nicht wie sonst auf "__c" sondern auf "__x":

Erstellen wir nun im Setup unter Create -> Tabs ein neues Register-Tab für unser externes Objekt:

Und - "et voilà" - wir können wir nun die in Echtzeit abgefragten SAP Daten sehen. Die URLs sind die Adressen unter denen SAP's OData Service den jeweiligen Datensatz zur Verfügung stellt. Sehen wir uns den Datensatz 0500000007 an:

Salesforce hat während der Erzeugung des Externen Objektes auch ein passendes Layout erstellt. Dort sehen wir alle Daten dieser Bestellung. Beachten Sie die Kundennummer im Feld "CustomerID". Diese Nummer verwenden wir nun zur Anzeige der Orders in einem Account. So erreichen wir die gewünschte "360 Grad" Ansicht auf den Kunden.

Wenn wir die ListView im Tab "SalesOrderSet" noch um ein paar Felder erweitern, sehen wir dass zu Kunden mit CustomerID "100000004" insgesamt drei Bestellungsdatensätze gehören.

Um ein bestimmtes Account - ich habe hier den Datensatz "Burlington Textiles" ausgewählt - mit diesen Bestellungen zu verbinden, erstellen wir zunächst im Account Objekt ein neues Feld mit Label "CustomerID" und 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 "100000004" ein.

In einem Produktivsystem hätten Sie natürlich vorher bei allen Accounts die SAP Kundennummern in diesem Feld hinterlegt.

Nun wechseln wir zu unserem Externen Objekt "SalesOrderSet__x" und klicken auf Edit im gleichnamigen Feld:

Salesforce Connect bietet verschiedene Verknüpfungen für externe Objekte. So können diese mit anderen externen Objekten verbunden werden, z.B. um die Tabelle "SalesOrderSet" mit den Details "SalesOrderLineItemSet" zu verbinden. Diesen Use-Case lassen wir hier der Kürze halber aus.

Wir wollen stattdessen das Standard Objekt "Accounts" mit unserem "SalesOrderSet" verlinken. Daher ändern wir nun den Feldtyp der "CustomerID" und wählen "Indirect Lookup Relationship" aus:

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

Nach diesen Arbeiten können wir im Account Layout die Related List "SalesOrderSet" einfügen und die gewünschten Felder auswählen. Geschafft!

Wir sehen die drei Order Datensätze (mit CustomerID = 0100000004") bei unserem Account in Echtzeit und direkt aus einem SAP System. Hier könnten wir sofort sehen, wenn sich z.B. ein DeliveryStatus auf verschickt (=sent) ändert.

Fazit

Mit Salesforce Connect steht uns 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 bekanntesten Data Integration Tools wie Talend, Dell Boomi, Jitterbit oder Informatica in gewissen Integrations-Szenarien durchaus eine Alternative. Allerdings hinkt der Vergleich etwas, denn die Tools der "großen" Hersteller sind für ganz andere Anwendungsfälle entwickelt worden und können dort natürlich besser Punkten. Im Grunde genommen ist Salesforce Connect eine gute Ergänzung und kann in Szenarien eingesetzt werden, in denen die anderen Tools überdimensioniert sind.

Ressourcen

Teilen Sie diesen Artikel

Beliebteste Artikel