In der heutigen schnelllebigen digitalen Welt benötigen Unternehmen unterschiedliche Softwaresysteme, um Produktivität, Kundenerlebnis und Datenqualität zu verbessern. Zwei der am weitesten verbreiteten Enterprise-Lösungen, SAP und Salesforce, helfen Unternehmen dabei, operative Effizienz und Kundenzufriedenheit zu steigern. Die Salesforce SAP Integration kann verändern, wie Unternehmen ihre Prozesse steuern: Sie strafft den Datenfluss, verbessert die Kundeninteraktion und optimiert die Entscheidungsfindung.
Warum SAP und Salesforce integrieren?
Die Integration von SAP und Salesforce ermöglicht Unternehmen eine stärker kollaborative Arbeitsweise. Die Integration bringt Vertrieb, Marketing und Kundenservice mit den Back-Office-Funktionen in Einklang und sorgt so für einen einheitlichen Ansatz bei Entscheidungsfindung, Kundenbetreuung und Bestandsführung.
Business-Anwendungsfälle für die SAP-Salesforce-Integration
Fall 1: Auftragslebenszyklus über die Salesforce - SAP Integration
Auftragsanlage: Der Auftragslebenszyklus beginnt, wenn in Salesforce ein neuer Kundenauftrag angelegt wird. Salesforce sendet die Auftragsdetails (etwa Produkt, Menge, Preis und Kundeninformationen) zur Auftragsabwicklung und Bestandsverarbeitung an SAP.
Auftragsübergabe an SAP zur Verarbeitung: Sobald der Auftrag in Salesforce angelegt ist, wird er zur weiteren Verarbeitung an SAP übergeben. SAP legt auf Basis der von Salesforce übermittelten Daten einen Kundenauftrag an, sodass die Backend-Systeme den Bestand verwalten, Lagerbestände prüfen und die finanziellen Aspekte der Auftragsabwicklung bewerten können. Das SAP-System validiert den Auftrag und meldet zurück, ob er verarbeitet werden kann oder ob weitere Freigaben erforderlich sind.
Auftragsrückmeldung an Salesforce: Nach der Validierung des Auftrags wird eine Rückmeldung an Salesforce gesendet, die den Auftragsstatus und weitere relevante Versanddetails enthält. Wird der Auftrag in SAP abgelehnt, geht eine Auftragsrückmeldung mit Status und Ablehnungsgrund an Salesforce.
Fakturierung und Zahlungsabwicklung: Nach dem Versand der Produkte erzeugt SAP eine Rechnung zum Auftrag, die alle Angaben zu Preisen, Rabatten, Steuern und Versandkosten enthält. Die Integration synchronisiert den Zahlungsstatus aus SAP zurück nach Salesforce. Geht eine Zahlung ein, wird der Auftragsstatus in Salesforce aktualisiert, sodass Vertriebsmitarbeitende und Kundenserviceteams den Zahlungsstatus in Echtzeit einsehen können.
Fall 2: Lebenszyklus der Kundenstammdaten-Integration über Salesforce-SAP
Anlage der Kundendaten in Salesforce: Wenn ein Kunde einen Kauf tätigt oder eine formale Geschäftsbeziehung eingeht, legt Salesforce einen Kundendatensatz an. Erfasst werden Informationen wie Kundenname, Kontaktdaten, Adresse und Geschäftssegmente.
Übertragung der Kundendaten von Salesforce nach SAP: Die Integrationsplattform übernimmt die Übertragung der Kundenstammdaten von Salesforce nach SAP. Die Kundeninformationen aus Salesforce werden auf die entsprechenden Felder in SAP gemappt.
Anlage der Kundendaten in SAP: Nach Erhalt der Kundendaten aus Salesforce werden SAP-Kundenstammsätze in SAP angelegt oder aktualisiert. SAP prüft auf Dubletten und stellt sicher, dass neue Kunden im System ergänzt werden.
Synchronisation von Änderungen über beide Systeme hinweg: Sobald der Kundenstammsatz in SAP angelegt ist, sorgt die Integration dafür, dass Änderungen in Salesforce oder SAP regelmäßig synchronisiert werden. Alle Aktualisierungen der Kundendaten in Salesforce (etwa Adressänderungen, Kontaktaktualisierungen oder neue Accounts) werden in SAP nachgezogen. Ebenso werden Aktualisierungen der Kundenstammdaten in SAP (etwa Kreditlimits oder Zahlungsbedingungen) mit Salesforce synchronisiert.
So integrieren Sie Salesforce und SAP mit SAP Cloud Integration
SAP Cloud Integration ist eine cloudbasierte Middleware-Lösung, die fortgeschrittene Funktionen zur Datentransformation für den Aufbau eigener Integrationen bietet sowie mit ihren vorgefertigten Konnektoren ein breites Spektrum an Konnektivitätsoptionen. Bevor wir zum Integrationsdesign kommen, betrachten wir zunächst die Salesforce-API und die Konnektivitätsoptionen für die Salesforce-Integration.
Salesforce API
Salesforce stellt eine Reihe von APIs bereit, die jeweils auf bestimmte Integrationsszenarien zugeschnitten sind. Hier die am häufigsten genutzten APIs in Salesforce:
Rest API: Die REST API ermöglicht es Entwicklerinnen und Entwicklern, mit Salesforce-Daten auf schlanke und effiziente Weise über die Standard-HTTP-Methoden (GET, POST, PUT, DELETE) zu arbeiten.
Bulk API: Die Salesforce Bulk API basiert auf REST-Prinzipien und ist für die Arbeit mit großen Datenmengen (mehr als 2000 Datensätze) optimiert. Mit ihr lassen sich viele Datensätze asynchron einfügen, aktualisieren, per Upsert verarbeiten oder löschen.
SOAP API: Die Salesforce SOAP API ist ein Webservice, über den Sie programmatisch mit den Kernfunktionen von Salesforce arbeiten können. Sie folgt dem XML-basierten Messaging-Protokoll für den Austausch strukturierter Informationen zwischen Systemen.
SOQL Query: Salesforce Object Query Language (SOQL) ist eine Sprache zum Abfragen von Salesforce-Daten. Sie kann sowohl in SOAP- als auch in REST-API-Aufrufen verwendet werden, über den Parameter “queryString” beziehungsweise den Parameter “q”. Syntax: SELECT Field1, Field2 FROM Object Name WHERE FIELD1 = ‘STRING’
Composite und Composite Graph Request: Ein Composite Request führt eine Reihe von REST-API-Anfragen in einem einzigen Aufruf aus. Er kann bis zu 25 Subrequests in einem Aufruf senden, davon bis zu 5 Query-Operationen. Eine Composite-Graph-Operation kann bis zu 20 Composite Requests in einem einzigen Aufruf senden, was insgesamt 500 Anfragen pro Aufruf ergibt, wenn jeder Composite Request 25 Subrequests sendet.
Aufbau eines Composite Request:
allOrNone: Ein Boolescher Wert für die transaktionale Behandlung beim Senden einer Anfrage. Ist er auf true gesetzt, wird die gesamte Anfrage zurückgerollt, sobald ein Fehler auftritt.
collateSubrequests: Ein Boolescher Wert. Ist er auf true gesetzt, werden die Subrequests zusammengefasst, was die Verarbeitungsgeschwindigkeit erhöht, die Ausführungsreihenfolge ist dann jedoch zufällig. Ist er deaktiviert, werden die Subrequests in der Reihenfolge ihres Eingangs ausgeführt.
Method: Hier wird die HTTP-Anfragemethode angegeben, möglich sind GET, POST, PUT, PATCH und DELETE.
URL: Pfad zur angeforderten Ressource. Beispiel: /services/data/{API Version}/{Object Name}/{Object Id}.
httpHeaders: Request-Header und Werte, die in den Subrequests mitgegeben werden.
referenceId: Eine eindeutige ID zur Identifikation einer Subrequest-Antwort, auf die in nachfolgenden Subrequests verwiesen werden kann.
body: Die im Subrequest gesendeten Felder.
6. sObject Collections: sObject Collections können Aktionen auf 200 Datensätzen in einem einzigen Aufruf ausführen. Sie können Objekte unterschiedlicher Typen enthalten.
Aufbau einer sObjectCollection:
allOrNone: Wie beim Composite Request ein Boolescher Wert für die transaktionale Behandlung.
type-Attribut: Name des Objekts, auf dem die Aktion ausgeführt werden soll.
Salesforce Adapter für SAP Cloud Integration
Für SAP Cloud Integration stehen zwei Salesforce-Adapter zur Verfügung: Advantco und Rojo. Beide Adapter bieten jeweils eigene Funktionen und Fähigkeiten. Schauen wir uns die wichtigsten Unterschiede zwischen dem Advantco- und dem Rojo-Adapter an, jeweils mit einem technischen Überblick, um ihre Funktionsweise und ihre Vorteile innerhalb von SAP Cloud Integration besser zu verstehen.
1. API-Unterstützung
Advantco: SOAP, REST, REST API Composite, BULK API, Streaming API, REST API Reports and Dashboard, APEX REST Web Service, OBM (Neo), APEX SOAP Web Service (Neo).
Rojo: REST, REST API Composite, BULK API, Streaming API, APEX REST Web Service
2. Update Trigger:
Der Update Trigger ist ein Mechanismus, mit dem der Wert eines Flags in Salesforce nach dem erfolgreichen Polling von Daten aktualisiert wird. Diese Funktion lässt sich an spezifische Integrationsanforderungen anpassen.
So funktioniert es:
Data Polling: In jedem Integrationszyklus werden Datensätze anhand einer festgelegten Bedingung aus Salesforce gelesen, häufig werden dabei Datensätze ausgewählt, bei denen ein bestimmtes Feld (das Flag) auf ‘false’ steht oder unverarbeitet ist.
Flag-Aktualisierung: Sobald die Datensätze erfolgreich verarbeitet wurden, wird das vorgesehene Flag-Feld auf ‘true’ gesetzt, was anzeigt, dass der Datensatz erfolgreich bearbeitet wurde.
Vermeidung von Dubletten: In den folgenden Läufen liest die Integration nur noch die Datensätze, bei denen das Flag weiterhin auf ‘false’ steht. So werden ausschließlich unverarbeitete Datensätze ausgewählt und bereits verarbeitete Daten nicht erneut abgeholt.
Der Advantco Salesforce Adapter bietet im Adapter eine Konfigurationsoption, um den Update Trigger zu aktivieren und das jeweilige Flag-Feld auf einen bestimmten Wert zu setzen, während dieser Vorgang im Rojo Salesforce Adapter manuell umgesetzt werden muss.
Bedingtes Update an Salesforce:
Im Advantco Salesforce Adapter lässt sich das bedingte Update automatisch über das Operation Schema “Update Multiple Objects” abbilden, wie im Folgenden erläutert.
Operation: Definiert die Request-Methode, zum Beispiel update oder upsert.
ObjectType: Definiert den Namen des zu aktualisierenden Objekts.
ExternalID: Definiert den Feldnamen, der im Salesforce-System als External Id verwendet wird.
Condition: Definiert eine Reihe von Kriterien, auf deren Basis ein Datensatz in Salesforce aktualisiert wird. Es entspricht einem SOQL-“GET”-Request: Ist die Anfrage erfolgreich, werden die Datensätze in Salesforce aktualisiert.
TransactionLevel: Legt die transaktionale Behandlung fest. Steht der Wert auf “REQUIRED”, schlägt die gesamte Transaktion fehl, sobald ein einzelner Datensatz fehlschlägt.
SObjects: Enthält die Felder und Werte, die in Salesforce aktualisiert werden sollen.
Im Rojo Salesforce Adapter muss das bedingte Update manuell umgesetzt werden. Möglich ist dies über einen Composite Request, mit der API-bedingten Beschränkung auf fünf Bedingungen pro Aufruf.
Im zweiten Teil dieses Blogbeitrags sprechen wir über das Integrationsdesign für Outbound- und Inbound-Szenarien und behandeln dabei zentrale Aspekte wie manuelle Update Trigger und bedingte Updates. Bleiben Sie dran für eine ausführliche Anleitung zur erfolgreichen Umsetzung dieser Prozesse bei Ihrer Migration auf den Rojo OEM Salesforce Adapter.