Warum ein Raster nötig ist

Die übliche Frage bei einem Schnittstellenproblem lautet „was ist kaputt”. Sie führt in die Irre, weil sie voraussetzt, dass etwas erkennbar kaputt ist. Der überwiegende Teil der Fehler zwischen Primärsystem und angebundenem System besteht darin, dass beide Seiten fehlerfrei arbeiten und das Ergebnis trotzdem falsch ist.

Die nützlichere Frage ist deshalb: Welches Protokoll hätte diesen Fehler überhaupt sehen können? Die Antwort ordnet Fehler nach zunehmender Unsichtbarkeit — und legt zugleich fest, welcher Nachweisweg taugt und welcher nur Aufwand ist.

Das Raster

#KategorieKennzeichenNachweisbar durch
1TransportausfallVerbindung oder Zustellung scheitertTCP-Fehler, Monitoring
2Harter FehlerDer Empfänger bricht abNACK, Log, Validator
3Silent — der Empfänger rätDie Aussage ist unvollständig oder mehrdeutig; der Empfänger wählt eine Lesartnur Abgleich Quelle ↔ Ziel
4Mapping-FehlerBeide Seiten korrekt, die Abbildung ist falsch. Die Information kommt an und wird falsch verarbeitetAbgleich Quelle ↔ Ziel
5Ungewollte AussageBeide Seiten standardkonform. Der Sender hat etwas anderes gesagt, als er meinte; die Aussage ist vollständig und wird korrekt verstandenAbgleich + fachliche Plausibilisierung
6Unterhalb des Vertrags (Framing/Transport)Der Defekt liegt vor jeder Semantik. Eine Regel wird auf einer Schicht verletzt, die kein Fachprotokoll prüft. Die Information kommt nie anausschließlich Bytestrom (Hexdump)

Die Kategorien 1 und 2 sind der Teil, den Monitoring und Validatoren abdecken. Sie sind nicht das Problem. Das Problem beginnt bei 3.

Der tragende Satz

Sichtbarkeit = Fehlerklasse × ACK-Vertrag × Strenge der Gegenstelle.

Alle drei Faktoren sind multiplikativ: Steht einer auf null, ist das Produkt null.

  • Die Fehlerklasse entscheidet, ob überhaupt etwas Auffälliges entsteht.
  • Der ACK-Vertrag wird vom Sender pro Nachricht gesetzt (in HL7 v2 über MSH-15/MSH-16). Steht dort NE, ist jede Fehlerklasse still, gleichgültig wie streng die Gegenstelle prüft.
  • Die Strenge der Gegenstelle entscheidet, ob aus einem Verstoß ein Abbruch wird oder eine stille Annahme.

Unter allen dreien liegt das Framing: Es entscheidet, was überhaupt als Nachricht gilt, bevor die anderen Faktoren etwas zu bewerten haben.

Die drei Abgrenzungen, die im Alltag tragen

3 gegen 5 — rät der Empfänger, oder folgt er korrekt? Bei 3 gibt es nichts korrekt zu verstehen: Die Aussage ist unterbestimmt, jede Reaktion ist eine Wahl. Auch stilles Verwerfen ist dann Raten. Bei 5 ist die Aussage vollständig und eindeutig — der Empfänger folgt ihr richtig, sie war nur nicht gemeint.

4 gegen 5 — falsche Verarbeitung oder falsche Aussage? Bei 4 liegt der Fehler auf der Empfängerseite in der Abbildung: Die richtige Information kommt an und landet am falschen Ort oder wird durch die falsche Wiederholung ersetzt. Bei 5 ist die Abbildung korrekt; der Sender hat die falsche Information geschickt, ohne es zu wissen.

NachrichtErgebnis beim EmpfängerMangel sitzt
4richtigfalschin der Übersetzung
5falschkorrekt abgeleitetim Inhalt der Aussage

Operativer Test, der ohne Nachdenken funktioniert: Kann man den Fall heilen, ohne den Sender anzufassen? Ja → 4, die Information ist da und wird nur falsch übersetzt. Nein → 5, die Information selbst ist falsch, und kein Empfänger kann das reparieren. Ausführlich am Beispiel: Der Zeitstempel ist zwei Aussagen.

