In der heutigen schnelllebigen digitalen Welt benötigen Unternehmen verschiedene Softwaresysteme, um ihre Produktivität, Kundenerfahrung und Datengenauigkeit zu verbessern. Zwei der am weitesten verbreiteten Unternehmenslösungen - SAP und Salesforce - unterstützen Unternehmen bei der Steigerung der betrieblichen Effizienz und der Kundenzufriedenheit. Die SAP-Integration von Salesforce kann die Art und Weise verändern, wie Unternehmen ihre Prozesse verwalten, indem sie den Datenfluss rationalisiert, die Interaktion mit Kunden verbessert und die Entscheidungsfindung optimiert.
Warum sollten SAP und Salesforce integriert werden?
Integration von SAP und Salesforce ermöglicht es Unternehmen, ein kollaborativeres Umfeld zu schaffen. Die Website Integration stimmt die Teams für Vertrieb, Marketing und Kundensupport mit den Back-Office-Funktionen ab und gewährleistet so einen einheitlichen Ansatz für die Entscheidungsfindung, den Kundenservice und die Bestandsverwaltung.
Geschäftliche Anwendungsfälle für die SAP-Salesforce-Integration
Fall 1: Auftragslebenszyklus durch Salesforce - SAP-Integration
- Erstellung von Aufträgen: Der Lebenszyklus eines Auftrags beginnt, wenn ein neuer Kundenauftrag in Salesforce angelegt wird. Salesforce sendet die Details des Kundenauftrags (wie Produkt, Menge, Preis und Kundeninformationen) an SAP zur Auftragserfüllung und Bestandsverarbeitung.
- Auftragsübergabe an SAP zur Bearbeitung: Sobald der Auftrag in Salesforce erstellt ist, wird er zur weiteren Verarbeitung in SAP integriert. SAP erstellt einen Kundenauftrag auf der Grundlage der von Salesforce gesendeten Daten und ermöglicht es den Backend-Systemen, den Bestand zu verwalten, die Lagerbestände zu prüfen und die Finanzdaten für die Auftragserfüllung zu überprüfen. Das SAP-System validiert den Auftrag und gibt eine Rückmeldung, ob der Auftrag bearbeitet werden kann oder ob weitere Genehmigungen erforderlich sind.
- Aktualisierungen der Auftragsbestätigung in Salesforce: Sobald die Bestellung validiert ist, wird eine Antwort mit dem Bestellstatus und anderen relevanten Versanddetails an Salesforce zurückgeschickt. Wenn der Auftrag in SAP abgelehnt wird, wird eine Auftragsantwort mit dem Status und dem Ablehnungsgrund an Salesforce gesendet.
- Rechnungsstellung und Zahlungsabwicklung: Nachdem die Produkte versandt wurden, erstellt SAP eine Rechnung für die Bestellung, die alle Details zu Preisen, Rabatten, Steuern und Versandkosten enthält. Die Integration synchronisiert den Zahlungsstatus von SAP zurück zu Salesforce. Wenn eine Zahlung eingeht, wird der Auftragsstatus in Salesforce aktualisiert, sodass Vertriebsmitarbeiter und Kundendienstteams in Echtzeit Einblicke in den Zahlungsstatus erhalten.
Fall 2: Lebenszyklus der Kundenstammintegration durch Salesforce-SAP
- Erstellung von Kundendaten in Salesforce: Wenn ein Kunde einen Kauf tätigt oder eine formelle Beziehung eingeht, erstellt Salesforce einen Kundendatensatz. Dabei werden Informationen wie Kundenname, Kontaktdetails, Adresse und Geschäftsbereiche erfasst.
- Übertragung von Kundendaten von Salesforce nach SAP: Die Integrationsplattform erleichtert die Übertragung von Kundenstammdaten von Salesforce nach SAP. Kundeninformationen aus Salesforce werden auf die entsprechenden Felder in SAP abgebildet.
- Erstellung von Kundendaten in SAP: Nach Erhalt der Kundendaten aus Salesforce werden SAP-Kundenstammsätze in SAP angelegt oder aktualisiert. SAP prüft auf Duplikate und stellt sicher, dass neue Kunden in das System aufgenommen werden.
- Synchronisierung von Änderungen in beiden Systemen: Sobald der Kundenstammsatz in SAP angelegt ist, sorgt die Integration dafür, dass Änderungen in Salesforce und SAP regelmäßig synchronisiert werden. Alle Aktualisierungen der Kundendaten in Salesforce (z. B. Adressänderungen, Kontaktaktualisierungen oder neue Konten) werden in SAP übernommen. Ebenso werden Aktualisierungen der Kundenstammdaten in SAP (z. B. Kreditlimits oder Zahlungsbedingungen) mit Salesforce synchronisiert.
So integrieren Sie Salesforce und SAP mit SAP Cloud Integration
SAP-Cloud-Integration ist eine Cloud-basierte Middleware Lösung, die fortschrittliche Datentransformation Fähigkeiten zur Entwicklung kundenspezifischer Integrationen und einer breiten Palette von Konnektivität Optionen mit seinen vorgefertigten Konnektoren. Bevor wir uns mit dem Integrationsdesign befassen, sollten wir die Salesforce-API und die Konnektivitätsoptionen für Folgendes verstehen Salesforce-Integration.
Salesforce-API
Salesforce bietet eine Vielzahl von APIs, die jeweils auf bestimmte Integrationsszenarien zugeschnitten sind. Hier sind die am häufigsten verwendeten APIs in Salesforce:
- Rest-API: Die REST-API ermöglicht es Entwicklern, mit Hilfe von Standard-HTTP-Methoden (GET, POST, PUT, DELETE) auf einfache und effiziente Weise mit Salesforce-Daten zu interagieren.
- Bulk-API: Die Salesforce Bulk-API basiert auf REST-Prinzipien und ist für die Arbeit mit großen Datenmengen optimiert. (Mehr als 2000 Datensätze). Sie kann verwendet werden, um viele Datensätze asynchron einzufügen, zu aktualisieren, hochzuladen oder zu löschen.
- SOAP-API: Die Salesforce-SOAP-API ist ein Webservice, mit dem Sie programmgesteuert mit den Kernfunktionen von Salesforce interagieren können, indem Sie das XML-basierte Messaging-Protokoll zum Austausch strukturierter Informationen zwischen Systemen verwenden.
- SOQL-Abfrage: Salesforce Object Query Language (SOQL) ist eine Sprache zur Abfrage von Salesforce-Daten. Sie kann sowohl in SOAP- als auch in REST-API-Aufrufen unter Verwendung des Parameters "queryString" bzw. "q" verwendet werden. Syntax: SELECT Feld1, Feld2 FROM Objektname WHERE FELD1 = 'STRING'
- Composite und Composite Graph Anfrage: Eine zusammengesetzte Anfrage führt eine Reihe von REST-API-Anfragen in einem einzigen Aufruf aus. Sie kann bis zu 25 Unterabfragen in einem einzigen Aufruf senden, von denen bis zu 5 Abfrageoperationen sein können. Die Operation Composite Graph kann bis zu 20 zusammengesetzte Anfragen in einem einzigen Aufruf senden, was insgesamt 500 Anfragen in einem einzigen Aufruf ergibt, wenn man bedenkt, dass jede zusammengesetzte Anfrage 25 Unterabfragen sendet.
Struktur eines zusammengesetzten Antrags:

