Eine erfolgreiche Antwort ist kein Beleg

Aus dem Betrieb24. August 20262 Minuten
Eine Wand mit grauen Bankschliessfächern mit goldenen Schlössern – ordentlich nach aussen, ohne Hinweis auf den Inhalt dahinter.

Ein Ablauf schrieb Aufträge ins Warenwirtschaftssystem. Er bekam von der Schnittstelle jedes Mal «200 OK» zurück. Wir werteten das als Bestätigung und liessen den Ablauf laufen.

Zwei Tage später zeigte sich das Problem: Die Aufträge existierten, aber sie hatten keine Positionen. Kein Artikel, keine Menge, keine Zeile. Leere Hüllen.

Was die Schnittstelle tatsächlich getan hatte

Sie hatte einen Datensatz bekommen und ihn formal angenommen. Die Antwort «200 OK» bedeutet: der Datensatz kam an und hatte das richtige Format. Sie bedeutet nicht, dass alle Felder gelesen wurden. Felder, die die Schnittstelle nicht kennt oder nicht erwartet, werden stillschweigend ignoriert.

Das Feld für die Auftragspositionen hiess in unserem Datensatz «positions». Die Schnittstelle erwartete «order_lines». Weder ein Fehler noch eine Warnung. Die Schnittstelle nahm den Auftrag an, schrieb den Kopf und liess den Rest liegen.

Warum das so schwer zu bemerken ist

Schnittstellen, die Erfolg melden, melden das Format, nicht den Inhalt. Das ist keine Nachlässigkeit der Hersteller, das ist die Logik dahinter: Die Schnittstelle prüft, ob die Anfrage gültig ist. Sie prüft nicht, ob das Ergebnis vollständig ist.

Wer darauf vertraut, dass «Erfolg» heisst «alles geschrieben», übersieht die Lücke zwischen dem, was ankam, und dem, was gemeint war.

Die Regel, die seitdem gilt

Nach jedem Schreibvorgang liest der Ablauf den Datensatz aus dem Zielsystem zurück und prüft, ob er dem entspricht, was geschickt wurde. Nicht ob die Schnittstelle «OK» gesagt hat, sondern ob der Auftrag tatsächlich Positionen hat.

Das kostet einen zusätzlichen Schritt. Es ist der einzige Schritt, der wirklich belegt, dass etwas geschrieben wurde.

Gezielt prüfen, nicht alles

Bei komplexen Datensätzen prüfen wir nicht jedes Feld, sondern das Feld, das am schwersten zu ergänzen ist. Wenn die Positionen stimmen, ist der Rest meistens auch da.

Was das für andere Abläufe bedeutet

Jeder Ablauf, der in ein Fremdsystem schreibt, hat diese Lücke. Die Schnittstelle ist höflich. Sie sagt nicht, was sie nicht verstanden hat. Sie sagt nur, ob das Format stimmt.

Wer weiss, welche Felder im eigenen System anders heissen als im Zielsystem, kann die Rückleseprüfung gezielt einbauen. Wer es nicht weiss, braucht sie erst recht.

Die Frage ist nicht, ob die eigenen Abläufe in Fremdsysteme schreiben.

Die Frage ist, ob man weiss, was dort tatsächlich angekommen ist.

Was in Ihrem Fall zu tun ist, hängt von Ihrem Fall ab. Fragen Sie Karl, unseren KI-Assistenten. Er antwortet sofort, und wenn es weitergeht, übernimmt ein Mensch.

Karl fragen →

Lieber gleich ein Mensch? Anfrage stellen.

AlleAus dem BetriebTipps und TricksBauideenMöglichkeiten