← Blog
7 Min. Lesezeit

Das Mapping, das Ihr ERP-Anbieter nie dokumentiert hat

Bei einer ERP-Migration ist der Export einfach. Schwierig ist die undokumentierte Geschäftslogik im Altsystem, und sie vor dem Go-Live wiederherzustellen.

Ray Kameda
Ray Kameda
Co-Founder & Chief Product Officer
Zweiteiliges Balkendiagramm mit dem Titel „Datenprobleme zählen zu den häufigsten Ursachen für ERP-Projektüberschreitungen“. Linkes Panel, Gründe für Budgetüberschreitungen: Zusätzliche Technologie 51,2 %, Personal unterschätzt 39,5 %, Organisatorische Probleme 39,5 %, Datenprobleme 34,9 % orange hervorgehoben, Beratungskosten 32,6 %, Technische Probleme 27,9 %, Umfang erweitert 25,6 %. Rechtes Panel, Gründe für Zeitüberschreitungen: Ressourcenengpässe 56,1 %, Technische Probleme 51,2 %, Datenprobleme 46,3 % orange hervorgehoben, Umfang erweitert 39,0 %, Organisatorische Probleme 39,0 %, Unrealistischer Zeitplan 24,4 %, Lieferantenausfall 2,4 %. Quelle: Panorama Consulting Group, The 2024 ERP Report.

Warum ERP-Migrationen aus dem Ruder laufen, lässt sich messen. Im ERP-Report 2024 von Panorama nannten 34,9 % der Projekte mit Budgetüberschreitung und 46,3 % der Projekte mit Zeitüberschreitung Datenprobleme als Ursache, in beiden Fällen unter den vier häufigsten Gründen. Diese Datenprobleme sind selten die Rohdaten, die sich nicht bewegen lassen. Es ist die Bedeutung, die sich nicht mitbewegt hat. Was folgt, ist: wo sich diese Bedeutung versteckt, warum sie darüber entscheidet, ob im neuen System am Ende die Zahlen stimmen, und wie man sie vor dem Go-Live wiederherstellt.

Der Export ist nicht das Problem

Fragt man Projektverantwortliche, was ihnen an der Migration Sorgen bereitet, ist der Datenexport selten die erste Antwort. Moderne ERP-Systeme, selbst alte auf einer SQL-Server-Datenbank, liefern die Tabellen. Die Sorge gilt der Bedeutung der Tabellen. Ein Feld namens status enthält die Ganzzahl 3, und nur das Altsystem, oder die Person, die es 2014 konfiguriert hat, weiß, dass 3 „zur Produktion freigegeben, aber noch nicht fakturiert“ bedeutet. Ein Custom Field, das vor fünf Jahren während einer Einführung ergänzt wurde, steuert eine Berechnung, von der die Hälfte der Berichte abhängt. Nichts davon ist dokumentiert. Es steckt im Verhalten der Software, und vielleicht in ein paar Köpfen, sofern diese Personen noch im Unternehmen sind.

Beetl-Query-Ansicht mit SELECT Stern FROM old_orders: ein ERP-Rohexport, in dem der Auftragsstatus als reine Ganzzahlen von 1 bis 5, der Auftragstyp als einzelne Buchstaben A, B und R und eine Spalte custom_field_7 mit J/N-Kennzeichen gespeichert ist, deren Bedeutung nirgends in den Daten steht. Kryptische rohe Auftragsstatuscodes.

Ein Fertigungsunternehmen hat uns das bei der Planung seines Wechsels auf ein neues ERP-System beschrieben. Die Einschätzung war unverblümt: Nicht alles, was der Altanbieter modelliert hat, ist irgendwo abgebildet oder erklärt, also rechnete man damit, es umgehen zu müssen. Für eine echte ERP-Migration ist das der Normalzustand.

Was „undokumentiertes Mapping“ tatsächlich umfasst

