Warum eine API allein nicht ausreicht für eine Integration der Unternehmensklasse
- Apsara Consulting GmbH
Inhaltsverzeichnis
Was, wenn ich sage, dass Sie keine einzige Zeile programmieren müssen, um eine Integration auf Unternehmensebene durchzuführen? Ja!!! Sie haben richtig gehört. Bei Salesforce dreht sich alles um eine geringe Codierung, aber dennoch schreiben wir als Entwickler Codes, um verschiedene Arten der Integration durchzuführen. Erinnern wir uns an meinen ersten Blog, in dem ich auf den SKYVVA Data Loader gestoßen bin und mit ihm als Ersatz für den Salesforce Data Loader gearbeitet habe. SKYVVA bietet nicht nur das einfache laden und importieren von Daten, wie wir es vom Data Loader kennen. SKYVVA bietet mehr, um eine komplexe und unternehmensweite Integration durchzuführen, was mit dem API-Ansatz allein nur schwer möglich ist. Es handelt sich um ein sehr leistungsfähiges Tool, dass die Integration mit verschiedenen fortgeschrittenen Funktionen und ohne Kodierung ermöglicht. Dieses geheime Tool kann den Integrationsprozess in Ihrem Unternehmen vollständig verändern.
Die Salesforce Standard API
Lassen Sie uns also zunächst verstehen, was die Standardwege zur Integration in Salesforce sind. Ich werde kurz die verschiedenen Arten von APIs erläutern, die wir für die Integration und Bearbeitung Ihrer Salesforce-Organisationsdaten verwenden können. Für die Vollständigkeit der API-Dokumentation und -Beschreibung verweisen wir auf die offizielle Salesforce-Hilfeseite. Werfen wir einen Blick auf die verschiedenen APIs:
REST API
Die REST-API ist ein einfacher und leistungsstarker Webservice, der auf RESTful-Prinzipien basiert. Sie stellt alle Arten von Salesforce-Funktionen über REST-Ressourcen und HTTP-Methoden zur Verfügung. So können Sie beispielsweise Datensätze erstellen, lesen, aktualisieren und löschen (CRUD), Ihre Daten durchsuchen oder abfragen, Objekt-Metadaten abrufen und auf Informationen über Grenzen in Ihrer Org zugreifen. Die REST-API unterstützt sowohl XML als auch JSON. Da die REST-API über ein leichtgewichtiges Anfrage- und Antwort-Framework verfügt und einfach zu verwenden ist, eignet sie sich hervorragend für die Entwicklung von mobilen und Webanwendungen.
SOAP API
SOAP API ist ein robuster und leistungsstarker Webdienst, der auf dem gleichnamigen Standardprotokoll basiert. Sie verwendet eine WSDL-Datei (Web Services Description Language), um die Parameter für den Zugriff auf Daten über die API genau zu definieren. SOAP API unterstützt nur XML. Die meisten Funktionen der SOAP-API sind auch über die REST-API verfügbar. Es hängt nur davon ab, welcher Standard Ihren Anforderungen besser entspricht. Da die SOAP-API die WSDL-Datei als formellen Vertrag zwischen der API und dem Verbraucher verwendet, eignet sie sich hervorragend für die Erstellung von Server-zu-Server-Integrationen.
BULK API
Die Bulk-API ist eine spezielle RESTful-API zum gleichzeitigen laden und abfragen großer Datenmengen. Mit Mengen meinen wir 50.000 Datensätze oder mehr. Die Bulk-API ist asynchron, d. h., Sie können eine Anfrage stellen und die Ergebnisse später abrufen. Dieser Ansatz wird bevorzugt, wenn es um große Datenmengen geht. Es gibt zwei Versionen der Bulk-API (1.0 und 2.0). Beide Versionen können große Datenmengen verarbeiten, aber wir verwenden in diesem Modul die Bulk-API 2.0, weil sie etwas einfacher zu verwenden ist. Die Bulk-API eignet sich hervorragend für die Durchführung von Aufgaben, die viele Datensätze umfasst, wie z. B. das erstmalige Laden von Daten in Ihre Organisation.
Streaming API
Die Streaming-API ist eine spezielle API zum Einrichten von Benachrichtigungen, die ausgelöst werden, wenn Änderungen an Ihren Daten vorgenommen werden. Sie verwendet ein Publish-Subscribe- oder Pub/Sub-Modell, bei dem Benutzer Kanäle abonnieren können, die bestimmte Arten von Datenänderungen übertragen. Das Pub/Sub-Modell reduziert die Anzahl der API-Anfragen, da kein Polling mehr erforderlich ist. Die Streaming-API eignet sich hervorragend zum Schreiben von Anwendungen, die sonst häufig nach Änderungen abfragen müssten.
API Limits
Die Gesamtlimits variieren je nach Org-Edition, Lizenztyp und erworbenen Erweiterungspaketen. Eine Enterprise Edition-Organisation erhält zum Beispiel 1.000 Aufrufe pro Salesforce-Lizenz und 200 Aufrufe pro Salesforce Light App-Lizenz. Mit dem Unlimited Apps Pack erhält dieselbe Enterprise Edition-Org zusätzlich 4.000 Aufrufe. Die Gesamtzahl der Aufrufe unterliegt außerdem den Mindest- und Höchstwerten, die von der Org-Edition abhängen, aber darauf gehen wir hier nicht näher ein. Wenn Sie mehr wissen möchten, lesen Sie den Link API-Anforderungslimits im Abschnitt Ressourcen.
Welche API ist in welchem Fall zu verwenden?
Die Wahl der richtigen API für Ihre Integrationsanforderungen ist eine wichtige Entscheidung. Hier finden Sie einige Informationen zu unseren am häufigsten verwendeten APIs, einschließlich unterstützter Protokolle, Datenformate, Kommunikationsparadigmen und Anwendungsfälle. Betrachten Sie diesen Abschnitt als Referenz, auf die Sie zurückgreifen können, wenn Sie überlegen, welche API Sie verwenden möchten.
Wann nutze ich eine REST API
Die REST API bietet eine leistungsstarke, praktische und einfache REST-basierte Webservice-Schnittstelle für die Interaktion mit Salesforce. Zu ihren Vorteilen gehört die einfache Integration und Entwicklung, und sie ist eine ausgezeichnete Wahl für die Verwendung mit mobilen Anwendungen und Webprojekten. Für bestimmte Projekte können Sie die REST-API mit anderen Salesforce-REST-APIs verwenden. Verwenden Sie die Benutzerschnittstellen-API, um eine Benutzeroberfläche für das Erstellen, Lesen, Aktualisieren und Löschen von Datensätzen zu erstellen, einschließlich der Erstellung von Benutzeroberflächen für Listenansichten, Aktionen und abhängige Auswahllisten. Zum Erstellen von UI für Chatter, Communities oder Empfehlungen verwenden Sie die Chatter REST API. Wenn Sie viele Datensätze zu verarbeiten haben, sollten Sie die Bulk-API verwenden, die auf REST-Prinzipien basiert und für große Datensätze optimiert ist.
Wann nutze ich eine SOAP API
SOAP API bietet eine leistungsstarke, praktische und einfache SOAP-basierte Webservice-Schnittstelle für die Interaktion mit Salesforce. Sie können die SOAP-API verwenden, um Datensätze zu erstellen, abzurufen, zu aktualisieren oder zu löschen. Außerdem können Sie mit SOAP API Suchvorgänge durchführen und vieles mehr. Verwenden Sie SOAP API in jeder Sprache, die Webservices unterstützt.
Sie können beispielsweise SOAP API verwenden, um Salesforce in die ERP- und Finanzsysteme Ihrer Organisation zu integrieren. Sie können auch Vertriebs- und Supportinformationen in Echtzeit an Unternehmensportale übermitteln und wichtige Geschäftssysteme mit Kundeninformationen auffüllen. Beachten Sie, dass SOAP API ein gut definierter Standard des W3C-Konsortiums ist und eine lange Reifezeit erreicht hat, so dass alte Anwendungssysteme nur noch SOAP unterstützen. Alte Anwendungen, die einen Mehrwert für Ihr neues digitales Szenario liefern, sind immer noch ein großer Gewinn für Ihr Unternehmen und müssen daher in den neuen digitalen Prozess integriert werden.
Wann nutze ich eine Bulk API
Die Bulk-API basiert auf REST-Prinzipien und ist für das Laden oder Löschen großer Datensätze optimiert. Sie können damit viele Datensätze asynchron abfragen, einfügen, aktualisieren, hochladen oder löschen, indem Sie Stapel übermitteln. Salesforce verarbeitet Stapel im Hintergrund.
Die SOAP-API ist dagegen für Echtzeit-Clientanwendungen optimiert, die jeweils nur wenige Datensätze aktualisieren. Sie können SOAP API für die Verarbeitung vieler Datensätze verwenden, aber wenn die Datensätze Hunderttausende von Datensätzen enthalten, ist SOAP API weniger praktisch. Die Bulk-API wurde entwickelt, um die Verarbeitung von Daten von einigen Tausend bis zu Millionen von Datensätzen zu vereinfachen.
Am einfachsten ist es, die Bulk-API für die Verarbeitung von Datensätzen im Data Loader mit CSV-Dateien zu aktivieren. Durch die Verwendung von Data Loader entfällt die Notwendigkeit, eine eigene Client-Anwendung zu schreiben.
Wann nutze ich eine Streaming API
Verwenden Sie die Streaming-API, um Datenströme nahezu in Echtzeit zu empfangen, die auf Änderungen in Salesforce-Datensätzen oder benutzerdefinierten Nutzdaten basieren. Für Salesforce-Datensatzänderungen veröffentlicht Salesforce Benachrichtigungen, wenn die Änderungen auftreten. Für benutzerdefinierte Benachrichtigungen können Sie Ereignismeldungen veröffentlichen. Abonnenten können Benachrichtigungen über CometD empfangen – eine Implementierung des Bayeux-Protokolls, das die Push-Technologie simuliert. Clients können auch einige Arten von Ereignissen mit Apex-Triggern oder deklarativ mit Process Builder und Flow Builder abonnieren. Verwenden Sie die Art von Streaming-Ereignis, die Ihren Anforderungen entspricht.
Push Topic Event
Erhalten Sie Änderungen an Salesforce-Datensätzen auf der Grundlage einer von Ihnen definierten SOQL-Abfrage. Die Benachrichtigungen umfassen nur die Felder, die Sie in der SOQL-Abfrage angeben.
Change Data Capture Event
Empfangen Sie Änderungen an Salesforce-Datensätzen mit allen geänderten Feldern. Change Data Capture unterstützt mehr Standardobjekte als Push-Topic-Ereignisse und bietet mehr Funktionen, wie z. B. Kopffelder, die Informationen über die Änderung enthalten.
Platform Event
Veröffentlichen und empfangen Sie benutzerdefinierte Payloads mit einem vordefinierten Schema. Bei den Daten kann es sich um alles handeln, was Sie definieren, einschließlich Geschäftsdaten, wie z. B. Auftragsinformationen. Geben Sie die zu sendenden Daten an, indem Sie ein Plattformereignis definieren. Abonnieren Sie einen Plattform-Ereigniskanal, um Benachrichtigungen zu erhalten.
Generic Event
Veröffentlichung und Empfang beliebiger Nutzdaten ohne definiertes Schema.
Die Art der API und ihr Hauptanwendungsfall
Sie haben die verschiedenen verfügbaren APIs für die Integration und ihre Anwendungsfälle kennengelernt, nun wollen wir uns näher mit der Natur und dem Prinzip der API befassen. APIs werden immer beliebter, wenn es darum geht, die Anwendung in ein verteiltes Netzwerk zu verlagern, in dem die Geschäftslogik nicht mehr als ein ganzes Bündel von Logik innerhalb eines Monolithen stattfindet. Die Dekomposition und die Verteilung werden zum Designprinzip, um einen neuen Bereich von Anwendungen zu schaffen, der leicht über ein verteiltes Netzwerk wie das Internet genutzt werden kann. Um mit einer autonomen Software und Anwendung kommunizieren zu können, die auf ein Geschäftsfeld spezialisiert ist, wird die API zum Vehikel dafür. Die Softwareanwendungen müssen über die API miteinander kommunizieren.
Die Anwendung wurde in logische Einheiten zerlegt, die miteinander kommunizieren müssen, um die Geschäftsaufgabe zu erfüllen. In den meisten Fällen erfolgt diese Kommunikation synchron, also in Echtzeit. Diese Art der Kommunikation ist gut geeignet, um eine Interaktion zwischen der Anwendung und dem Geschäftsanwender zu ermöglichen. Auf der anderen Seite findet die Integration meist im Hintergrund statt und läuft autonom ab, ohne dass ein Benutzer auf eine Antwort einer API warten muss. Die Arbeit muss im Hintergrund und bei einem hohen Datenaufkommen automatisch erledigt werden. Mit anderen Worten, die Kommunikation muss asynchron erfolgen und die Hintergrund- und Stapelverarbeitung großer Datenmengen muss unterstützt werden.
Das Integrationsmuster
Wenn Sie sich die oben genannten Standard-APIs von Salesforce mit Ausnahme der Bulk-API ansehen, können Sie feststellen, dass sie nach dem synchronen Muster arbeiten und somit dem Muster der „eng gekoppelten“ Integration folgen. Wenn Sie sich mit Integration befassen, werden Sie auf zwei grundsätzliche Ansätze zur Durchführung der Integration stoßen.
- Tight Coupling
- Loose Coupling
Mit der Salesforce Soap- und Rest-API können Sie in großem Umfang einfache so genannte CRUD-Operationen mit den Daten durchführen, die synchron ablaufen. Das bedeutet, dass die aufrufende Anwendung oder der Client warten muss, bis die API beendet ist. Was passiert mit dem Client, wenn die API in eine Endlosschleife gerät, weil sie einen rekursiven Trigger auf sObject hat? Sind die Clients noch ansprechbar? Kann der Benutzer die Anwendung nutzen oder wird sie eingefroren? Diese Art von Problemen tritt auf, wenn das Muster der engen Kopplung mit dem falschen Design verwendet wird. Tight Coupling ist ein gültiges und großartiges Muster, und ich sage nicht, dass dieses Muster nutzlos ist. Die Dinge sind so, dass in der Integrationswelt der Anwendungsfall mehr und besser zur sogenannten losen Kopplung der Anwendungskommunikation untereinander passt.
Die folgende Abbildung zeigt die beiden Muster:
Bei einer eng gekoppelten Integration entsteht eine abhängige Beziehung zwischen Salesforce und den Systemen, mit denen es verknüpft ist, indem die Integration der Geschäftslogik auf diese Systeme verteilt wird. Eine eng gekoppelte Integration kann zwar gut funktionieren, führt aber langfristig unweigerlich zu Skalierbarkeits- und Wartungsproblemen. Bei einer lose gekoppelten Integration hingegen bleibt die Geschäftslogik der Integration von den einzelnen Systemen getrennt, so dass Unabhängigkeit, Kompatibilität und eine entkoppelte Anwendung entstehen. Auf diese Weise können Sie Ihre Integrationslogik leichter modifizieren und Änderungen an jedem einzelnen System vornehmen, ohne befürchten zu müssen, dass bestehende Funktionen zerstört werden.
Tight Coupling
Mit der Salesforce Soap- und Rest-API können Sie in großem Umfang einfache so genannte CRUD-Operationen mit den Daten durchführen, die synchron ablaufen. Das bedeutet, dass die aufrufende Anwendung oder der Client warten muss, bis die API beendet ist. Was passiert mit dem Client, wenn die API in eine Endlosschleife gerät, weil sie einen rekursiven Trigger auf sObject hat? Sind die Clients noch ansprechbar? Kann der Benutzer die Anwendung nutzen oder wird sie eingefroren? Diese Art von Problemen tritt auf, wenn das Muster der engen Kopplung mit dem falschen Design verwendet wird. Tight Coupling ist ein gültiges und großartiges Muster, und ich sage nicht, dass dieses Muster nutzlos ist. Die Dinge sind so, dass in der Integrationswelt der Anwendungsfall mehr und besser zur sogenannten losen Kopplung der Anwendungskommunikation untereinander passt.
Aufgrund des dekomponierten Designs mit separaten Funktionseinheiten in der modernen Softwareentwicklung führt eine solche enge Kopplung zu vielen Abhängigkeiten. Es handelt sich um einen so großen und monolithischen Block, der nicht einfach über das Internet verteilt werden kann. Leichte und funktional gekapselte Anwendungen sind jetzt die Zukunft und daher muss die Kommunikation zwischen diesen Anwendungen entkoppelt werden. Mit dieser Entwicklung in den letzten Jahrzehnten konnten wir sehen, wie neue Anwendungsanbieter mit neuer Anwendungssoftware auf den Markt kamen, die ein spezifisches und gut geeignetes Geschäftspaket bietet. Daher besteht ein starker Bedarf, diese auf die richtige Art und Weise mit der richtigen Architektur zu integrieren.
Hier einige Überlegungen und Fakten, die Sie berücksichtigen sollten, wenn Sie die synchrone und die eng gekoppelte Architektur für Ihr Integrationsprojekt verwenden möchten.
- Das Modell der engen Kopplung bietet mehr Abhängigkeiten zwischen den beiden Integrationssystemen.
- Es erfordert mehr Koordination zwischen zwei Systemen während der Integration, da beide Systeme während der Verarbeitung der Integrationsdaten gleichermaßen aufeinander abgestimmt werden müssen, um erfolgreich zu sein.
- Der Aufrufer muss warten, bis die API beendet ist, was zu einer Blockierung des Senders führt, der die angeforderten Daten beendet.
- Dieses Warten auf API-Aufrufe führt zu einer schlechten Benutzererfahrung und schlechter Leistung für den Kunden. Manchmal hat es für die Benutzer den Anschein, dass die Anwendung eingefroren ist. Dies führt zu Abneigung und geschäftlichem Schaden, wenn der Benutzer Ihre Anwendung nicht mehr verwendet.
- Der Client kann aufgrund von Warte- und Leerlaufzeiten nicht alle seine Ressourcen nutzen, was zu Frustration führt.
- Diese API folgt immer dem Ping-Pong-Muster, um die API zwischen Aufrufer und Anbieter zu synchronisieren, was bei einer eng gekoppelten Integration mehr Aufwand bedeutet.
Auf der anderen Seite ist die enge Kopplung auch ein guter Weg zur Integration, wenn Ihre Geschäftsfälle Echtzeit-Interaktion benötigen, um Ihre Geschäftskunden zu unterstützen. Nur in diesem Fall können die oben beschriebenen Nachteile ignoriert werden.
Loose Coupling
Wie Sie sehen, brechen Anwendungen heutzutage aus ihrer monolithischen Struktur kleiner, intelligenter und wartungsfähiger Einheiten aus, da es keine enge Kopplung in der Natur der Anwendung mehr gibt. Daher passt das Muster der engen Kopplung nicht mehr so gut, und die Anwendungen müssen locker miteinander kommunizieren und interagieren, ohne dass ein Benutzer oder ein Prozess auf andere warten muss. Diese Art der Integration verursacht weniger gegenseitige Abhängigkeiten und ist daher sehr wartungsfreundlich und flexibel, um neue Geschäftsanforderungen zu erfüllen.
Lose Kopplung folgt dem Prinzip des asynchronen Kommunikationsmusters. Stellen Sie sich vor, Sie rufen jemanden per Telefon an und brauchen immer jemanden, der zu dem Zeitpunkt, an dem Sie die Kommunikation beginnen, erreichbar ist. Mit dem asynchronen Muster müssen Sie nicht darauf angewiesen sein, dass Ihr Kommunikationspartner verfügbar ist, und schaffen so weniger Abhängigkeit von der Kommunikation. Das ist zum Beispiel der Fall, wenn Sie eine E-Mail an einen Empfänger schreiben. Sie sind nicht stundenlang blockiert, weil Sie gerade Ihre Nachricht abgeschickt haben, und können sich anderen Dingen zuwenden. Dies ist einer der Hauptvorteile, wenn man nicht durch den Kommunikationspartner blockiert wird.
Lose Kopplung löst die Nachteile, die mit dem oben beschriebenen Muster der engen Kopplung verbunden sind. Es benötigt und bindet keine großen Ressourcen auf beiden Seiten, z.B. Sender und Empfänger, um die Kommunikation durchzuführen. Es gibt den Kunden, z.B. den Aufrufer, schneller frei und erweckt so beim Benutzer nicht den Eindruck, dass die Anwendung einfriert. Wenn es in Ihrem Integrationsszenario um den Austausch von Massendaten geht, z. B. die Aktualisierung von Millionen von Produktpreisen aus einem ERP-System, gibt es keine Möglichkeit, die asynchrone Kommunikation zu nutzen, um eine solche Datenmenge über die Massen-API zu senden.
Im Internet gibt es eine Menge großartiger Bücher und Ressourcen, die Sie lesen können, um die Kommunikationsmuster für die Integrationsdomäne genauer zu verstehen. In diesem Blog können wir nicht alle theoretischen Aspekte des Kommunikationsmusters abdecken und erklären, da dies den Umfang dieses Blogs sprengen würde. Im folgenden Kapitel werden wir sehen, wie ich mit SKYVVA eine solche Lösung gefunden habe, die sowohl enge als auch lose Kopplung unterstützt.
Integration nach dem reinen API-Ansatz
Nachdem wir nun die beiden bestehenden Ansätze und Muster für die Integration kennengelernt und verstanden haben, wollen wir uns genauer ansehen, wie wir die Integration für die manuelle Programmierung gegen die Salesforce-Standard-API durchführen können. Salesforce bietet jetzt beide Varianten der Integrations-API an, die SOAP und REST unterstützt. Vor einigen Jahren konnten Sie nur die SOAP-API für die Integration und die Verbindung zu Ihrer Organisation verwenden. Daher gibt es immer noch ältere Anwendungen, die die SOAP-API verwenden. Die folgende Abbildung zeigt die Ansicht bei der Integration nach dem synchronen Muster mit der standardmäßigen SOAP/REST-API von Salesforce.
Es zeigt den Anwendungsfall mit einer SAP-Cloud-ERP-Anwendung als Client, die API verwendet, um Daten wie Konto, Kontakt, Kundenauftrag, Rechnung usw. zu synchronisieren. In einem solchen Geschäftsfall müssen Sie mit Massendaten umgehen, die zwischen SAP und dem Salesforce-Anwendungssystem synchronisiert werden müssen. Es ist eine autonome Datensynchronisation zwischen diesen beiden Anwendungssystemen erforderlich, ohne dass irgendwelche Benutzer involviert sind, und aufgrund der großen Datenmengen ist eine Stapelverarbeitung erforderlich.
Das Merkmal der Salesforce-Standard-API ist, dass sie synchron arbeitet, was bedeutet, dass die Client-Anwendung warten muss, bis der von der API ausgelöste Vorgang abgeschlossen ist. Dies kann zu all den Nachteilen führen, die wir oben bei der Verwendung des Ansatzes der engen Kopplung gesehen haben. Das am häufigsten beobachtete Problem bei der Verwendung der Standard-API ist, dass die Client-Anwendung bei zu vielen gleichzeitigen Anfragen eingefroren zu sein scheint.
Ein weiterer Aspekt bei der Verwendung der Salesforce-Standard-API ist, dass sie eine sehr einfache CRUD-Operationsfähigkeit bietet. In einem realen Integrationsszenario benötigen wir jedoch mehr als nur das Erstellen (C), Lesen (R), Aktualisieren (U) und Löschen (D) eines Geschäftsdatensatzes, z. B. eines Angebots. Wir müssen zuerst eine komplexere Logik ausführen, bevor wir diese grundlegenden REST-Operationen durchführen können. Bevor wir beispielsweise ein Angebot aktualisieren, müssen wir anhand der Vertriebsgebietszuordnung in SAP prüfen, ob dieses Angebot zum richtigen Gebietsbereich in Salesforce gehört. Wir benötigen also eine Geschäftslogik, die vorher ausgeführt werden muss.
Das reale Integrationsszenario für ein Unternehmen ist viel mehr als nur eine einfache CRUD-Operation. Sie benötigen eine Vielzahl von Services auf der Salesforce-Seite, um eine stabile Integration nicht nur in Bezug auf die einfache Konnektivität zu gewährleisten, sondern auch, um den täglichen Betrieb zu unterstützen, wenn etwas schief läuft. Hierfür benötigen Sie eine Integrations-Serviceschicht auf der Lightning-Plattform, wie ich sie mit der SKYVVA-Lösung gefunden habe.
In der obigen Abbildung sehen Sie die Lücke (das schwarze Ganze in der obigen Abbildung), die ein Service-Layer für Ihren Integrationsbedarf schließen kann. Er geht über die Konnektivität hinaus und bietet Ihnen und Ihrem Salesforce-Team eine einfache Möglichkeit, Ihren täglichen Integrationsbedarf zu entwickeln, zu pflegen und zu betreiben. Das ist es, was der SKYVVA Service-Layer der Salesforce Lightning Plattform hinzufügt, was fehlt, um das richtige und robuste Tool für die Integration in und aus Salesforce zu haben.
Warum braucht die Integration beide Muster?
Da Integrationsprobleme und Anwendungsfälle zu unterschiedlich sind, können wir nicht sagen, dass die enge oder lose Kopplung die einzig richtige Lösung für eine Anforderung ist. Wenn Sie beispielsweise die Verfügbarkeit eines Produkts auf dem Lager in Echtzeit sehen müssen, dann müssen Sie diese Anforderung einfach mit dem Muster der engen Kopplung lösen und so Ihrem Benutzer, der auf seinem mobilen Gerät darauf wartet, die Echtzeit-Erfahrung zu sehen, bieten. Wenn Sie die Adressdaten eines Kontos synchronisieren müssen, um sie am nächsten Tag zu sehen, können Sie das lose Kopplungsmuster verwenden, um die Batch-Verarbeitung der Aktualisierung der Kontodaten auf einen nächtlichen Job zu verschieben. Auf diese Weise stören Sie den Geschäftsanwender nicht, der tagsüber während der Hauptgeschäftszeit arbeitet.
Nachdem ich die Standard-API von Salesforce und die beiden Integrationsmuster erläutert und Ihnen gezeigt habe, dass Sie beide Muster benötigen, um eine Integration zu erstellen, wollen wir nun einen Blick auf einige Funktionen werfen, die die SKYVVA-Lösung bietet. Beachten Sie, dass alle Funktionen, die wir Ihnen im Folgenden zeigen werden, nur dank der Serviceschicht von SKYVVA möglich sind, die in Wirklichkeit die Entkopplungsschicht ist. Lassen Sie mich an dieser Stelle noch einmal wiederholen, dass SKYVVA beide Muster unterstützt und es Ihnen ermöglicht, ein Echtzeit-Integrationsszenario unter Umgehung der SKYVVA-Staging-Schicht in der gleichen Weise durchzuführen, wie Sie es mit der Salesforce-Standard-API tun können. Der Unterschied besteht darin, dass Sie mit der SKYVVA-Lösung mehr Funktionalität erhalten, als wenn Sie die Integration manuell selbst durchführen oder von einem Entwicklerteam durchführen lassen, das umfassende Kenntnisse und Fähigkeiten zur API-Programmierung benötigt.
Der SKYVVA-Mehrwert, den wir im folgenden Kapitel vorstellen wollen, ist der folgende.
- Message Monitor, ein praktisches Werkzeug zur Überwachung eingehender und ausgehender Nachrichten.
- Message Reprocessing, das Ihnen ermöglicht, falsch eingegangene Daten zu korrigieren und neu zu verarbeiten, ohne den Absender zu bitten, die Daten erneut zu senden.
- Alerting, erleichtert Ihnen das Leben, indem Sie nicht ständig auf den Monitor schauen müssen, um zu sehen, was schief läuft. Stattdessen erhalten Sie eine Warnung und Benachrichtigung an Ihr mobiles Gerät oder Ihre Chatter-Gruppe.
Wie kann man überwachen, ob etwas schief läuft?
Lassen Sie uns mit der Frage beginnen, ob Ihre Schnittstelle und Integration, die Sie entwickelt haben, immer reibungslos und ohne Probleme läuft? Hatten Sie noch nie eine fehlgeschlagene Datenintegration aufgrund falscher Daten, z.B. falsches Datums- und Währungsformat oder der Benutzer hat einfach falsche Daten in der sendenden Anwendung eingegeben? Wie gehen Sie mit allen Arten von Fehlern um, die Ihnen im täglichen Betrieb begegnen? Wenn Sie ein erfahrener Salesforce-Entwickler sind, haben Sie wahrscheinlich kein Problem, die Ursache für den Integrationsfehler herauszufinden. Aber wollen Sie jeden Tag Ihre Ressourcen für die Behebung von Integrationsfehlern aufwenden, die z.B. von Ihren Admin- oder Endbenutzerkollegen leicht erledigt werden können? Das ist der Punkt und die Zeitersparnis, auf die ich gestoßen bin, als ich die SKYVVA-Lösung verwendet habe, die mir all diese Vorteile auf sehr einfache Weise bietet.
Mit SKYVVA haben Sie nun eine Ende-zu-Ende-Überwachung, da die Nachrichten zu Überwachungszwecken in der SKYVVA-Serviceschicht und im Staging-Bereich aufbewahrt werden. Ohne die SKYVVA-Serviceschicht hätten Sie nur die Überwachungsmöglichkeiten, die von der Senderanwendung und der Middleware bereitgestellt werden. Diese Mehrwertfunktion wird ausschließlich von der SKYVVA-Serviceschicht bereitgestellt.
Die folgende Abbildung zeigt ein Beispiel für den Überwachungsbildschirm, auf dem Sie verschiedene Optionen zum Auffinden von Nachrichten haben. Die am häufigsten verwendeten Suchoptionen sind zum Beispiel die Suche nach dem Inhalt der Nachricht, z. B. durch Eingabe des Kontonamens. Mit einem Mausklick haben Sie einen klaren Überblick über Ihre Daten und können diese auf Geschäftsebene vergleichen, ohne dass Sie ein Salesforce-Entwicklungsexperte sein müssen, um das Debug-Protokoll und die Traces lesen zu können.
Es bietet Flexibilität, Ihre Integrationsdaten auch nach bestimmten Daten und Uhrzeiten zu überwachen. Daher müssen Sie nicht immer vor Ihrem System anwesend sein, um die Datenintegration durchzuführen.
Abhängig von der Verarbeitung stehen verschiedene Filteroptionen für den Nachrichtenstatus zur Verfügung wie:
Completed: Wenn der API-Aufruf erfolgreich war und die Daten erfolgreich gesendet wurden, lautet der Status „abgeschlossen“.
Failed: Wenn die Daten erfolgreich gebucht wurden, aber aus irgendeinem Grund fehlgeschlagen sind, z. B. weil der Datentyp nicht übereinstimmt, z. B. ein Textfeld im Absender, aber ein Zahlenfeld in Salesforce, kann der Datensatz nicht gebucht werden. Mit dem Überwachungsbildschirm können Sie den Grund für das Scheitern der Daten nach dem API-Aufruf tatsächlich überwachen.
Pending: Wenn Ihre Daten vom Absender gesendet wurden, aber noch nicht in Salesforce verbucht wurden, ändert sich der Nachrichtenstatus in „Ausstehend“.
Canceled: Wenn die Daten nach dem API-Aufruf storniert werden, ändert sich der Nachrichtenstatus in storniert.
Bitte lesen Sie das SKYVVA Online-Tutorial und die Dokumentationsseite, um die Details der Überwachungsfunktion zu sehen:
Einfache Datenfixierung und -korrektur durch die Wiederverarbeitungsfunktion
Stellen Sie sich ein Beispiel vor, bei dem Sie Ihr Angebot und Ihren Auftrag aus einem ERP-System wie SAP in Salesforce übertragen müssen, damit Ihr Vertriebsmitarbeiter ein klares Bild von der Höhe des Kundenangebots und des Auftrags erhält. Angebot und Auftrag können sofort mit dem SAP-Angebot, das in SAP geändert wurde, in Salesforce synchronisiert werden. Ein solcher Prozess wird im Back-Office von Ihren Kollegen durchgeführt, die SAP zur Erstellung und Änderung von Angeboten und Aufträgen verwenden. Stellen Sie sich nun vor, dass Ihr Kollege als Mensch einen Fehler machen und die falschen Daten in das Angebot eingeben kann. Anstatt das richtige Währungsformat einzugeben, hat er/sie ein falsches eingegeben, das von Salesforce nicht erkannt wird. Die Buchung des Angebots schlägt somit fehl.
Was ist nun zu tun? Sie können Ihren Kollegen bitten, die Daten im SAP-System zu korrigieren und das Angebot erneut zu versenden. Was aber, wenn es kurz vor Feierabend ist und Ihre Kollegen bereits das Büro verlassen haben? Es gibt niemanden, der die falsche Währung korrigieren kann. Das Problem, das Sie jetzt haben, ist, dass es kurz vor Ende des Arbeitstages ist und Sie das richtige Angebot aus Salesforce an den potenziellen Kunden senden müssen. Natürlich können Sie den Versand des Angebots auf morgen verschieben. Aber wenn Sie nicht der einzige Anbieter sind, der das Angebot an diesen potenziellen Kunden sendet, und wenn Ihr Konkurrent das Angebot bis zum Ende des Arbeitstages senden kann und Sie nicht, was wird dann passieren? Stellen Sie sich dieses Szenario vor, das Ihrem Unternehmen schaden kann!
Solch ein Szenario und Anwendungsfall kommt in der Realität vor und Sie brauchen eine Möglichkeit, die Korrektur und Nachbearbeitung der Anwendungsdatenbuchung selbständig durchzuführen, z.B. in diesem Fall, um das Salesforce-Angebot mit der richtigen Währung aus SAP zu aktualisieren. SKYVVA ermöglicht Ihnen eine solche Datenkorrektur mit der Möglichkeit, die Daten sofort neu zu verarbeiten. So können Sie die falsche Währung korrigieren und Ihr Angebot erfolgreich verbuchen. Jetzt können Sie das Angebot noch vor dem Ende des Tages an Ihren potenziellen Kunden senden. Sie können sogar ein Szenario einrichten, um die geänderten Daten über den Prozessaufbau mit der SKYVVA Callout-Funktionalität zurückzusenden, um die von Ihnen vorgenommenen Änderungen in SAP zu aktualisieren.
Verwenden Sie den Nachrichtenmonitor, um nach fehlgeschlagenen Nachrichten zu suchen, oder springen Sie von Ihrem E-Mail-Posteingang, in dem Sie die Warnung erhalten haben, zu der fehlgeschlagenen Nachricht. Nehmen Sie in der fehlgeschlagenen Nachricht die erforderliche Datenkorrektur vor und verarbeiten Sie sie erneut.
Warum benötigen Sie Alerts
Wie Sie gesehen haben, ist eine zusätzliche Komponente zur Überwachung von Daten in Salesforce eine große Hilfe für Ihren täglichen Betrieb, um Integrationsfehler zu beheben. Wenn Sie nicht über die Überwachungskomponente verfügen, besteht Ihre einzige Möglichkeit darin, den Debug-Trace zu durchsuchen und nach möglichen Fehlern zu suchen. Dies ist komplex, zeitaufwändig und erfordert erfahrene Apex-Entwickler mit fundierten API-Kenntnissen. Mit der Überwachungskomponente können Sie diese Art von Arbeit an Ihren Salesforce-Administrator und Ihre Event-Business-Benutzer delegieren. Es steht Ihnen frei, andere nette Anwendungen zu entwickeln, die Ihr Unternehmen möglicherweise benötigt.
Die Überwachung ermöglicht es Ihnen, aktiv nach Fehlern in den Integrationsdaten zu suchen und diese zu erkennen. Was tun Sie, wenn Sie keine Zeit haben, alle 30 Minuten nach dem Monitoring zu schauen? Meist sind Sie mit Besprechungen und anderen Aufgaben beschäftigt und können es sich nicht leisten, alle 30 Minuten die Überwachungsseite zu öffnen. Hier kommt die Alarmierung ins Spiel. Mit der Fehlermeldung der SKYVVA-Lösung müssen Sie sich nicht mehr aktiv um einen Fehler in der Datenintegration kümmern. Selbst wenn Sie gerade eine Tasse Kaffee trinken, werden Sie wissen, wenn etwas mit Ihrer Datenintegration schief läuft. SKYVVA bietet Ihnen Echtzeit-Warnungen und -Benachrichtigungen in Ihrem E-Mail-Posteingang, erstellt eine Aufgabe für Ihre Benutzer und nutzt die Social-Media-Funktionalität über die Chatter-Gruppe, um Warnungen zu posten.
Mit dieser Funktion hat die SKYVVA-Lösung der Salesforce-Plattform den fehlenden Teil in Bezug auf die Alarmierungsfunktionalität hinzugefügt. Jetzt haben Sie neben der Integrationskette auch die Möglichkeit der Alarmierung. Es wird überall alarmiert und nichts kann mehr verloren gehen. Dies ist möglich durch die Entkopplung und den Integrations-Service-Layer der SKYVVA-Lösung, der der Salesforce Lightning-Plattform hinzugefügt wurde.
Zusammenfassung
Endlich sind Sie am Ende dieses langen Blogs angelangt. Es gibt noch einige weitere Funktionen und Mehrwerte, die ich bei meiner Arbeit mit dieser großartigen nativen App in der SKYVVA-Integrationslösung entdeckt habe. Was zum Beispiel die Wiederaufbereitungsfunktion betrifft, so müssen Sie nicht jede Datenwiederaufbereitung manuell durchführen. In der SKYVVA-Lösung gibt es Planer, die die Wiederverarbeitung automatisch durchführen. Bei Datenfehlern, wie z. B. der Sperrung von Geschäftsdatensätzen aufgrund der gleichzeitigen Verarbeitung desselben Datensatzes durch einen Endbenutzer und den Integrationsbenutzer, wird der Wiederverarbeitungsauftrag das Problem beheben. Es besteht keine Notwendigkeit, die Wiederverarbeitung manuell durchzuführen. Der Scheduler kann flexibel definiert werden, so dass er z.B. alle 15 Minuten oder nur am Sonntag um 22 Uhr abends läuft.
Wie Sie gesehen haben, ist es nicht die Frage, ob Sie eine Integration mit der bestehenden Salesforce Standard API durchführen können oder nicht. Die Antwort ist JA, Sie können alles selbst machen, wenn Sie die richtigen Fähigkeiten und Programmierkenntnisse haben. Aber bieten Sie wirklich die gleiche Qualität und Robustheit, die für eine Integration der Unternehmensklasse erforderlich ist, wenn Sie nur den Ansatz der API-Konnektivität verwenden? Wie sieht es mit der Unterstützung der entkoppelten Verarbeitung zwischen dem Client und Salesforce aus? Kann dies über die standardmäßige Salesforce-API erfolgen?
Wie sieht es mit der Fehlerbehandlung einschließlich der Warnfunktionen aus, die Sie für eine wirklich robuste Integration benötigen? Verfügen Sie über alle erforderlichen Funktionen, um Ihre tägliche Datensynchronisation zu bewältigen, einschließlich Überwachung, Wiederverarbeitung und Warnmeldungen? Wenn Sie nur eine Ping-Pong- und einfache CRUD-Operations-Konnektivität benötigen, können Sie die Standard-API von Salesforce verwenden. Wenn Sie jedoch mehr wollen oder wenn Ihr Unternehmen eine stabile und wartbare Integration und Datensynchronisation benötigt, führt kein Weg an einer professionellen Lösung wie einer Middleware vorbei. Aber was tun, wenn Ihr Unternehmen aus Kostengründen nicht das Budget für eine vollwertige Middleware hat? Wenn Sie sich in einer solchen Situation befinden, aber eine Integrationslösung der Unternehmensklasse benötigen, wie sie eine Middleware bieten kann, dann empfehle ich Ihnen auf jeden Fall einen Blick auf die SKYVVA-App zu werfen.