</TECH NEWS>
NEUESTES VON UNSEREN ENTWICKLERN:

25.09.2019 – von Eike Eschmann|

CRM Integration – Teil 2/2


Zum 1. Teil geht’s hier entlang:
https://sh.de/crm-integration-teil-1-2/

Umsetzungsphase

Da wir im Sparhandybackend noch Legacy Entitäten verwalten, müssen diese erst einmal in eine neue Form gebracht werden, um sie nutzbar zu haben.
Dafür haben wir uns für ACL (Anti Corruption Layer) Datenbanken entschieden, welche die Daten in den für SH Telekommunikations GmbH Deutschland gewünschten Entitäten vorhalten.
Das ganze wird im Sparhandy.de Context per Kafka Connect, Kafka und einer Mysql Datenbank realisiert.

Basis Entitäten Aufbereitung

Wärend der Sparhandy.de Auftragserfassung, wird ein REST Call an den Unique Customer Service (UCS) geschickt um eine systemweit eindeutige Kundennummer zu generieren bzw. einen Kunden zu finden und die Kundennummer zurück zu geben. Sobald der Auftrag in der Backend Datenbank abgelegt wurde, benutzen wir JDBC-Connectoren in Kafka Connect und sehr komplexe Selects, welche die Entitäten aus der sehr flachen Backend-Struktur generieren. Diese werden über Kafka, bzw. Kafka Connect in die Mysql ACL Datenbank abgelegt.
Mit diesem Zwischenschritt und unter Nutzung einer Mysql-embedded Function namens „on update CURRENT_TIMESTAMP“ deduplizieren wir Datensätze. Durch die Funktion wird durch die Mysql selbst geprüft, ob sich bei einem Update eines Datensatzes tatsächlich etwas geändert hat  – falls ja, wird der aktuelle Zeitstempel gesetzt. Wird ein Update ohne geänderte Daten durchgeführt, bleibt der alte Zeitstempel stehen. So wird sichergestellt, dass nur geänderte Daten über den Kafka Connect in den Kafka Basisbus übergeben werden. Gleichzeitig haben wir eine wirksame Lösung geschaffen, mit der wird die flache Ausgangsstruktur in einzelne separate Nachrichten/Entitäten auftrennen können.

Im Falle des ERP Systems haben wir Mssql Funktionalitäten verwendet, um die ERP ACL Datenbank zu befüllen.

Über unsere Cloud-Instanzen werden die Daten aus den ACL Datenbanken abgegriffen und als Selfdescribing Nachricht in den Kafka Basisbus übernommen. Von dort aus können die Nachrichten von den Consumern abgeholt werden.

CRM Anbindung

Die Verbindung zum CRM schlussendlich wurde per Apache Nifi realisiert. Apache Nifi ist ein flow based ETL Tool mit grafischer Oberfläche. Die verschiedenen Workflows wurden strukturiert abgelegt und sind im Gitlab versioniert.

Ausblick

Durch die neuen, strukturiert vorliegenden Entitäten sind wir nun schneller und einfacher in der Lage neue Services und Systeme anzubinden. Auch nimmt der Kafka Basisbus weiter Gestalt und Form an und ermöglicht uns eine unternehmensweit einheitliche Kommunikation und eine strukturierte Kommunikation nach außen. Durch den Streamingansatz sind wir nun in der Lage, Live-Reportings zu erstellen.

Zur Zeit beschäftigen wir uns mit dem „Rückweg der Daten“ aus dem CRM in unsere Legacy Systemwelt. Hierfür sieht das Lösungsszenario die Nutzung des Azure-Eventhubs und der Apache Nifi Umgebung vor. Das CRM feuert die Nachrichten in den Eventhub, Nifi holt sich die CRM Events ab und lädt die Informationen an den Zielstrukturen ab – sei es per API-Call oder direkter Kommunikation mit Datenbanken.



WEITERE SPANNENDE BEITRÄGE



Unternehmen Marken Team Presse Karriere Tech-Blog SH Händler-Shop