Inhaltsverzeichnis

Schnittstelle 3032: Sports-Planumsatz aus CSV importieren

Dokumentation ins Wiki übernommen am 02.10.2026. Das ist keine Laufzeitabnahme.

Diese technische Referenz beschreibt die Eingänge, Datenwirkung und Ausgänge dieser Kennung im statisch geprüften Desktop-Quellenstand. Nutzerprüfung offen.

Dokumentiert / statisch geprüft: 2026-10-02. Statisch dokumentiert; Nutzerprüfung offen. Keine Schnittstelle ausgeführt.

Identität und Quellenstand

eProgramm.ImpUmsatzPlanSports = 3032. Aktive feste Registrierung → cSchnittUmsatzPlanSports.Ausführen (E,P). Projekteinschluss der genannten VB-Quellen geprüft (PRJ). Active=True, InAutomatik=true, ManuellerAufruf=true, NurAufServer=false. Kennzeichen beschreiben Registrierung/Defaults, nicht eingerichtete Jobs; Run selbst prüft keine Serverbindung.

seegerstefan/pep4desktop, master, Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Lokale .DS_Store-/cPep/PEP-Abweichungen nicht vermischt; Fachquellen cSchnittstellen/ZW/Sqlfiles unverändert. Kein Remote-/Installationsabgleich.

Zweck und Dateivertrag

PFAD: FileImport, Default nicht gesetzt, bestehende Einzeldatei erforderlich. TextFieldParser: Encoding.Default des Rechners, Semikolon, Quotes erlaubt, TrimWhiteSpace=True; erste physische Zeile immer übersprungen. Keine explizite Mindestfeldzahl; mindestens vier Felder für aktiven Zugriff nötig. CDate/CDbl/CLng sind kulturabhängig. Zusätzliche Felder ignoriert.

Position (1-basiert) Inhalt Verwendung
1 Abteilung, Long Teil des Zuordnungsschlüssels
2 Filiale, Long FilialAbteilung=(90000+Filiale)*1000+Abteilung
3 Datum, CDate Schnitt_UmsatzPlan.Datum
4 Planumsatz, CDbl Schnitt_UmsatzPlan.Umsatz

Datenfluss und SQL

Gesamte Schnitt_UmsatzPlan löschen → Einzel-INSERT(FilialAbteilung,Datum,Umsatz) → dbo.SCHNITT_UmsatzPlan_SP. Diese SP verknüpft UmsKstGr.Kst=FilialAbteilung, Gr=Umsätze.GruppenID und gültigen Tag; SUM(Plan*Prozent), UPDATE bestehender Umsätze.Umsatz. Kein INSERT fehlender Umsatztage, kein weiterer SP-/Calc-Aufruf. Fachwirkung nur an gelieferten/gemappten Tagen; Reset des Staging global.

Befunde

⚠ Zeilenfehler werden im leeren Catch geschluckt; die SP läuft auch nach Teil-/Parserfehler. Fixschutz ist IstFixed=0, nicht UmsatzFixed. Shared Ausführen hat am normalen Ende kein Return: Boolean ergibt False trotz möglicher Erfolgsmeldung. Keine Transaktion/Archivierung; Wiederholung verarbeitet dieselbe Datei erneut. Parser wird nicht zuverlässig geschlossen/disposed. SQL-Kommandos ohne Einstellungstimeout (Providerdefault30s); kein SQL_TIMEOUT-Einfluss behaupten.

Einstellungen und gemeinsame Nebenwirkungen

Gemeinsames Profil: LEGACY (interne Referenz).

Keine fachliche ZW-Einstellung im erreichbaren Einstieg nachgewiesen; gemeinsame Meldeeinstellungen nur über die ausdrücklich genannten Profile.

Defaults sind keine Livewerte. Melde-/Datei-/DB-Wirkungen sind nicht atomar.

Feldbeziehungen

DB-Rolle PEP4-Anmeldedatenbank, soweit nicht ausdrücklich Aprocon oder Import angegeben. Unqualifizierte Objektschemata nicht als Live-dbo-Vertrag behaupten. INSERT-Defaults/Computed-Spalten sind gesonderte Schemawirkung, kein explizites UPDATE.