3 gegen 4 — liegt der Mangel in der Nachricht oder in der Abbildung? Die schwerste der Abgrenzungen, weil beide Bilder gleich aussehen: Der Empfänger trifft auf etwas, das er nicht verwerten kann, und wählt. Entscheidend ist, gegen welches Dokument man die Nachricht liest. Bleibt sie gegen ihr eigenes Bezugsdokument gelesen unterbestimmt → 3, jede Wahl ist eine Erfindung. Ist sie dort eindeutig und nur der Empfänger deckt sie nicht ab → 4, die Abbildung ist unvollständig. Der Grenzfall entscheidet sich außerhalb der Nachricht: Existiert gar kein vereinbartes Bezugsdokument — undokumentierte Hausfassung, „das war schon immer so” —, gibt es keine Bedeutung, gegen die geprüft werden könnte, und derselbe Sachverhalt wird zu 3. Ausführlich: Das Z-Kürzel ist kein Namensraum.

Zusatz: der Stellvertreter. Existiert ein Bezugsdokument, das die fehlende Aussage nicht liefert, sondern durch einen Stellvertreter ersetzt — „nimm das erste Vorkommen”, „nimm den zuletzt empfangenen Satz” —, bleibt es 3. Das Papier dokumentiert dann, wie geraten wird, nicht was gilt. Eine solche Regel ist dabei oft maximal explizit und deterministisch ausführbar; ihr fehlt nicht Deutlichkeit, sondern Anbindung an eine bedeutungstragende Eigenschaft.

Ein Vertrag kann eine Aussage regeln, aber nicht erzeugen. Und daraus die Kurzform der Abgrenzung: Eine Abbildung kann nur falsch sein, wenn es etwas abzubilden gibt.

Zwei Formulierungen, die keine Ausschlussgründe für 4 sind, obwohl sie danach klingen: „Es wird abgebildet, was vereinbart wurde” — sonst wäre jede Strecke mit dokumentiertem Mapping automatisch keine Kategorie 4 mehr. Und „es gibt einen Abgleich Quelle ↔ Ziel” — das ist die Spalte Nachweis, die sich 3 und 4 teilen; sie kann nie zwischen ihnen entscheiden. Ausführlich am Beispiel: Der Identifier ist ein Paar.

Betriebsregel für Kategorie-3-Strecken. Wo ein Vertrag eine fehlende Aussage durch einen Stellvertreter ersetzt, hängt die Zuordnung an einer nicht zugesicherten Eigenschaft — also gehört genau dort ein Wächter hin: Wenn ein Vertrag eine Aussage regelt, aber nicht erzeugt, muss ein Nachweismechanismus unerwartete Änderungen im Datenstrom erkennen. Wichtig ist die Reihenfolge: Der Wächter schließt die Lücke nicht, er macht sie sichtbar. Erst die Aussage beschaffen, dann den Wächter setzen.

Eine Nachricht trägt nicht eine Kategorie, sondern pro Aussage eine. Ein wirksamer Defekt der einen Klasse und ein latenter Defekt einer anderen können in derselben Nachricht nebeneinander stehen — etwa ein falscher Wert in einem ausgewerteten Feld (5) und eine fehlende Festlegung in einem Kontrollfeld, die erst wirksam wird, wenn ein anderes Feld sie braucht (3). Praxisfolge: Wer nach „dem Fehler” sucht, findet den auffälligsten — und der auffälligste ist regelmäßig nicht der wirksame. Vor jeder Einordnung deshalb zählen, wie viele eigenständige Aussagen der Fall enthält.

„Wer entscheidet?” darf auch mit niemand beantwortet werden. Die Frage sucht die Stelle, an der ein System etwas tut, das die Nachricht nicht verlangt hat. Bei 3 und 4 gibt es sie immer. Bei 5 gibt es sie nicht: Der Empfänger liest, was dasteht, und liest es richtig. Wer die Frage als Formel behandelt und reflexhaft „der Empfänger” antwortet, verschiebt den Adressaten der Reparatur auf die Seite, die nichts falsch gemacht hat.

5 gegen 6 — kommt die Information an? Beide zeigen im Abgleich dasselbe Bild („Feld fehlt” oder „Feld steht falsch”). Der Unterschied liegt in der Ursache: Bei 5 ist sie fachlich und im Nachrichteninhalt sichtbar. Bei 6 ist sie nur im Bytestrom sichtbar — der Abgleich sagt dir, dass etwas fehlt, nie warum.

