Skip to main content

Erste Schritte mit der Salesforce- & Heroku-Integration

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:

  • Erläutern der verschiedenen Gründe für die Integration von Salesforce und Heroku
  • Beschreiben der Methoden für die Integration von Salesforce und Heroku

Als Salesforce-Entwickler wissen Sie, dass sich Heroku hervorragend dazu eignet, Anwendungen auszuführen, die die Integration mit Salesforce für eine Vielzahl von Anwendungsfällen nutzen. Doch wie lauten die exakten Gründe dafür und, was sind die besten Methoden für die Integration? Im Folgenden werden diese Fragen beantwortet.

Gründe für die Integration von Salesforce und Heroku

Moderne Unternehmenssysteme bestehen aus vielen verschiedenen Bestandteilen mit unterschiedlichen Oberflächen für eine Vielzahl von Benutzertypen. Diese Oberflächen führen oftmals Daten aus vielen verschiedenen Datenquellen zusammen. Die Microservices-Architektur entstand als Möglichkeit, die Bestandteile eines Systems zu entkoppeln und in besser verwaltbare, unabhängig bereitstellbare Services aufzuteilen, um Endpunkte bereitzustellen, die unterschiedliche Systeme zusammenbringen. Heroku eignet sich hervorragend dazu, Anwendungen und Microservices auszuführen, die Sie durch eine Vielzahl von Integrationsmethoden mit Salesforce nutzen können.

Vier gängige Gründe für die Integration von Anwendung in Heroku mit Salesforce sind:

  • Datenabgleich
  • Daten-Proxys
  • Benutzerdefinierte Benutzeroberflächen
  • Externe Prozesse

Wir sehen uns jeden dieser Gründe im weiteren Verlauf dieses Moduls genauer an.

Integration durch Datenabgleich

Beim Datenabgleich werden Daten zwischen Salesforce und einem anderen System kopiert oder synchronisiert. Sie können den Datenabgleich für Data Warehousing nutzen, um datenquellenübergreifende Berichte und Analysen zu ermöglichen. Außerdem können Sie den Datenabgleich für die Verwendung mit Altsystemen einsetzen, die Daten entweder aus Salesforce benötigen oder in Salesforce einspeisen. Der gängigste Anwendungsfall mit Heroku und Salesforce ist die Bereitstellung einer Oberfläche mit hohem Durchsatz und geringer Latenz für kundenorientierte Anwendungen, die mit Open Source-Technologien erstellt wurden.

Nehmen wir beispielsweise an, Sie verkaufen aufblasbare Einhorn-Faschingshüte. Salesforce ist Ihr Aufzeichnungssystem für Produktinformationen wie Preis und Bestand mit einer öffentlichen Website, die mit Node.js, Rails, Java usw. erstellt wurde. Die Website nutzt diese Daten, um die Verfügbarkeit anzuzeigen und Bestellfunktionen bereitzustellen. Da die öffentliche Webanwendung auf Heroku ausgeführt wird, macht es Sinn, die Produktinformationen in einem Datenspeicher auf Heroku zu replizieren, damit eine große Anzahl von Anforderungen mit geringer Latenz verarbeitet werden kann. Wenn Benutzer der öffentlichen Website ein Produkt beispielsweise "liken" können, können Sie den Datenabgleich nutzen, um die Anzahl der Likes als Information für das Marketingteam zurück in Salesforce zu übertragen.

Integration durch Daten-Proxys

Data-Proxys aggregieren verschiedene Datenspeicher, doch im Gegensatz zum Datenabgleich werden die Daten nicht kopiert. Die Daten können nur bei Bedarf gelesen werden. Dieser Ansatz ermöglicht Data Science-, Business Intelligence-, Reporting- und Dashboarding-Tools, Daten über mehrere Datenspeicher hinweg zusammenzutragen, ohne sich über Herausforderungen der Datensynchronisierung wie Speicherung und mangelnde Aktualität Gedanken zu machen. Sie können Altsysteme und externe Systeme durch Daten-Proxys integrieren, um Daten für Salesforce bereitzustellen. Es gibt aber auch die Möglichkeit, dass Salesforce seine Daten anderen externen Systemen bereitstellt.

