Inhaltsverzeichnis
Schnittstelle 1065: Krankenkassen aus Beitragssatz-XML übernehmen
Du übernimmst Kassenstammdaten aus einer XML-Datei in Krankenkassen. Der vorhandene Code importiert keine Beitragssätze.
Stand: 02.10.2026, statische Analyse von PEP4 Desktop, Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Statisch dokumentiert; Nutzerprüfung offen. Kein Schnittstellenlauf, Live-Schema- oder API-Test. Lokale PEP-Änderungen außerhalb dieser Schnittstellen wurden nicht einbezogen.
Zweck, Parameter und XML-Vertrag
PFAD: FileImport, XML-Dialog, bestehende Datei via SetFile. DataSet.ReadXml lädt ADR, DFUE und DAVBN. Kein CSV, keine Archivierung. Trotz Bezeichnung „Beitragssatzdatei“ schreibt dieser Code nur Kassenstammdaten, keine Beitragssätze.
| XML-Felder | Verwendung |
|---|
| ADR.ADR_ID | Rows.Find benötigt einen aus XML/XSD übernommenen Primärschlüssel; der Code setzt keinen |
| ADR.bn, nachfolge_bn | Betriebsnummer als ID; rekursive Suche des letzten Nachfolgers über bn |
| ADR.Kurzbezeichnung, gueltig_ab, gueltig_bis, kassenart | Bezeichnung, Gültigkeit und Art |
| DFUE.ADR_ID, gueltig_ab, DFUE_ID | neuestes gueltig_ab des letzten Nachfolgers, ohne Vergleich mit aktuellem Datum |
| DAVBN.DFUE_ID, bn | erste passende Annahme-Betriebsnummer |
SQL-Kette, Betrieb und Befunde
Keine Fach-SP: parameterisierter Inline-Upsert je ADR.bn, INSERT acht Felder, UPDATE aller Nutzfelder außer ID. SQL-Timeout fest3600. Keine Transaktion; ältere erfolgreich importierte Zeilen bleiben bei Folgefehler stehen. BASE-ExceptionHandler FehlerUndStopp, Rückgabe Fehlerfrei().
FindNachfolge hat keinen Zyklenschutz. Fehlende Nachfolge/DFUE/DAVBN wirft Exception. bis-Nullzweig prüft gueltig_ab statt gueltig_bis: fehlt ab, wird bis trotz vorhandenem Enddatum NULL. Schema0719: ID bigint PK, Bezeichnung varchar255, von NOT NULL, bis nullable, Art bigint (VB übergibt varchar), bis2 berechnet NULL→2099-12-31. Nachfolgespalten nullable. Keine Schlüssellöschung/-änderung, deshalb keine ITKrankenkasse-FK-Kaskade dieses Imports.
Q10: synthetisches XML/XSD mit Primärschlüssel und Nachfolge-/DFUE-Vertrag erforderlich. Zyklus, fehlendes ab/bis, zukünftige DFUE und wiederholte Imports isoliert prüfen.
Systemeinstellungen und gemeinsame Nebenwirkungen
Gemeinsamer Rückmeldepfad: cSchnitt_Basis mit bedingtem Logging, Mail-/Outbox- und Meldungs-API-Aufruf. MANUELL/SILENT und Rückmeldeschalter beeinflussen diesen Pfad; serverseitige API-Wirkungen bleiben offen.
Keine zusätzliche fachliche ZW-Einstellung im lokalen Importpfad gelesen. Timeoutwerte stehen im Betriebsabschnitt, nicht automatisch SQL_TIMEOUT zuordnen.
Nur belegte Profilzuordnung; Fachdaten und Rückmeldung sind nicht atomar. Defaults sind keine Livewerte.
Feldbeziehungen
Unqualifizierte Fachobjekte in der Anmeldedatenbank; Import.dbo ausdrücklich Importdatenbank. Dateifelder stehen separat im Dateivertrag.
| Beziehung | Tabelle.Feld | Operation | Datenfluss / Verwendung | Bedingung | Beleg |
|---|
| 1065-D001 | Krankenkassen.ID | SELECT/INSERT | ADR.bn; Upsert-Schlüssel | je ADR | B |
| 1065-D002 | Krankenkassen.IDNachfolge | INSERT/UPDATE | nachfolge_bn | je ADR | B,DDL |
| 1065-D003 | Krankenkassen.IDNachfolgeAktuell | INSERT/UPDATE | bn des letzten Nachfolgers | je ADR | B,DDL |
| 1065-D004 | Krankenkassen.Bezeichnung | INSERT/UPDATE | Kurzbezeichnung | je ADR | B,DDL |
| 1065-D005 | Krankenkassen.von | INSERT/UPDATE | gueltig_ab, sonst 2000-01-01 | je ADR | B,DDL |
| 1065-D006 | Krankenkassen.bis | INSERT/UPDATE | gueltig_bis, aber NULL-Zweig prüft ab | je ADR | B,DDL |
| 1065-D007 | Krankenkassen.Art | INSERT/UPDATE | kassenart; varchar→bigint | je ADR | B,DDL |
| 1065-D008 | Krankenkassen.bnAnnahmeAktuell | INSERT/UPDATE | DAVBN.bn zur neuesten DFUE | je ADR | B,DDL |
| 1065-D009 | Krankenkassen.bis2 | berechnet | NULL-bis → 2099-12-31 | Schema, nicht explizit geschrieben | DDL |
Quellen und weitere Schritte
Enum, aktive Registrierung, Projekteinschluss und die in der internen Einzelbeschreibung genannten VB-/SQL-Dateien wurden am Quellencommit geprüft. Konkrete fehlende Quellen und fachliche Fragen stehen oben; bei Tests benötigst du eine isolierte Umgebung und synthetische Dateien.