Im Rahmen unserer Einführung von SAP Hybris C4C stand in dieser Woche das nächste Teilprojekt an: die Datenmigration. Steffen hat in unserem jüngsten Blogbeitrag bereits ein wenig darüber berichtet. Ich werde heute genauer ausführen, wie wir dabei vorgegangen sind.
Unser bisheriges CRM, Salesforce.com (SFDC), war über einen SAP-Data-Services-Adapter direkt angebunden. SAP Hybris Cloud for Customer verfügt über eine oData-Schnittstelle, für die SAP Data Services ebenfalls einen Adapter bereitstellt. Unser ursprünglicher Plan, um SAP Hybris Cloud for Customer mit Daten aus Salesforce zu befüllen, war es, genau diese Schnittstelle dafür zu nutzen. Denn mithilfe von oData Services lassen sich Daten einheitlich via http abfragen, aktualisieren, einfügen und löschen. Und auf der Basis der SAP Data Services geschieht das unfassbar einfach und schnell.
Leider konnten wir den oData-Ansatz zur direkten Migration auf C4C nicht wie gewünscht umsetzen: Nach dem Auslesen der Salesforce-Daten mittels Salesforce Adapter ließen sich diese zwar entsprechend weiterverarbeiten und auf die von C4C bereitgestellten oData Services mappen, aber ein Schreiben in C4C war nicht möglich. Erste Analysen ergaben, dass es vermutlich an inkompatiblen oData-Protokoll-Versionen zwischen SAP Data Services und der C4C-Schnittstelle lag. Hier wären zusätzliche Analysen sowohl durch uns als auch durch den SAP-Support erforderlich gewesen, um einen geeigneten Software-Patch für den oData-Adapter zu erhalten. Dieses Szenario hätte uns jedoch zu viel Zeit gekostet, die so in unserer Projektplanung nicht vorgesehen war. Daher mussten wir diesen eleganten Ansatz leider verwerfen.
Zeit für Plan B: Wir haben uns entschieden, die von C4C bereitgestellten Migration-Excel-Templates zu nutzen. Heißt im Klartext: Daten per Salseforce-Adapter exportieren und mittels Data Services in Staging-Tabellen zwischenspeichern. Anschließend in Data Service analysieren, bereinigen und aufbereiten sowie per Flat File Export als CSV-Dateien bereitstellen.
Nur ein homogener, fehlerfreier Datenbestand liefert eine vertrauenswürdige Grundlage für unsere Geschäftsentscheidungen. Um in unserem Zielsystem SAP Hybris C4C eindeutige und einheitliche Datensätze zu garantieren, war das Data Cleansing ein wichtiger Meilenstein im Projekt. Auch hier haben wir mit SAP Data Services gearbeitet.
Dabei wurden:
Dubletten vollautomatisiert identifiziert und konsolidiert.
ein Address Cleansing mithilfe externer Validierungsservices durchgeführt, d. h. die Adressen wurden validiert und, falls nötig, automatisch vervollständigt.
Insbesondere die Unternehmensdaten mit relevanten Zusatzinformationen wie Geodaten bzw. x-y-Koordinaten angereichert.
Auf diese Weise ist es uns gelungen, die Datenqualität nachhaltig zu steigern und somit die manuelle Nachbesserung für einen Datenimport in C4C auf ein Minimum zu senken.
Anschließend haben wir die Daten mithilfe von SAP Data Services gemappt und transformiert. Eine Datentransformation ist erforderlich, da Quell- und Zielsystem in der Regel nie die gleichen Datenmodelle aufweisen werden. Daher wird zunächst ein Datenmapping durchgeführt. Basierend auf den Erkenntnissen des Mappings, werden Transformationsregeln erstellt, um die Daten vor dem Datenimport sinnvoll anzupassen.
Auf das Thema Mapping ist Steffen ebenfalls im jüngsten Blog eingegangen. Die Transformationsregeln werden dann beim Import softwaregestützt umgesetzt. Im Detail: Wir haben unsere C4C Migration Excel Templates, die die Datenstruktur für den C4C-Import beschreiben, in Data Services als FlatFile Formate angelegt. So konnte das Tool direkt die aus dem Salsefore-Adapter gelieferten Daten auf die jeweiligen Flatfile-Strukturen mappen. Das Code Mapping haben wir über sogenannte Lookup-Tabellen realisiert.
Abgeschlossen wird die Datenmigration durch den Import der Daten ins Zielsystem, in unserem Fall also C4C. Hier haben wir uns für ein mehrstufiges Vorgehen entschieden: Zunächst wurden zuerst die Basisobjekte wie Kunde, Account, Kampagnen usw. geladen. Erst danach haben wir damit verknüpfte Objekte wie Kontakte, Leads und Aktivitäten geladen.
Für jedes in C4C angelegte Objekt haben wir parallel die Salesforce ID gespeichert, um nach dem Anlegen eine Korrelation zwischen der neu vergebenen C4C ID und der ursprünglichen Salesforce ID herstellen zu können. Dafür wurden in Data Services entsprechende Tabellen angelegt, die einen Lookup von der Salesforce ID auf die neu vergebene C4C ID ermöglichen. Diese Tabellen wurden mittels Data Services entweder per CSV-Export aus C4C oder direkt per oDATA aus C4C befüllt.
Abschließend haben wir auch bereits archivierte Objekte wie Leads oder Aktivitäten migriert. Auf diese Weise ist es uns gelungen, die komplette Aktivitätshistorie (Telefon, E-Mail, Besuche/Aktivitäten) samt Verknüpfung zu Accounts und Kontakten zu erhalten. Insgesamt handelte es sich um 33.869 E-Mail-Aktivitäten, 37.121 Telefon-Aktivitäten und ca. 48.000 sonstige Aktivitäten.
Das gelang nur durch einen kleinen „Umweg“: Die Daten wurden als CSV-Datei aus Salesforce exportiert und mussten dann in Data Services aufwendig aufbereitet werden, damit C4C nach dem Datenimport zum Beispiel die enthaltenen Zeilenumbrüche in einer Beschreibung korrekt interpretiert. Ohne diese Vorbereitung wäre ein Import unmöglich gewesen, da besagte Zeilenumbrüche die CSV-Struktur vollständig verschoben hätten und die Daten den falschen Feldern zugeordnet worden wären.
Der Status quo sieht am heutigen Tag also wie folgt aus: Unsere qualitativ hochwertigen Daten befinden sich in SAP Hybris Cloud for Customer. Im nächsten Schritt werden wir das neue System mit einer kleinen Pilotgruppe testen, bevor es dann hoffentlich bald live gehen kann.