Schnellstartanleitung für Talend ESB – Teil 2
Als Nächstes aktivieren wir das XML-Mapping und führen unsere Daten per String-Bearbeitung zusammen.
Unternehmen setzen in der Regel Hunderte Anwendungen ein, die zum großen Teil gegenseitig integriert sein müssen. Die Anwendungsintegration im Unternehmen kann eine echte Herausforderung sein, da das Verknüpfen von Anwendungen per Point-to-Point-Integration zeit- und kostenaufwendig ist. Um den Vorgang zu beschleunigen und zu vereinfachen entscheiden sich viele Unternehmen daher für einen Enterprise Service Bus (ESB).
In Teil 1 der Schnellstartanleitung für die Anwendungsintegration mit Talend ESB haben wir den Web Services Description Language (WSDL)-Vertrag in Talend Open Studio for ESB importiert und alle Elemente des Dienstes erstellt, die für eine CRM-Integration erforderlich sind. Jetzt haben wir die CRM-Daten, den Stil des Dienstes und das Ende des Dienstes und können die Fehlerbehandlung und den Lastenausgleich für unsere CRM-Integration konfigurieren.
In diesem zweiten Teil der Schnellstartanleitungs-Reihe für Talend ESB werden folgende Schritte erläutert:
- Einrichtung von Talend ESB zur Aktivierung des XML-Mappings der CRM-Quelldaten über unsere Eingänge und Ausgänge
- Zusammenführung unserer CRM-Datensätze per String-Bearbeitung in Talend Open Studio
- Erstellung einer SOAP-basierten Fehlerreaktion
In Teil 3 werden wir ein Integrationsmuster mit Lastenausgleich implementieren, um die Sichtbarkeit am Endpunkt zu erhöhen. Dann können wir einen SOAP-basierten Webdienstanbieter mit vollem Lastenausgleich testen, um die reibungslose Funktion unserer CRM-Integration sicherzustellen.
Mapping in Talend Studio
Die leistungsstärksten und am häufigsten verwendeten Features in Talend Open Studio sind die Mapping-Komponenten. In dieser ESB-Demo verwenden wir eine TXMLmap-Komponente zum Aktivieren des durchzuführenden XML-Mappings. (Es gibt auch eine entsprechende Map-Komponente für Nicht-XML-Ressourcen.)
Im folgenden Bildschirm tragen wir die Eingabewerte in unsere Mapping-Schritte ein. Dazu erstellen wir Verbindungslinien zwischen den Schritten und kennzeichnen diese mit Labels: Eines der Label steht für eine eingehende Anfrage vom Hauptdienst, ein anderes weist darauf hin, dass die Informationen aus der Kundenressource stammen, und ein weiteres Label ordnet die Ausgabe der Antwort des Dienstes zu. Zuletzt erstellen wir eine Ausgabe zu unserer Fehlerkomponente, da wir in dieser CRM-Integration auch SOAP-Fehler generieren wollen.
Zur Anzeige der tatsächlichen Ausgabewerte in den Containern erfassen wir die Ausgabe über die Navigation auf der rechten Seite. Auf dem Bildschirm unten können wir die Quelle der Informationen aufrufen und sehen die eingehende Anfrage des Dienstes, das Kundenschema, das aus der Kundenressource extrahiert wird, sowie die Antwort an den Dienst (normale Reaktionen und Fehlerreaktionen).
In der Mitte des Bildschirms werden die unterschiedlichen Prozesse des Dienstes angezeigt, die wir importiert haben. Uns interessiert der Prozess „getCustomer“, den wir daher im Menü auswählen. Auf diese Weise ordnen wir diese Daten für die Anfrage gemäß dem in der WSDL enthaltenen „getCustomer“-Anfrageschema.
Die neue Anfrage wird oben links im Feld „main request“ hinzugefügt. Anschließend führen wir noch einmal dieselben Schritte aus, um den „getCustomer“-Prozess zum Fehlerbehandlungs- und Fehlerreaktionsbereich hinzuzufügen.
Auf der linken Seite des Bildschirms werden alle Eingabewerte angezeigt und auf der rechten Seite sehen wir alle Ausgabewerte für die XML-Map. Im nächsten Schritt richten wir den ESB so ein, dass wir Daten über die Eingaben und Ausgaben zuordnen und übertragen können.
Als Erstes erstellen wir ein Lookup zwischen den beiden Feldern auf der linken Seite – den Dienstanfragen (oben) und der Kundendatenressource (unten). Dazu verschieben wir das Element (in diesem Fall „custID“) einfach per Drag-and-drop nach unten, um die gewünschte Verknüpfung mit der Kundenressource vorzunehmen (lookup: customers).
Damit drücken wir im Grunde aus, dass wir die eingehende Kunden-ID aus der Dienstanfrage mit der Kunden-ID in der Kundenressource verknüpfen möchten.
Wenn die Daten nicht mitspielen: einen Join und eine String-Bearbeitung einrichten
Jetzt müssen wir einen Mechanismus einrichten, mit dem die CRM-Daten bei jeder Ausführung des Dienstes integriert werden. „Match Model“ wird auf „Unique match“ und „Join Model“ auf „Inner Join“ gesetzt. Wenn diese Parameter festgelegt sind, können wir mit dem Mapping der Daten zum Endpunkt beginnen.
Das Mapping der Daten in diesem Join erfolgt ganz einfach per Klicken und Ziehen (Linien im Screenshot unten).
Der Name der Dienstantwort auf der rechten Seite, „name“, könnte ein bisschen problematisch sein, da dieser eine Verkettung des gesamten Namens ist und „name“ links in der Kundenressource mit einem String aus mehreren Komponenten dargestellt wird (salutation, forename, surname).
Zur Lösung dieses Problems klicken wir in der mittleren Spalte auf „Var“, um eine kleine Transformation zu erstellen, und geben „name“ in der Spalte „Variable“ ein. Dann markieren wir die Zeilen „Salutation“, „Forename“ und „Surname“ und ziehen sie in das Variablenfeld in der Spalte „Expression“.
Anschließend klicken wir auf das Feld in dieser Spalte. Im neuen Fenster haben wir drei Möglichkeiten, den String aus „Salutation“, „Forename“ und „Surname“ miteinander zu verketten:
- Standardfunktionen verwenden
- Eigene benutzerdefinierte Routinen schreiben
- Einfache JAVA-Syntax schreiben
Nachdem der Name aufgelöst wurde, ordnen wir alle Komponenten entsprechend (siehe unten) durch Klicken und Ziehen zu. Dadurch werden die Verbindungen eingerichtet, sodass wir die Standardantwort auf den Dienst erhalten.
SOAP-basierte Fehlerreaktion erstellen
Als Nächstes richten wir alles Nötige zum Generieren von SOAP-Standardfehlern für den Dienst ein. Der Vorgang ähnelt dem soeben durchgeführten Mapping der CRM-Daten.
Zunächst möchten wir sogenannte „inner join rejects“ erfassen, bei denen wir eine Fehlerreaktion vom Dienst erhalten, wenn der Kunde nicht gefunden werden kann. Zum Konfigurieren der Fehlerreaktion geben wir als Basislabel für den Fehler „err001“ und für „Type“ den Wert „Lookup failure“ ein, um den Fehlertyp anzugeben.
Abschließend geben wir für „Message“ eine passende Meldung ein, die im Dienst angezeigt wird, wenn der Kunde nicht gefunden werden kann („Unable to locate customer“). Dann klicken wir auf die ursprüngliche Eingabe „custID“ und ziehen sie in den Bereich „fault“.
Unser Dienst kann jetzt verwendet werden. In der Schnellstartanleitung für Talend ESB – Teil 3 lernen Sie einen Lastenausgleichsalgorithmus zu implementieren. Außerdem beschreiben wir ein paar der Vermittlungs- und Routingfunktionen, die in Talend Open Studio for ESB zur Verfügung stehen.
Sie können Talend Open Studio for ESB kostenlos testen und sich selbst davon überzeugen, wie leicht es ist, eine einfache CRM-Integration wie in dieser Demo durchzuführen. Alternativ können Sie natürlich auch eine eigene Webdienstintegration einrichten.