- allOrNone: Es handelt sich um einen booleschen Wert, der für die transaktionale Behandlung beim Senden einer Anfrage verwendet wird. Ist er auf true gesetzt, wird bei einem Fehler die gesamte Anfrage gelöscht.
- collateSubrequests: A Boolean-Wert, wenn er auf true gesetzt ist, werden die Subrequests zusammengefasst, was zu einer Erhöhung der Verarbeitungsgeschwindigkeit führt, aber die Reihenfolge der Ausführung ist zufällig. Ist er deaktiviert, werden die Unterabfragen in der Reihenfolge ihres Eingangs ausgeführt.
- Methode: Hier wird die HTTP-Anforderungsmethode angegeben, die GET, POST, PUT, PATCH und DELETE sein kann.
- URL: Pfad zur Anforderung der Ressource. Beispiel: /services/data/{API Version}/{Object Name}/{Object Id}.
- httpHeaders: Anforderungskopfzeilen und Werte, die in Unteranfragen aufgenommen werden sollen.
- referenceId: Eine eindeutige ID zur Identifizierung einer Subrequest-Antwort, auf die in nachfolgenden Subrequests Bezug genommen werden kann.
- Körper: Die in der Unterabfrage gesendeten Felder.
6. sObject Sammlungen: sObject Collections kann in einem einzigen Aufruf Aktionen für 200 Datensätze ausführen. Sie können Objekte verschiedener Typen enthalten.
Struktur von sObjectCollection:

