Du übernimmst Kundenfrequenzen je StoreID, Tür und Zeit. Je geliefertem StoreID-Tag ersetzt der Import alle vorhandenen Türen.
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.
PFAD: Folder. DirectoryInfo.GetFiles mit Systemeinstellung SCHNITT_EASINET_FILEPATTERN; keine Sortierung. Keine Treffer→False. Ordnerermittlung vor Import-Try, ungültiger Pfad kann ungefangen abbrechen. Modul der Start-/Endemeldung heißt abweichend cSchnittHiltesFrequenz.
TextFieldParser ohne Encodingargument (UTF8-Standard/BOM), Komma, Quotes, TrimWhiteSpace. Kein explizites Headerüberspringen; StoreID muss numerisch sein, so wird gewöhnlicher Header ignoriert. Mindestens acht Felder:
| Position ab1 | Inhalt |
|---|
| 1 | StoreID als Long |
| 2–3 | ungenutzt |
| 4 | Datum, kulturabhängige DateTime-Konvertierung |
| 5 | Location, Ziel Tuer auf15 Zeichen gekürzt |
| 6 | Zeit hh:mm, Stunden Substring0/2, Minuten3/2 |
| 7–8 | CustIn/CustOut zuerst Int16, obwohl DB float |
Keine Fach-SP. Zuerst ganze Datei in Speicher laden. Dann je StoreID/Tag DELETE sämtlicher Türen in FilialeFrequenz für über Filialen.EASiNetID gemappte Filialen. INSERT aller Dateizeilen, Mapping kann0 oder mehrere Zielzeilen liefern. Keine UPDATEs, keine Transaktion; unbekannte StoreID ergibt still0 Inserts. Wiederholung neuer Identitys. Mehrere Dateien mit gleichem Tag ersetzen einander in unbestimmter Reihenfolge.
Schema0426: ID Identity PK, Filiale FK, Datum NOT NULL, Tuer varchar15, KundenIn/Out float. SQL-Command Default30, kein SQL_TIMEOUT. Danach nach imported verschieben; vorhandenes gleichnamiges Archiv wird nicht gelöscht, MoveTo-Fehler liefert False obwohl Daten schon geschrieben sind. Importcatch meldet Fehler.
Int16 kann bei großen/negativen Frequenzen überlaufen; alle Türen eines Tages gelöscht auch bei Teillieferung. Tagesformat/hh:mm, Grenzwert32767, Mapping0/mehrfach, Mehrdateireihenfolge und Archivkollision isoliert prüfen. Kein direkter Umsatz-/Stundentabellenaufruf.
Direkte Dialog-/Logmeldungen über cInfoTools; keine belegte BASE-Mail-/API-Ausführung. GLOBAL_LOGLEVEL (Default50) und GLOBAL_LOGLEVELEVLOG (Default0) steuern die Protokollierung.
| Beziehung | Schlüssel / Variable | Default | Einflussweg | Wirkung | Beleg |
|---|
| 1070-S001 | SCHNITT_EASINET_FILEPATTERN / SCHNITTEASiNetFilePattern | *.csv | DirectoryInfo.GetFiles | Dateiauswahl; Reihenfolge nicht festgelegt | B,SET |
Nur belegte Profilzuordnung; Fachdaten und Rückmeldung sind nicht atomar. Defaults sind keine Livewerte.
Unqualifizierte Fachobjekte in der Anmeldedatenbank; Import.dbo ausdrücklich Importdatenbank. Dateifelder stehen separat im Dateivertrag.
| Beziehung | Tabelle.Feld | Operation | Datenfluss / Verwendung | Bedingung | Beleg |
|---|
| 1070-D001 | Filialen.FilialID | SELECT | Ziel-FilialID über EASiNetID | Keine eindeutige Zuordnung erzwungen | B |
| 1070-D002 | Filialen.EASiNetID | SELECT | StoreID Dateifeld1 | Mapping | B |
| 1070-D003 | FilialeFrequenz.— Zeilen | DELETE | Alle Türen des gelieferten Tages für alle StoreID-gemappten Filialen | Vor allen Datei-INSERTs | B |
| 1070-D004 | FilialeFrequenz.Filiale | INSERT | FilialID nach Mapping | alle validierten Dateizeilen | B |
| 1070-D005 | FilialeFrequenz.Tuer | INSERT | Location links15 | alle validierten Dateizeilen | B |
| 1070-D006 | FilialeFrequenz.Datum | INSERT | Datum + hh:mm | alle validierten Dateizeilen | B |
| 1070-D007 | FilialeFrequenz.KundenIn | INSERT | CustIn (Int16→float) | alle validierten Dateizeilen | B |
| 1070-D008 | FilialeFrequenz.KundenOut | INSERT | CustOut (Int16→float) | alle validierten Dateizeilen | B |
| 1070-D009 | FilialeFrequenz.ID | INSERT (Identity) | DB erzeugt neue Identität | Schema0426 | DDL |
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.