Wenn ein Salesforce-Benutzer Inventarberichte ausführen muss, die Produktdaten in Salesforce mit Lagerdaten aus einem externen System korrelieren, können Daten-Proxys diese Informationen bereitstellen, ohne dass langsamere Methoden wie ETL (Extract, Transform and Load) verwendet werden müssen. Bei der Berichtsausführung ruft Salesforce die notwendigen Daten aus dem externen System ab, ohne die Daten zu speichern. Das Ganze funktioniert auch in der Gegenrichtung: Eine Anwendung, die in Heroku ausgeführt wird, ist ein Daten-Proxy für Salesforce zu einem anderen System, der eine Sicherheits- und Transformationsschicht bereitstellt. Dazu kommen wir gleich noch.

Integration durch benutzerdefinierte Benutzeroberflächen

Sie können ganz leicht benutzerdefinierte Benutzeroberflächen für Salesforce erstellen. Dazu verwenden Sie verschiedene Technologien wie z. B. Visualforce und Lightning Components, um nur zwei zu nennen. Wenn Oberflächen mit Open Source-Technologien wie Java, Node.js, PHP usw. erstellt werden, können sie in Heroku ausgeführt und entweder in die Salesforce-Benutzeroberfläche integriert werden oder über Integrationslösungen nur Salesforce-Daten nutzen. In anderen Fällen bietet ein Alt- oder externes System eine Benutzeroberfläche, die in der Salesforce-Benutzeroberfläche dargestellt werden muss.

Beispiel: Ein Unternehmen, das Salesforce für CRM verwendet, kauft ein anderes Unternehmen mit einem benutzerspezifischen System, das auf Java basiert. Eine einfache Methode für eine erste Integration dieser Systeme besteht darin, das Java-System einfach in Heroku auszuführen und in Salesforce darzustellen. Die Ausführung des Java-Systems in Heroku kann die Skalierungs- und Betriebsprobleme reduzieren und legt gleichzeitig einen Standard für die Bereitstellungsarchitektur für benutzerspezifische Systeme fest. Eigenständige Benutzeroberflächen, die in Heroku ausgeführt werden und per Integration Salesforce-Daten nutzen, können als Back-Office-Erweiterungen zu Salesforce sowie kundenorientierten Web- und mobilen Anwendungen fungieren. Benutzerdefinierte Benutzeroberflächen können Bibliotheken, Funktionen oder Entwickler-Skillsets beinhalten, die den Ausschlag für die Verwendung von Heroku und Open Source-Technologien gegenüber nativen Salesforce Platform-Optionen geben.

Integration durch externe Prozesse

Externe Prozesse können die Batch- und Auslöserereignisverarbeitung in Anwendungen in Heroku verlagern. Abhängig vom Typ des Auftrags und des Arbeitsumfangs, die erledigt werden sollen, kann diese Methode nützlich sein. Data Science, Machine Learning, Bild- und Videoverarbeitung sowie Integration mit Alt- oder externen Systemen können Gründe für die Verlagerung externer Prozesse zu Heroku sein.

Nehmen wir beispielsweise an, Ihr Immobilienunternehmen lädt Fotos für jedes Haus hoch, das es zum Verkauf anbietet. Die Fotodateien sind riesig, und Sie müssen eine Möglichkeit finden, ihre Größe zu reduzieren, um die Hochladedauer und die Speicherkosen zu senken. Diesen Auftrag können Sie leicht in einen externen Prozess in Heroku verlagern. Sobald ein Foto in Salesforce hochgeladen wird, wird es zur Verarbeitung an eine Anwendung in Heroku übertragen, und die verkleinerte Bilddatei wird dann wieder an Salesforce zurück übertragen und gespeichert. Es wäre möglich, dass die Anwendung in Heroku, die den externen Prozess verarbeitet, nur für diesen einen Aspekt des Systems zuständig ist. In diesem Fall gilt die Anwendung wahrscheinlich als Microservice, der separat, ohne andere Systemabhängigkeiten bereitgestellt werden kann.

Überblick über Integrationsmethoden