Beziehung Tabelle.Feld Operation Datenfluss / Verwendung Bedingung Beleg
3032-D001 Schnitt_UmsatzPlan.— Zeilen DELETE Globaler Stagingreset vor Dateiimport B
3032-D002 Schnitt_UmsatzPlan.FilialAbteilung INSERT Positionen1/2 berechneter Schlüssel,3Datum,4Planwert gültige Zeile; Catch sonst leer B
3032-D003 Schnitt_UmsatzPlan.Datum INSERT Positionen1/2 berechneter Schlüssel,3Datum,4Planwert gültige Zeile; Catch sonst leer B
3032-D004 Schnitt_UmsatzPlan.Umsatz INSERT Positionen1/2 berechneter Schlüssel,3Datum,4Planwert gültige Zeile; Catch sonst leer B
3032-D005 Schnitt_UmsatzPlan.FilialAbteilung SELECT Staging → Gruppentag-Verteilung nach Import, auch bei Teilfehler SQL
3032-D006 Schnitt_UmsatzPlan.Datum SELECT Staging → Gruppentag-Verteilung nach Import, auch bei Teilfehler SQL
3032-D007 Schnitt_UmsatzPlan.Umsatz SELECT Staging → Gruppentag-Verteilung nach Import, auch bei Teilfehler SQL
3032-D008 UmsKstGr.Kst SELECT Quellschlüssel/Gruppe/Verteilung/Gültigkeit passender Datumstag SQL
3032-D009 UmsKstGr.Gr SELECT Quellschlüssel/Gruppe/Verteilung/Gültigkeit passender Datumstag SQL
3032-D010 UmsKstGr.Prozent SELECT Quellschlüssel/Gruppe/Verteilung/Gültigkeit passender Datumstag SQL
3032-D011 UmsKstGr.von SELECT Quellschlüssel/Gruppe/Verteilung/Gültigkeit passender Datumstag SQL
3032-D012 UmsKstGr.bis2 SELECT Quellschlüssel/Gruppe/Verteilung/Gültigkeit passender Datumstag SQL
3032-D013 Umsätze.GruppenID SELECT Zielmatch und Fixschutz IstFixed=0 SQL
3032-D014 Umsätze.Datum SELECT Zielmatch und Fixschutz IstFixed=0 SQL
3032-D015 Umsätze.IstFixed SELECT Zielmatch und Fixschutz IstFixed=0 SQL
3032-D016 Umsätze.Umsatz UPDATE SUM(Staging.Umsatz*Prozent) bestehendes gültig zugeordnetes Ziel SQL

Teststatus und Pflege

Keine Laufzeit-/Live-Schema-/Lieferformat-Abnahme, keine Codekorrektur. Q02 gilt für kundenspezifische Trigger/Constraints/DLLs/Jobs; weitere Grenzen siehe oben und Fragen (interne Referenz). Nicht indizierte Folgefelder einer Teilanalyse sind unbekannt, nicht wirkungslos.

Gemeinsame Nebenwirkungen LEGACY

Einstellungen

Beziehung Schlüssel / Variable Default Einfluss Wirkung Beleg
LEGACY-S001 GLOBAL_LOGLEVEL / GLOBAL_LOGLEVEL 50 Init → Info.LogLevel Meldung ab einschließlich Grenzwert in Datei/DB; verändert keine Fachdaten LEGACY:SET, LEGACY:INIT, LEGACY:INFO
LEGACY-S002 GLOBAL_LOGLEVELEVLOG / GLOBAL_LOGLEVELEVENTLOG 0 Init → Info.LogLevelEvLog Windows-Ereignisprotokoll nur bei Level > Grenze, Grenze > 0 und Level < 200 LEGACY:SET, LEGACY:INIT, LEGACY:INFO

Beide gezeigten Settings-Konstruktoren setzen AlwaysToFile=True. Oberhalb LogLevel werden Datei UND DB versucht; bei False nur DB, Datei als Fehlerfallback. Datei unter ApplicationData/PEP/LogFiles/yyyyMMdd_peplog.txt (Append). DB-Fehler werden als False abgefangen, verhindern nicht zwingend den Import. EventLog-Fehler werden geschluckt. Direkte Fachcommands des Block 07 setzen kein Timeout; SQL_TIMEOUT ist in diesen zehn Pfaden nicht gelesen. Keine zusätzliche fachliche ZW-Einstellung nachgewiesen, auch nicht in spCalcUmsatzPlan.

Datenbeziehungen

DB-Rolle PEP4-Anmeldedatenbank. Log schreibt über eigene Verbindung; nicht atomar mit Fachoperationen. fnUserId liest minimalen UserID zum rechten 25-Zeichen-Teil von SUSER_NAME(), sonst 0.

Beziehung Tabelle.Feld Operation Datenfluss / Verwendung Bedingung Beleg
LEGACY-D001 Pep3Log.UserID INSERT dbo.fnUserId() Meldungslevel erreicht DB-Log LEGACY:INFO, LEGACY:FN
LEGACY-D002 Pep3Log.Datum INSERT getdate() Meldungslevel erreicht DB-Log LEGACY:INFO
LEGACY-D003 Pep3Log.Kurz INSERT Kurztext, maximal 255 Zeichen Meldungslevel erreicht DB-Log LEGACY:INFO
LEGACY-D004 Pep3Log.LogText INSERT Detailtext einschließlich Pfad/ggf. Exception Meldungslevel erreicht DB-Log LEGACY:INFO
LEGACY-D005 Pep3Log.Modul INSERT Modulbezeichnung, maximal 50 Zeichen Meldungslevel erreicht DB-Log LEGACY:INFO
LEGACY-D006 Pep3Log.InfoLevel INSERT 51, 102 oder 105 je Meldung Meldungslevel erreicht DB-Log LEGACY:INFO
LEGACY-D007 tblUser.Name SELECT Abgleich RIGHT(SUSER_NAME(),25) fnUserId bei Log-INSERT LEGACY:FN
LEGACY-D008 tblUser.UserID SELECT MIN(UserID), fehlend → 0 fnUserId bei Log-INSERT LEGACY:FN

Quellenverzeichnis

Siehe auch: Übersicht der Schnittstellen. Keine Ausführung oder Codekorrektur.