„Geschäftslogik“ ist vage genug, um sie zu ignorieren, bis es zu spät ist, deshalb hilft es, konkret zu werden. In der Praxis sind es drei wiederkehrende Dinge:

  • Status- und Typcodes. Jedes ERP-System kodiert den Zustand eines Auftrags, einer Lieferung oder einer Rechnung als Code, und was jeder Code bedeutet, ist eine lokale Entscheidung. Beim Wechsel auf ein neues System muss jemand festlegen, welcher alte Code welchem neuen entspricht, und das ist eine fachliche Entscheidung und kein einfacher Lookup.
  • Custom Fields. Fast jede reale Einführung hat nach dem Go-Live Felder ergänzt, um etwas zu erfassen, das das Standardmodell nicht abdeckte. Sie speisen oft Berechnungen oder Filter, auf die es ankommt, und sie sind der am schlechtesten dokumentierte Teil des Systems, gerade weil sie unter Zeitdruck hinzugefügt wurden.
  • Abgeleitete Logik und Workflow-Logik. Das Altsystem hat nicht nur Daten gespeichert, es hat Regeln angewendet. Dieser Auftragstyp überspringt einen Schritt, jener Kunde erhält eine andere steuerliche Behandlung, dieses Dokument kann nicht gebucht werden, solange ein anderes nicht existiert. Ein Teil dieser Logik muss die Migration überstehen, und in einem Rohexport ist sie unsichtbar.

Warum es undokumentiert bleibt

Nichts davon ist Nachlässigkeit. ERP-Anbieter modellieren dieses Verhalten selbstverständlich in ihrer Software und haben wenig Grund, jede kundenspezifische Konfiguration in Klartext zu erklären. Die Personen, die die Konfigurationsentscheidungen getroffen haben, wechseln weiter. Das verbleibende Wissen ist als Gewohnheit über das Team verteilt und nicht an einer Stelle festgehalten, die man nachlesen kann. Bei einem System, das ein Unternehmen ein Jahrzehnt lang betrieben hat, ist die Dokumentation das laufende System.

Die Logik in einer prüfbaren Form wiederherstellen

So geht Beetl vor: Wir behandeln die Daten und das Verhalten des Altsystems als Quelle der Wahrheit und rekonstruieren das Mapping daraus, statt aus einem Dokument, das es nicht gibt. Wir lesen die Tabellen, sehen uns an, wie sich die Werte tatsächlich verteilen, und schlagen ein Mapping vor: Dieser alte Code entspricht diesem neuen, dieses Custom Field speist diese Regel.

Beetl-Pipeline-Builder für die Pipeline mapped_orders: drei Quelldatensätze, old_orders, status_map und type_map, speisen eine explizite SQL-Transformationsstufe, die die alten Status- und Typcodes auf neue Bezeichnungen abbildet, die Rabattregel explizit macht und Zeilen kennzeichnet, die eine menschliche Prüfung brauchen. Die Stufe hat eine Working- und eine Deployed-Version und schreibt einen Gold-Datensatz namens mapped_orders. Rohdaten werden mit Mapping-Logik in verständliche Daten überführt.

Entscheidend ist, dass der Vorschlag prüfbar ist. Wir nutzen KI, um die Mapping-Definition zu entwerfen, denn sich durch Jahre angesammelter Konfiguration zu lesen, ist genau die Art von Arbeit, für die LLMs am besten geeignet sind. Das Ergebnis ist jedoch eine Definition, die ein Mensch lesen und freigeben kann, und keine Blackbox, die die Daten unsichtbar transformiert. Jemand, der das Geschäft kennt, sieht sich das vorgeschlagene Mapping an, korrigiert die Fälle, die die Daten allein nicht klären, und gibt es frei. Die Integration verschwindet nicht in einem undurchsichtigen Agenten. Sie wird zu einem expliziten, versionierten Artefakt, das festhält, was die Migration tun wird.

Der Abgleich ist die Nagelprobe

Ein wiederhergestelltes Mapping ist nur dann vertrauenswürdig, wenn die Zahlen stimmen. Für jede Gruppe von Datensätzen, die Kunden, die Produkte, die offenen Aufträge, die Forderungen, müssen die Summen auf der alten und der neuen Seite übereinstimmen, und die Ausnahmen müssen erklärt und nicht weggerundet werden. Dieser Abgleich zeigt, ob die undokumentierte Logik tatsächlich erfasst und nicht stillschweigend verloren wurde. Eine Migration, die ohne Fehler lädt, aber deren Zahlen nicht stimmen, hat meist genau die Geschäftslogik verloren, um die es in diesem Beitrag geht.