Sie wissen jetzt, dass Datenabgleich, Daten-Proxys, benutzerdefinierte Benutzeroberflächen und externe Prozesse gute Gründe sind, um Heroku und Salesforce zu kombinieren. Doch wie macht man das ganz konkret? Es gibt eine Reihe von Methoden für die Durchführung dieser Arten von Integrationen, wie etwa:

  • Heroku Connect
  • Salesforce Connect
  • Salesforce REST-APIs
  • Callouts

Alle diese Methoden sehen wir uns später noch genauer an, doch hier folgt zunächst ein kurzer Überblick zum Einstieg.

Heroku Connect

Heroku Connect bietet sowohl den Datenabgleich als auch Daten-Proxys für Salesforce. Beim Datenabgleich werden Daten zwischen Salesforce und einer Heroku Postgres-Datenbank synchronisiert. Abhängig von der Konfiguration erfolgt die Synchronisierung nur in eine Richtung oder aber bidirektional. Heroku Connect stellt über das OData-Protokoll unter Verwendung von Heroku External Objects zudem einen Daten-Proxy zu Salesforce bereit. Heroku External Objects stellt einen OData-Wrapper für die Heroku Postgres-Datenbank bereit, zu der Heroku Connect eine Verbindung unterhält. Diese Funktion ermöglicht anderen Webservices, unter Verwendung von RESTful-Endpunkten, die vom Wrapper erstellt wurden, Daten aus der angegebenen Heroku Postgres-Datenbank abzurufen.

Das Diagramm zeigt Pfeile, die zuerst von Salesforce zu einer mittleren Komponente, dann zu Heroku und anschließend zurück zu Salesforce führen, sobald ein Kontakt eingefügt wurde

Einer der größten Vorteile bei der Verwendung von Heroku Connect für den Datenabgleich besteht darin, dass eine Anwendung in Heroku schnell und einfach auf eine Teilmenge der Salesforce-Daten zugreifen kann. Sie als Anwendungsentwickler schreiben einfach standardmäßige SQL für Abfragen, wie Sie dies sonst auch tun würden. Heroku Connect und Postgres bieten Zugriff auf Salesforce-Daten, der sich durch geringe Latenz und hohen Durchsatz auszeichnet.

Salesforce Connect

Mit Salesforce Connect (früher Lightning Connect) als Daten-Proxy können Sie OData- oder andere Datenquellen ad-hoc in Salesforce laden. Es werden keine Daten in die Salesforce-Datenbank kopiert. Sie können Endpunkte ausführen, die OData 2.0 in Heroku oder gemäß der Bereitstellung durch externe Systeme verfügbar machen. Wie bereits erwähnt kann Heroku Connect eine Heroku Postgres-Datenbank als OData für die Nutzung durch Salesforce Connect bereitstellen. Alternativ ermöglicht es Salesforce Connect durch benutzerdefinierte Adapter, dass Salesforce als Daten-Proxy jede Datenquelle nutzt, mit der Apex kommunizieren kann, einschließlich REST mit XML oder JSON und SOAP.

Abbildung, die veranschaulicht, wie externe Objekte verwendet werden können, um eine externe Verbindung mit externen Daten herzustellen, die über SAP, Oracle, Workday oder Heroku verfügbar sind

Der Hauptvorteil von Salesforce Connect besteht darin, dass es externe Daten in die Salesforce-Benutzeroberfläche bringt und es so aussehen lässt, als ob sich die Daten in Salesforce befänden, obwohl sie nur bei Bedarf über den Proxy aus einer externen Datenquelle geladen werden. Dieser Prozess macht es leicht, getrennte Datenquellen für Salesforce-Benutzer zusammenzuführen.

Salesforce REST-APIs

Die Salesforce REST-APIs geben Anwendungen auf Heroku durch einfache JSON formatierte HTTP-Anforderungen Zugriff auf Salesforce-Daten. Sie können diese Integration für Daten-Proxys und benutzerdefinierte Benutzeroberflächen verwenden. Mit Open Source-Technologien erstellte Anwendungen, die auf Heroku ausgeführt werden, können OAuth verwenden, um Benutzer in einer benutzerdefinierten Benutzeroberfläche zu autorisieren und dann in ihrem Namen mit Salesforce-Daten in Interaktion zu treten. Integrations-Anwendungsfälle ohne Benutzeroberfläche können Daten zwischen Salesforce und externen Systemen austauschen.