Schärfer gefasst: Bei 5 ist die Aussage vollständig und falsch. Bei 6 ist sie richtig und unvollständig — und die Unvollständigkeit ist am Ziel nicht feststellbar.

4 gegen 6 — ist die Information am Zielpunkt noch da? Die Abgrenzung wird gebraucht, sobald auf der Strecke etwas umgesetzt wird — eine Zeichensatzkonvertierung, eine Formatwandlung, ein Transcoder. Das sieht wie eine Abbildung aus und ist wörtlich eine, also drängt sich 4 auf. Entscheidend ist, was am Ende noch vorliegt.

Bei 4 ist die Information am Zielpunkt noch vorhanden, nur falsch abgebildet. Bei 6 ist sie nicht mehr vorhanden. Operativer Test: Kann eine Korrektur allein beim Empfänger den Fall aus der vorliegenden Nachricht heilen? Ja → höchstens 4. Nein → 6.

Dieselbe Linie trennt die beiden Schäden auf der Zeichensatzschicht: Mojibake ist im Ziel heilbar (4), Zeichenverlust nicht (6). Ausführlich: Zeichenverlust ist nicht Mojibake.

Der häufigste Einwand gegen Bedingung 2 von Kategorie 6 lautet „es kommt doch etwas an” und beruht auf einer Verwechslung: Kategorie 6 ist keine Aussage über die Nachricht, sondern über eine Information. Eine Nachricht kann vollständig ankommen, mit AA quittiert werden und trotzdem eine Information tragen, die nie abgeschickt wurde.

Und eine Konsequenz für den Adressaten: Bei 6 ist der Verursacher oft weder Sender noch Empfänger, sondern ein Verarbeitungsschritt dazwischen. Ein Kommunikationsserver ist kein Kabel — er hat eigene Konfiguration, eigenen Hersteller und eigenen Verantwortlichen und kommt in den meisten Schnittstellenkonzepten als Partei überhaupt nicht vor. Genau deshalb kann dort eine Produktvoreinstellung jahrelang eine Vertragslücke ausfüllen, ohne dass jemand sie unterschrieben hat.

Die Bedingungen einzeln prüfen

Kategorien haben Bedingungen, keine Stimmung. Der häufigste Zuordnungsfehler besteht darin, den Mechanismus richtig zu beschreiben und danach die Nummer nach Gefühl zu wählen.

KategorieBedingung 1Bedingung 2
3 Empfänger rätAussage ist unvollständig oder mehrdeutigEmpfänger muss wählen
4 Mapping-Fehlerbeide Seiten konformdie Abbildung ist falsch
5 Ungewollte Aussagebeide Seiten konformAussage vollständig und korrekt verstanden
6 Unterhalb des VertragsRegelverletzung auf ungeprüfter SchichtInformation kommt nie an

Zwei Formulierungen verraten die Antwort, bevor man sie sucht:

  • „Es fehlt der entscheidende Zusatz” oder „das steht da nicht” → die Aussage ist unvollständig → 3, nicht 5.
  • „Beide Seiten arbeiten korrekt” → prüfen, ob das für jede Schicht gilt. Meist gilt es nur für die gerade betrachtete.

Der vollständige Entscheidungsbaum steht im Diagnoseleitfaden, Schritt 5.

Zwei Prüffragen, die falsche Zuordnungen verhindern

„Konform wozu?” — Transport, Framing, Nachricht und Semantik haben je eigene Regeln. Der Satz „der Sender ist standardkonform” ist ohne Schichtangabe keine Aussage. Ein Sender kann eine wohlgeformte Nachricht in einen regelwidrigen Rahmen legen; dann ist er auf Nachrichtenebene konform und auf Transportebene nicht. Und: „Wir haben unverändert aus der Datenbank gesendet” ist kein Konformitätsnachweis, sondern eine Aussage über den Datenbankinhalt.

Die Gegenprobe: Ersetze den auffälligen Befund gedanklich durch die korrekte Variante — verschwindet das Symptom? Wenn nicht, hast du einen echten Befund gefunden, aber nicht die Ursache. Diese Frage trennt zuverlässig die Nebenbefunde von der Kausalkette.