- allOrNone: Ähnlich wie bei der zusammengesetzten Anfrage handelt es sich um einen booleschen Wert, der für die Abwicklung von Transaktionen verwendet wird.
- Typ-Attribut: Objektname, auf dem die Aktion ausgeführt werden soll.
Salesforce Adapter für SAP Cloud Integration
Für die SAP Cloud Integration sind zwei Salesforce-Adapter verfügbar: Advantco und Rojo. Beide Adapter bieten unterschiedliche Funktionen und Möglichkeiten. Im Folgenden werden die wichtigsten Unterschiede zwischen den Adaptern von Advantco und Rojo sowie ein technischer Überblick über die beiden Adapter gegeben, um ihre Funktionalität und die Vorteile, die sie bieten, besser zu verstehen SAP-Cloud-Integration.
1. API-Unterstützung
- Advantco: SOAP, REST, REST API Composite, BULK API, Streaming API, REST API Reports und 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-Auslöser:
Der Aktualisierungsauslöser ist ein Mechanismus, mit dem der Flaggenwert in Salesforce nach erfolgreicher Datenabfrage aktualisiert wird. Diese Funktion kann angepasst werden, um spezifische Integrationsanforderungen zu erfüllen.
Wie es funktioniert:
- Datenabruf: Während jedes Integrationszyklus werden Datensätze auf der Grundlage einer festgelegten Bedingung aus Salesforce abgerufen, wobei häufig Datensätze ausgewählt werden, bei denen ein bestimmtes Feld (Flag) auf 'false' oder bleibt in einem unverarbeiteten Zustand.
- Flaggen-Update: Sobald die Datensätze erfolgreich verarbeitet wurden, wird das vorgesehene Flaggenfeld auf 'wahr', was anzeigt, dass der Datensatz erfolgreich bearbeitet wurde.
- Verhindern von Duplikaten: In nachfolgenden Läufen holt die Integration nur die Datensätze ab, bei denen der Flag-Wert noch 'false'. Dadurch wird sichergestellt, dass nur unverarbeitete Datensätze ausgewählt werden, wodurch das erneute Abrufen bereits verarbeiteter Daten verhindert wird.
Der Advantco Salesforce Adapter bietet eine Konfigurationsoption im Adapter, um den Update-Trigger zu aktivieren und das jeweilige Flag-Feld auf einen bestimmten Wert zu aktualisieren, während dieser Prozess im Rojo Salesforce Adapter manuell durchgeführt werden muss.
Bedingte Aktualisierung in Salesforce:
Im Advantco Salesforce-Adapter können bedingte Aktualisierungen automatisch gehandhabt werden, indem das Schema der Operation "Update Multiple Objects" wie unten beschrieben verwendet wird.

- Betrieb: Sie definiert die Anfragemethode, z. B. update oder upsert.
- ObjektTyp: Er definiert den zu aktualisierenden Objektnamen.
- ExterneID: Sie definiert den Feldnamen, der als externe Kennung im Salesforce-System verwendet werden soll.
- Zustand: Sie definiert eine Reihe von Kriterien, auf deren Grundlage ein Datensatz in Salesforce aktualisiert wird. Sie ist vergleichbar mit einer SOQL "GET"Wenn die Anfrage erfolgreich ist, werden die Datensätze in Salesforce aktualisiert.
- TransactionLevel: Er wird verwendet, um die Behandlung von Transaktionen zu definieren. Ist sie auf "REQUIRED" gesetzt, schlägt die gesamte Transaktion fehl, wenn ein einzelner Datensatz fehlschlägt.
- SObjekte: Enthält die Felder und Werte, die in Salesforce aktualisiert werden sollen.
Unter Rojo Salesforce-Adapter, Die bedingte Aktualisierung muss manuell vorgenommen werden. Dies kann über eine zusammengesetzte Anfrage mit einer Einschränkung von fünf Bedingungen pro Aufruf gemäß der API-Beschränkung.
SAP hat offiziell die Unterstützung für das Advantco Salesforce-Adapter und wechselte zum Rojo OEM Salesforce-Adaptersiehe SAP-Hinweise 3032149.
In der zweiter Teil In diesem Blog werden wir über das Integrationsdesign sowohl für Outbound- als auch für Inbound-Szenarien sprechen und dabei wichtige Aspekte wie manuelle Update-Trigger und bedingte Updates behandeln. Bleiben Sie dran für einen detaillierten Leitfaden zur erfolgreichen Implementierung dieser Prozesse bei Ihrer Migration auf den Rojo OEM Salesforce Adapter.