Beetl-Abgleichs-Query, gruppiert nach neuem Status, während das Mapping noch unvollständig ist. Eine UNMAPPED-Gruppe steht oben und ist mit FAIL gekennzeichnet, weil zwei Zeilen einen alten Statuscode ohne freigegebenes Mapping trugen. Die übrigen Gruppen zeigen OK, eine ist mit REVIEW markiert. Vorher: 2 Zeilen tragen einen Statuscode ohne freigegebenes Mapping, deshalb schlägt die Gruppe Alarm, statt still durchzurutschen.

Derselbe Abgleich, nachdem der fehlende Code auf „On hold“ abgebildet wurde. Jede Gruppe zeigt nun OK, außer einer, die weiterhin mit REVIEW markiert ist, für eine Retoure in einem Produktionsstatus, die ein Mensch bestätigen muss. Nachher: Der nicht abgebildete Code ist aufgelöst, und eine Zeile bleibt zur Klärung durch einen Menschen in Prüfung.

Die Transformation explizit zu halten und das Ergebnis abgleichen zu können, statt einem Schritt zu vertrauen, in den man nicht hineinsehen kann, ist wie wir über Datenarbeit generell denken, nicht nur bei einer Migration.

Das Fazit

Wenn Sie eine ERP-Migration planen, legen Sie das Budget auf das Mapping statt auf den Export. Die Rohdaten werden umziehen. Ob das neue System die Wahrheit sagt, entscheidet sich daran, ob die undokumentierte Logik mitgekommen ist und ob Sie das überprüfen können. Die Datenprobleme, die in einem Drittel der Migrationen mit Budgetüberschreitung auftauchen, sind selten die Rohdaten. Es ist die Logik, die sich ohne ihre Bedeutung bewegt hat. Das Nützlichste, was wir bei einer Migration tun können, ist, diese verborgene Logik in etwas Explizites, Prüfbares und Abgeglichenes zu verwandeln, bevor sich jemand darauf verlässt.

Häufige Fragen

Was ist undokumentierte Geschäftslogik bei einer ERP-Migration?
Es ist die Bedeutung, die das Altsystem kodiert, aber nie aufgeschrieben hat: wofür jeder Status- oder Typcode steht, was Custom Fields steuern und welche Regeln im Hintergrund laufen, etwa ein Auftragstyp, der einen Schritt überspringt, oder ein Kunde, der eine andere steuerliche Behandlung erhält. Der Rohexport trägt die Werte, aber keine dieser Regeln, und eine Migration, die sie fallen lässt, lädt ohne Fehler, stimmt aber nicht mehr ab.
Wie findet man Logik, die nirgends dokumentiert ist?
Indem man die Daten und das Verhalten des Altsystems liest, nicht ein Dokument. Wie sich Werte verteilen, welche Codes gemeinsam auftreten und was die Berichte tatsächlich berechnen, offenbart die Regeln. KI ist gut darin, daraus Kandidaten für Mappings zu finden; ein Mensch, der das Geschäft kennt, bestätigt sie.
Kann KI das Mapping nicht komplett übernehmen?
Sie kann es entwerfen, was viel Lesearbeit spart. Die Fälle, in denen die Daten allein mehrdeutig sind, kann sie nicht klären, weshalb das Mapping einem Menschen als prüfbare Definition vorgelegt und freigegeben wird, statt still angewendet zu werden.
Wie lange dauert es, das Mapping wiederherzustellen?
Das hängt davon ab, wie viel kundenspezifische Konfiguration das Altsystem angesammelt hat, weshalb der Export-Zeitplan ein schlechter Anhaltspunkt ist. Die Mapping-Arbeit skaliert mit der Geschäftslogik, nicht mit der Zeilenzahl.
Was, wenn das Altsystem gar keine Dokumentation hat?
Das ist der Normalfall, und es ist machbar. Das laufende System ist die Dokumentation; die Aufgabe ist, es in ein explizites Mapping zurückzulesen, bevor man es abschaltet.

Möchten Sie das mit Ihren Daten sehen?

Kontakt aufnehmen