Zwei Bedingungen, ohne die sie in die Irre führt. Erstens: Das Symptom vorher vollständig in seine Einzelteile zerlegen. Eine Meldung nennt oft zwei Beobachtungen („falscher Ort” und „falscher Eintrag in der Historie”); wer nur gegen die erste prüft, erklärt einen wirksamen Befund für wirkungslos. Zweitens: Es gibt drei Ergebnisklassen, nicht zwei — auffällig aber unwirksam, wirksam, und wirkungslos, weil der Empfänger das Feld gar nicht liest. Die dritte ist ein latenter Defekt: Er wird in dem Moment wirksam, in dem ein anderer Empfänger anfängt, das Feld auszuwerten, und fällt bis dahin in keinem Test auf.

Auffälligkeit ist eine Eigenschaft der Nachricht, Wirksamkeit eine Eigenschaft der Verarbeitung. Zwischen beiden liegt der Empfänger, und der entscheidet, was er liest. Deshalb kann man Wirksamkeit nicht ansehen, sondern nur prüfen.

Was Quittungen aussagen — und was nicht

Quittung ≠ Verarbeitung ≠ Richtigkeit ≠ Vollständigkeit.

Vier getrennte Zusagen, von denen ein Protokoll höchstens die ersten beiden abdeckt. Eine positive Quittung bewertet ausschließlich den Ausschnitt, den der Rahmen dem Empfänger übergeben hat — und ein stilles Verwerfen ist aus Sicht der quittierenden Anwendung eine erfolgreiche Verarbeitung.

Bezug zum Kahn-Framework

Die Kategorien beschreiben den Mechanismus, das Kahn-Framework die Ausprägung in den Daten. Beide zusammen ergeben eine vollständige Befundbeschreibung. Vollständige Darstellung mit allen sieben Ausprägungen, Beispielen und Messkennzahlen: Das Kahn-Framework in Schnittstellenstrecken.

Die Zuordnung ist n:m, nicht 1:1 — dieselbe Ursache erzeugt je nach Fall verschiedene Ausprägungen:

Fehlerkategorie (Ursache)Typische Kahn-Ausprägungen
1 TransportausfallCompleteness · Temporal Plausibility
2 Harter FehlerCompleteness (der Satz fehlt); der auslösende Verstoß selbst meist Value Conformance
3 Empfänger rätValue Conformance · Atemporal · Uniqueness Plausibility
4 Mapping-FehlerValue Conformance · Relational Conformance · Completeness
5 Ungewollte AussageAtemporal · Temporal Plausibility — selten Conformance, weil die Nachricht formal einwandfrei ist
6 Unterhalb des VertragsCompleteness · Temporal Plausibility

Ein Befund ohne beide Angaben ist unvollständig: „PV1 fehlt” (Completeness) sagt nichts über die Ursache, „Framing-Fehler” (Kategorie 6) nichts über die Auswirkung im Datenbestand. Dazu gehört als Drittes der Nachweisweg — womit wird es gezeigt.

Fragen an die Kunden-IT

  • Wie merkt ihr, dass eine Nachricht nicht verarbeitet wurde? Nennt bitte den konkreten Mechanismus, nicht das Werkzeug.
  • Gibt es einen regelmäßigen Abgleich Quelle ↔ Ziel auf Satzebene — oder verlasst ihr euch auf Quittungsquoten? (Letztere decken nur die Kategorien 1 und 2 ab.)
  • Was genau belegt euer Sendeprotokoll: Zustellung oder Verarbeitung? Woran lässt sich das im Protokoll unterscheiden?
  • Gab es in den letzten zwölf Monaten einen Fall, in dem Daten im Zielsystem fehlten, ohne dass irgendein Log etwas gemeldet hat? Wie ist er aufgefallen — und wodurch, nicht durch wen?
  • Wer bemerkt zuerst, wenn eine Strecke ausfällt: das Monitoring oder eine Station, die anruft?
  • Bei welcher der sechs Kategorien seid ihr sicher, sie zu sehen? Bei welcher sicher nicht?

Regel fürs Schnittstellenkonzept

Zu jeder Strecke ist festzuhalten, welche Fehlerkategorien auf ihr überhaupt sichtbar werden können und über welchen Nachweisweg. Kategorien, die auf keinem Weg sichtbar sind, sind kein Restrisiko, sondern eine offene Anforderung.


Abgrenzung 2 gegen 3 bis 6 — die Frage, die vor allen anderen steht

