====== Schnittstelle 1082 – Bizerba-KASS-Dateien importieren ====== Die Schnittstelle **1082** liest Bizerba-KASS-Dateien aus einem Ordner, schreibt Kassenberichte und aktualisiert daraus vorhandene Umsatz-Tageszeilen. Sie schreibt **nicht** unmittelbar ''Umsätze.Ist'' oder ''IstNetto''. Vor jeder Datei wird die globale Stagingtabelle ''SCHNITT_Bizerba_KASS'' geleert. Die Datei wird vor dem fachlichen SQL-Lauf archiviert – auch nach einem intern protokollierten Lesefehler. Ein SQL-Fehler kann daher einen Teilstand und bereits verschobene Quelldateien hinterlassen. Verwende für Tests nur Dateikopien und eine isolierte Datenbank. ===== Eingangsordner und Dateiformat ===== ''PFAD'' ist ein vorhandener Ordner. PEP4 sucht nichtrekursiv Dateien nach dem Muster ''*KASS_UM'' und sortiert sie nach ''CreationTime''. ''StreamReader'' benutzt Standardencoding mit BOM-Erkennung. Zeilen werden schlicht bei Semikolon geteilt; Quotes, Escape-Zeichen, Kopfzeilen und Feldanzahl werden nicht gesondert behandelt. Mindestens 23 Felder sind für die verwendeten Positionen nötig. Leere Werte werden zu SQL-NULL; implizite Zahlenkonvertierung kann von der Laufzeitkultur abhängen. ^ Position ^ Stagingfeld ^ Fachliche Verwendung ^ | 1 | ''Systemnummer'' | Später ''KRKassenberichte.Filiale'', ohne Vorabmapping. | | 2 | ''Datum'' | Erwartetes Schema ''ddMMyyyy''; Berichtsdatum und Untergrenze des Folgelaufs. | | 3 | ''Kasse'' | Nur Staging. | | 4 | ''UmsatzGesamt'' | ''KRKassenberichte.Brutto'' = Wert / 100. | | 5–6 | Ignoriert | Keine Auswertung. | | 7 | ''UmsatzStorno'' **und** ''Soll'' | Derselbe Dateiwert wird beiden Stagingfeldern zugewiesen. | | 8 | ''Ausgaben'' | Nur Staging. | | 9–17 | Ignoriert | Keine Auswertung. | | 18–21 | ''Mwst1'' bis ''Mwst4'' | Nur Staging; keine Nettoberechnung. | | 22 | ''Nullbons'' | Nur Staging. | | 23 | ''Kunden'' | ''KRKassenberichte.Kunden''. | PEP4 verschiebt jede Datei in den Unterordner ''Archiv'' mit Zeitstempel im Namen. Diese Verschiebung ist nicht an einen erfolgreichen Abschluss der fachlichen Prozedur gekoppelt. ===== SQL-Datenfluss ===== ''SCHNITT_KR_BIZ_KASS'' löscht für Datum/Systemnummer der aktuellen Stagingdaten vorhandene ''KRKassenberichte'' mit ''SystemKennung=B'' und fügt neue Zeilen mit ''Nummer=0'', ''Filiale=Systemnummer'', ''Brutto=UmsatzGesamt/100'', ''Netto=0'' und ''Kunden'' ein. Es gibt keinen Filter auf einzelne Kassen. Mehrere Dateien derselben Filiale und desselben Tags können daher frühere Ergebnisse ersetzen. Danach aggregiert ''SCHNITT_KRUmsatzKassenberichtToGruppe'' Kassenberichte **aller** Systemkennungen ab dem kleinsten Stagingdatum. Über ''KRFilialenSystemkennung'' aktualisiert sie bestehende ''Umsätze.IstKassenBericht'', ''IstKassenBerichtNetto'' und ''Kunden''. Ohne passende Zielzeile entsteht kein neuer Umsatzdatensatz. Es gibt keinen ''IstFixed''- oder ''SRC''-Schutz und keine automatische Kopie in ''Umsätze.Ist''. Fehlende Summen werden nicht pauschal auf 0 gesetzt. ===== Einstellungen und Grenzen ===== ''SQL_TIMEOUT'' (Code-Default 60) steuert nur den Fach-SP-Aufruf, nicht das Leeren der Stagingtabelle und den Bulk-Import. ''KR_SCHNITT_BIZ_ZENTRALID'' und ''SCHNITT_APC_DSN'' werden in diesem Pfad nicht gelesen. Die gemeinsame Basis verwendet bedingt ''GLOBAL_LOGLEVEL'', ''GLOBAL_LOGLEVELEVLOG'', ''MAIL_SCHNITTSTELLEONSUCCESS'', ''MAIL_SCHNITTSTELLEONERROR'', ''SCHNITT_MELDUNG_SchnittstelleOnSuccess'', ''SCHNITT_MELDUNG_SchnittstelleOnError'' und beim Versand ''MAIL_SCHNITTSTELLETO'', ''MAIL_SMTP_SERVER'', ''MAIL_USER'', ''MAIL_PASS'', ''MAIL_USEDEFAULTCREDENTIALS'', ''MAIL_SSL'', ''MAIL_TESTADRESSE'', ''MAIL_FROM'' und ''MAIL_FROM_NAME''. Ein paralleler Lauf kann Daten im globalen Staging überschreiben. Die Dateiposition 7 wird doppelt zugewiesen; ''Mwst1'' bis ''Mwst4'' gehen nicht in den gespeicherten Nettowert ein. Archiviere und prüfe Dateien und Zieltabellen getrennt; ein Basis-Rückgabewert beweist keine vollständige Verarbeitung jeder Datei. ===== Technische Referenz ===== ^ Merkmal ^ Wert ^ | Programmkennung | ''1082'' / ''ImpBizerbaKass'' | | Einstieg | ''cSchnittKRBizerba.Import_KB'' | | Fachliche SQL-Kette | ''SCHNITT_KR_BIZ_KASS'' → ''SCHNITT_KRUmsatzKassenberichtToGruppe'' | | Fachliche Ausgänge | ''SCHNITT_Bizerba_KASS'' TRUNCATE/Bulk; ''KRKassenberichte'' DELETE/INSERT; ''Umsätze'' UPDATE | ===== Siehe auch ===== * [[schnittstellen:1078|Bizerba-WAK/WAP-Dateien (1078)]] * [[schnittstellen:1081|Kassenberichte in Kassengruppen berechnen (1081)]] * [[schnittstellen:schnittstellen|Übersicht der dokumentierten Schnittstellen]] ===== Prüfstand ===== Am 25.09.2026 aus der statischen Analyse des Quellcommits ''f1d82a003b62f2658f06eaa943dc685ab219bdf3'' übernommen. Analyse vom 18.09.2026; kein Importlauf oder produktiver Datenbankstand bestätigt.