Der Import lief durch. Keine Fehlermeldung, keine Warnung, am Ende eine Zusammenfassung. Und in der Datenbank stand danach genau dasselbe wie vorher.

Was passiert war

Die Installationsroutine schreibt Ausgangsdaten in mehrere Tabellen. Vor jeder prüft sie, ob dort bereits etwas steht – und wenn ja, überspringt sie den Bereich. Das ist kein Fehler, sondern ein Schutz: Ein versehentlicher zweiter Lauf würde sonst redaktionelle Arbeit überschreiben, und das ließe sich nicht rückgängig machen.

Der Fehler lag in der Meldung. Der Lauf endete mit einer Zusammenfassung, die wie ein Erfolg aussah, weil sie nicht auf Bereichsebene sagte, was tatsächlich geschehen war.

Ein Vorgang, der aus guten Gründen nichts tut, muss das lauter sagen als einer, der etwas tut. Sonst ist er von einem Erfolg nicht zu unterscheiden.

Warum das teuer wird

Nicht wegen der verlorenen Minute, sondern wegen der Richtung, in die man danach sucht. Wer glaubt, der Import sei gelaufen, und die Änderungen nicht sieht, prüft die Ausgangsdaten: Ist die Datei richtig? Ist die Kennung korrekt geschrieben? Sind die Feldnamen die erwarteten?

Das sind sinnvolle Fragen – nur alle an der falschen Stelle. Die Ausgangsdaten waren nie das Problem; sie wurden nur nicht gelesen.

Der verwandte Fall

Dasselbe Muster tritt bei stillschweigend ignorierten Feldern auf. Ein falsch benanntes Feld in einer Ausgangsdatei wird nicht bemängelt, sondern übergangen – der Datensatz entsteht, nur eben ohne diesen Inhalt. Das Ergebnis ist ein leeres Profil, dessen Ursache in der Datei steht und dort auf den ersten Blick vollständig aussieht.

Was hilft

  1. Je Bereich melden, nicht insgesamt

    Eine Zeile pro Bereich: geschrieben, mit Anzahl – oder übersprungen, mit Begründung. Erst dann trägt die Ausgabe eine Aussage.

  2. Einen ausdrücklichen Schalter zum Überschreiben

    Wer überschreiben will, soll das sagen müssen. Ein Schalter, den man bewusst setzt, ist ein besserer Schutz als eine Voreinstellung, die man vergisst.

  3. Vorher und nachher zählen

    Die Anzahl der Datensätze vor und nach dem Lauf. Zwei Abfragen, und die Frage ist unabhängig von jeder Meldung beantwortet.

  4. Aufschreiben, was ein laufender Abgleich abdeckt

    Und vor allem, was nicht. Ein Bereich, der nur bei der Installation entsteht, wartet sonst auf einen Abgleich, der für ihn nie vorgesehen war.