Abbildung, die eine Verbindung zwischen den Objekten in Salesforce und Heroku über eine REST-Schnittstelle zeigt

Callouts

Sie können Callouts von Salesforce verwenden, um externe Prozesse in Heroku aufzurufen. Sie schreiben die Callouts in Apex oder verwenden Aktionen des Typs "Ausgehende Nachricht", damit Ereignisse in Salesforce die Ausführung eines Prozesses in Heroku auslösen. Dieser Prozess verwendet oftmals eine der zuvor genannten Integrationsmethoden, um die Prozessergebnisse wieder in Salesforce zu übertragen.

Suchen Sie den Blog Post Extend Flows with Heroku Compute: An Event Driven Pattern (Erweitern von Flows mit Heroku Compute: ein ereignisgesteuertes Muster) auf, um mehr über Heroku und externe Services zu erfahren.

Diagramm, das ein Feld mit Salesforce und einem Datenereignis zeigt, das von einer ausgehenden Nachricht ausgelöst oder gesendet wird. Ein Pfeil stammt aus dem Feld und zeigt auf ein anderes Feld, das alle Anwendungen enthält, die Heroku hostet

Vergleich der Integrationsmethoden

Jede Salesforce- und Heroku-Integrationsmethode hat abhängig von der Expertise der Entwickler und dem jeweiligem Anwendungsfall ihre Vorzüge. Die folgende Tabelle zeigt einige grundlegende Unterschiede zwischen den Integrationsoptionen.

Heroku Connect

Salesforce Connect

REST-APIs

Callouts

Sicherheitsmodell

Integrationsbenutzer

Verschiedene (einschließlich Integrationsbenutzer und benannter Prinzipal)

OAuth

Anwendungsbenutzer

Obergrenzen

Wird bei Obergrenzen nicht berücksichtigt

Max. Anzahl von Datenquellen, Objekten und Feldern

API-Obergrenzen

API-Obergrenzen

SObject-Funktionen

Alle Standardfunktionen

Lesezugriff

Keine Formelfelder und Rollup-Zusammenfassungsfelder

Keine Auslöser und Genehmigungsprozesse

Keine Validierungsregeln

Feldverlaufsverfolgung

Keine Notizen und Anhänge

Alle Standardfunktionen

Nicht verfügbar

Datenstrategie

Bidir. Echtzeit-Synchr. oder OData

OData oder Proxy

Lesen & kopieren

Nutzlast

Endbenutzer

Anonym, Kunden

Salesforce-Benutzer

Keine Einschränkungen

Nein

Protokoll

SQL

Apex

HTTP

HTTP

Allgemeine Vorschläge für Integrationslösungen:

  • Verwenden Sie Heroku Connect für den Datenabgleich zwischen Salesforce und Heroku.
  • Soll eine Heroku Postgres-Datenbank für Salesforce zur Verfügung stehen, verwenden Sie Heroku Connect External Object.
  • Für die Proxy-Nutzung von OData-, SOAP-, XML- oder JSON-Datenquellen in Salesforce verwenden Sie Salesforce Connect.
  • Wenn Heroku Connect ungeeignet ist, wie etwa, wenn Sie eine benutzerdefinierte Benutzeroberfläche in Heroku nutzen, bei der sich Benutzer über Salesforce anmelden, verwenden Sie die REST-APIs von Salesforce.
  • Soll die Verarbeitung von Salesforce-Datenereignissen verlagert oder erweitert werden, verwenden Sie Callouts von Salesforce an Heroku.

Ressourcen

Teilen Sie Ihr Trailhead-Feedback über die Salesforce-Hilfe.

Wir würden uns sehr freuen, von Ihren Erfahrungen mit Trailhead zu hören: Sie können jetzt jederzeit über die Salesforce-Hilfe auf das neue Feedback-Formular zugreifen.

Weitere Infos Weiter zu "Feedback teilen"