Inhaltsverzeichnis

1400 — Arbeitszeiten aus Satzarten1401/1402

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

Technische Referenz zum aktiven Programm eProgramm.ImpZeitbuchungen. Sie beschreibt Eingänge, tatsächliche Schreibwirkung und Grenzen am genannten Quellenstand. Erreichbarer Aufruf statisch dokumentiert, nicht zur Laufzeit abgenommen.

Wichtig: ⚠ fehlender Return / Löschen aller Korrekturvarianten. Prüfe vor einem späteren Test die beschriebenen Fälle.

Aufruf und Parameter

Delegate: cSchnittZeitbuchungen.Ausführen. Active=True, Automatik=true, ManuellerAufruf=true, NurAufServer=false. Registrierung/Defaults, keine bestätigten Jobs. Run prüft die Serverbindung nicht selbst.

Parameter Dialogtyp Fester Wert DefaultValue
PFAD FileImport nicht fest nicht gesetzt

MAILTO und der von RunWithDialog gesetzte MANUELL-Schlüssel sind Registrierung/Dialogzustand, keine ZW-Einstellung. Eine Auswertung durch die Basis ist nur bei ausdrücklich belegtem BASE-Pfad anzunehmen.

Ein-/Ausgänge und Dateivertrag

PFAD FileImport, vorhandene Datei. TextFieldParser ohne Encodingargument (DefaultUTF8/BOM), Semikolon, Trim=True, Quotes=True. Parser wird zweimal erzeugt, erste Instanz nicht ordentlich entsorgt. Keine Kopfzeilen-/Feldzahlprüfung.

Position ab1 Inhalt Typ / Fallback
1 1401=Anfügen,1402=Löschen Satzarten, nicht Programmkennungen
2 PersonID Long/0
3 Kommen Datumzeit/0
4 Gehen Datumzeit/0
5 Kennzeichen Long/0
6 Korrektur, nur1401 Double/0

Datum-Fallback0 ist alsObject in datetime-Parameter gegeben; erfolgreiche Konvertierung nicht zugesichert. Kulturabhängige IsDate/IsNumeric-Parser(F).1401 braucht6,1402 fünf Felder; unbekannte Satzarten ignoriert.

SQL und Betrieb

1401 IF COUNT auf Person/Kommen/Gehen/Kennzeichen/Korrektur=0→INSERT dieser fünf Felder. Unterschiedliche Korrekturen sind damit neue Zeilen, keine Aktualisierung.1402 DELETE nach Person/Kommen/Gehen/Kennzeichen ohne Korrektur, löscht alle passenden Korrekturvarianten. Keine eigene Transaktion/SP/Statusmarkierung/Calc/Archivierung; SQL30s.

Arbeitszeiten.ID Identity; Manuell default1,Zeitereignisse0,Korrektur0,weitere Defaults lautSchema(U89/U99), nicht explizit als Anwendungsänderung gesetzt. FK aufPersonen undKennzeichen verlangt vorhandene IDs(U90); Filiale wird nicht gesetzt.

SQL-Zeilenfehler werden geloggt und spätere Zeilen verarbeitet; Felderzugriff/Konvertierung undReadFields außerhalb SQL-Try können Restdatei abbrechen. LOG/yyyyMMdd_HHmmss_ImportSchnitt_ZeitbuchungenCSV.log; beiFehler zusätzlich monatliches Fehler.log über cFehlerLog, kein Fach-DB-Log daraus. 1400-F01: äußeres Ausführen ohneReturn→False trotz möglicher Erfolgsmeldung. Import selbst liefertresult. Wiederholungsschutz COUNT/INSERT nicht atomar; keine Berechnungsmeldung aus Direktimport ableiten. Liefer-/EinheitenfragenQ15.

Direkte Einstellungen

Keine direkte fachliche ZW-Einstellung in diesem Einstiegsteil nachgewiesen; Einstellungen der belegten gemeinsamen Pfade folgen unten.

Direkte Feldbeziehungen

Beziehung Tabelle.Feld Operation Datenfluss / Verwendung Bedingung Beleg
1400-D001 Arbeitszeiten.Person SELECT COUNT-Match für1401, Korrektur Teil des Matches Satz1401 B
1400-D002 Arbeitszeiten.Kommen SELECT COUNT-Match für1401, Korrektur Teil des Matches Satz1401 B
1400-D003 Arbeitszeiten.Gehen SELECT COUNT-Match für1401, Korrektur Teil des Matches Satz1401 B
1400-D004 Arbeitszeiten.Kennzeichen SELECT COUNT-Match für1401, Korrektur Teil des Matches Satz1401 B
1400-D005 Arbeitszeiten.Korrektur SELECT COUNT-Match für1401, Korrektur Teil des Matches Satz1401 B
1400-D006 Arbeitszeiten.Person INSERT Dateifelder2–6 bei fehlendem exaktem Match Satz1401 B
1400-D007 Arbeitszeiten.Kommen INSERT Dateifelder2–6 bei fehlendem exaktem Match Satz1401 B
1400-D008 Arbeitszeiten.Gehen INSERT Dateifelder2–6 bei fehlendem exaktem Match Satz1401 B
1400-D009 Arbeitszeiten.Kennzeichen INSERT Dateifelder2–6 bei fehlendem exaktem Match Satz1401 B
1400-D010 Arbeitszeiten.Korrektur INSERT Dateifelder2–6 bei fehlendem exaktem Match Satz1401 B
1400-D011 Arbeitszeiten.— Zeilen DELETE Person/Kommen/Gehen/Kennzeichen, alle Korrekturvarianten Satz1402 B
1400-D012 Personen.PersonID CONSTRAINT Personen-FK, keine Anlage Arbeitszeiten-INSERT U90
1400-D013 Kennzeichen.Kennzeichen CONSTRAINT Kennzeichen-FK, keine Anlage Arbeitszeiten-INSERT U90

Direkte Rückmeldung und Logging (LEGACY)

Nur Info-/Logmeldungen, kein BASE-Start/Ende und keine daraus abgeleitete Mail/API. Dialoge hängen von SupressDialogs ab. Benutzerzuordnung über fnUserId/tblUser. Logging ist nicht mit dem Fachimport atomar; Defaults sind keine Livewerte.

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

Quellen und Prüfstand

Geprüft am02.10.2026 gegen master, Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Kein aktueller Installations-/Live-Schema-/DLL-/Jobabgleich. Aprocon bezeichnet die externe Datenbankrolle, keinen bestätigten Schemanamen. Defaults/Computed-Spalten sind gesonderte Schemawirkung. Q02:Installationsgrenze; Q11:offene Motoranalyse; Q13/Q15:Liefer-/Einheiten-/Ersatzverträge.

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