Die Kategorien 3 bis 6 haben eine gemeinsame, selten ausgesprochene Vorbedingung: Sie setzen alle voraus, dass die Nachricht angenommen und verarbeitet wurde. Ein Empfänger kann nur raten, falsch abbilden, eine ungewollte Aussage korrekt ausführen oder unterhalb des Vertrags beschädigt werden, wenn er die Nachricht überhaupt verarbeitet hat.

Wird eine Nachricht abgelehnt, ist die Einordnung 1 oder 2 — unabhängig davon, wie interessant die Ursache ist. Die Ursache beschreibt die Reparatur, nicht die Kategorie.

Daraus folgt die Reihenfolge, in der das Raster benutzt wird:

Erste Frage ist nicht „wo liegt der Fehler?”, sondern „ist die Nachricht angenommen worden?”

Abgrenzung 1 gegen 2: Bei 1 scheitert die Zustellung, es existiert kein Antwortdokument — der Beleg ist ein Netz- oder Namensauflösungsfehler. Bei 2 kommt die Anfrage an und wird begründet abgelehnt; es existiert eine Antwort, meist mit OperationOutcome oder ERR.

Und eine Eigenschaft, die Kategorie 2 von allen anderen unterscheidet:

Kategorie 2 ist die einzige Kategorie, deren Auftreten von der Datenlage abhängt statt vom Vertrag. Dieselbe Abbildung kann Wochen fehlerfrei laufen und an dem Tag brechen, an dem der erste Wert auftritt, der eine Typprüfung verletzt. Vorher ist der Defekt nicht abwesend, sondern unbeobachtet.

Trennlinie 3 gegen 4 — Inhalt oder Form

Bei 3 fehlt der Aussage etwas, das der Empfänger braucht, und er ergänzt es durch eine Wahl. Bei 4 ist die Aussage vollständig und liegt an einer Stelle, an der der Empfänger nicht nachsieht.

Kurzform: 3 ist ein Mangel im Inhalt, 4 ein Mangel in der Form.

Ein operativer Test, der die zweite Bedingung von 3 am Sachverhalt prüfbar macht:

Ein ratender Empfänger produziert ein falsches Ergebnis, kein leeres. Wo etwas Falsches angezeigt wird, hat jemand gewählt. Wo nichts angezeigt wird, hat niemand gewählt.

Das ist ein notwendiges, kein hinreichendes Merkmal — auch ein Mapping-Fehler kann Falsches produzieren. Aber wo eine Auswertung schlicht leer bleibt, ist Kategorie 3 ausgeschlossen.

Zum Bezugsdokument: Nach der Regel „existiert kein vereinbartes Bezugsdokument, fällt 3 und 4 zusammen” liegt der Gedanke nahe, ein schweigendes Schnittstellenkonzept lasse die Kategorie kippen. Das greift zu kurz:

Ein CapabilityStatement ist ein Bezugsdokument, auch wenn niemand es gelesen hat. Wo ein Schnittstellenkonzept zu einer Formfrage schweigt, kann die Zusage trotzdem woanders stehen — und dann ist sie vereinbart.

Offene Frage, nicht entschieden: Ein CapabilityStatement beschreibt, was ein Server tut, nicht, was ein Sender soll. Als Sendevorschrift taugt es streng genommen nicht. Wer daraus schließt, dass eine Formfrage ungeregelt bleibt, hat einen verteidigbaren Punkt — er muss dann allerdings zeigen, dass der Empfänger tatsächlich wählt, und daran scheitert die Einordnung als 3 unabhängig.

Offene Grundsatzfrage: ordnet das Raster nach Ursache oder nach Wirkung?

Die Frage ist mehrfach aufgelaufen und hier bewusst festgehalten, statt sie stillschweigend zu entscheiden.

Wirkungslesart: Ein harter Fehler ist ein harter Fehler — was ihn ausgelöst hat, ist eine Frage der Reparatur, nicht der Einordnung. Ursachenlesart: Dieselbe Ablehnung kann aus einer falschen Abbildung stammen, und die Abbildung ist der eigentliche Befund.

Dieses Raster ordnet nach Wirkung, und die Abgrenzung 2 gegen 3–6 oben ist die Konsequenz daraus. Die Ursachenlesart geht dabei nicht verloren: Sie steht in der Ersetzungsprobe und im Reparaturverdikt. Ein Befund hat eine Kategorie und eine Ursache, und beide gehören ins Ticket — nur eben in verschiedene Zeilen.

Lektüre & Belege