====== Schnittstelle 3030 – Planumsatz aus Datei übernehmen ====== Die Schnittstelle **3030** ersetzt ''Umsätze.Umsatz'' in bereits vorhandenen Tageszeilen. Anschließend berechnet ''dbo.spCalcUmsatzPlan'' Summengruppen im ermittelten Importzeitraum neu. Es werden keine neuen Umsatzzeilen angelegt. Die Nachberechnung ist nicht auf Gruppen der Datei begrenzt. Sie kann importierte Summengruppenwerte erneut ersetzen und andere Summengruppen auf 0 setzen. Der direkte Datei-UPDATE prüft weder ''IstFixed'' noch ''UmsatzFixed''; die Stored Procedure prüft nur ''IstFixed=0''. Teste den Lauf zuerst mit einer Datenbankkopie. ===== Eingabedatei ===== ''PFAD'' verlangt eine vorhandene Datei. Der Dialogfilter lässt CSV-, TXT- und PEP-Dateien zu. Der Parser liest mit Systemzeichensatz, Semikolon, Leerraumkürzung und Anführungszeichen für eingeschlossene Felder. Eine Kopfzeile wird nicht ausdrücklich übersprungen. Nur Zeilen mit Satzart ''3030'' und mindestens vier Feldern werden übernommen. ^ Position ^ Inhalt ^ Verarbeitung ^ | 1 | Satzart | Exakt ''3030''. | | 2 | Gruppe | ''CLng'', für ''Umsätze.GruppenID''. | | 3 | Datum | ''CDate''; Zeitanteil bleibt erhalten. | | 4 | Planumsatz | ''CDbl'', für ''Umsätze.Umsatz''. | Zahlen und Datumswerte werden kulturabhängig gelesen. Ungültige Zeilen können still übersprungen werden. Die Datei bleibt liegen; sie wird nicht archiviert. ===== Datenfluss und SQL ===== PEP4 lädt akzeptierte Zeilen in die lokale Tabelle ''#Umsatz(Gruppe, Datum, UPlan)''. Ein ''UPDATE'' verbindet ''Gruppe'' und den vollständigen ''Datum''-Wert mit vorhandenen ''Umsätze''-Zeilen und ersetzt dort ''Umsatz''. Ohne passende Zielzeile passiert nichts; ein Zeitanteil kann den Treffer verhindern. Doppelte Schlüssel in der Datei haben keinen zuverlässig bestimmten „letzten Gewinner“. Nach dem Leeren der temporären Tabelle ruft PEP4 ''dbo.spCalcUmsatzPlan'' mit dem aus eingelesenen Zeilen ermittelten Intervall auf. Die Prozedur liest ''PepGruppen.AusPepGruppenUmsatz'' und gültige Zuordnungen aus ''UmsKstGr'' (''Kst'', ''Gr'', ''von'', ''bis2'', ''Prozent''). Sie schreibt für Summengruppen erneut ''Umsätze.Umsatz'' als gewichtete Summe; ohne Quelle wird 0 gesetzt. Weitere fachliche SPs oder Systemeinstellungsabfragen sind dort nicht belegt. ===== Ergebnis und Grenzen ===== Es gibt keine gemeinsame Transaktion über Datei-UPDATE und Nachberechnung. Ein Fehler der Prozedur rollt den ersten Schritt nicht zurück. Auch nach einem abgefangenen Parserfehler kann ein Teilbestand aktualisiert werden. Die Intervallstartwerte 31.12.2099 und 01.01.1999 machen leere Dateien oder Daten außerhalb dieser Grenzen problematisch. ''Ausführen'' liefert im untersuchten Code unabhängig vom fachlichen Ergebnis ''False''; prüfe die Werte direkt. ===== Technische Referenz ===== ^ Merkmal ^ Wert ^ | Programmkennung | ''3030'' / ''ImpUmsatzPlan'' | | Einstieg | ''cSchnittUmsatzPlan.Ausführen'' | | Fachliche Eingänge | Datei; bestehende ''Umsätze''; ''PepGruppen''; ''UmsKstGr'' | | Fachlicher Ausgang | UPDATE von ''Umsätze.Umsatz''; kein INSERT/DELETE von Umsatzzeilen | | Stored Procedure | ''dbo.spCalcUmsatzPlan'' | | Systemeinstellungen | ''GLOBAL_LOGLEVEL'' und ''GLOBAL_LOGLEVELEVLOG'' nur für Protokolle (Code-Defaults 50/0); keine direkte fachliche ZW-Einstellung. | ===== Siehe auch ===== * [[schnittstellen:3040|Istumsatz aus Datei übernehmen (3040)]] * [[schnittstellen:3020|Umsatz-Kostenstellenzuordnungen (3020)]] * [[schnittstellen:schnittstellen|Übersicht der dokumentierten Schnittstellen]] ===== Prüfstand ===== Am 25.09.2026 statisch gegen den Quellcommit ''f1d82a003b62f2658f06eaa943dc685ab219bdf3'' geprüft. Kein Importlauf oder produktives Schema bestätigt.