Inhaltsverzeichnis

Schnittstelle 1070: EASiNet-Kundenfrequenzen importieren

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.

Zweck, Parameter und Dateivertrag

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

SQL-Kette und Schreibverhalten

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.

Befunde und Tests

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.

Systemeinstellungen und gemeinsame Nebenwirkungen

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.

Feldbeziehungen

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

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.

Übersicht der Schnittstellen