====== 1320 — Generische Zeitereignisse (Satzart2005) ====== Dokumentation ins Wiki übernommen am **02.10.2026**. Das ist keine Laufzeitabnahme. Technische Referenz zum aktiven Programm eProgramm.ImpZeitereignisseBase. Sie beschreibt Eingänge, tatsächliche Schreibwirkung und Grenzen am genannten Quellenstand. Erreichbarer Aufruf statisch dokumentiert, nicht zur Laufzeit abgenommen. **Wichtig:** ⚠ fehlender Return / nicht atomarer Ereignisersatz. Prüfe vor einem späteren Test die beschriebenen Fälle. ===== Aufruf und Parameter ===== Delegate: ''cSchnittZeitereignisse.Ausführen''. Active=True, Automatik=false, 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, Datei erforderlich; Value.ToString vor Try. Encoding.Default, Semikolon, Trim=True, Quotes=True, kein Headerüberspringen. Aktive Satzart **2005**, nicht Programm-ID1320. Andere Satzarten ignoriert; keine Feldzahlprüfung. ^ Position ab1 ^ Inhalt ^ Konvertierung ^ | 1 | Satzart2005 | exakter Textmatch | | 2 | PersonID | StrToLng, leer/ungültig→0 | | 3 | Datum mit Uhrzeit | StrToDate, leer/ungültig→31.12.2099 | | 4 | Terminal | Long, Fallback0 | | 5 | Kennzeichen | Long, Fallback0 | | 6 | Kennung | varchar1-Parameter | | 7 | Filiale | Long, Fallback0 | Mindestens7 Felder im2005-Pfad; zusätzliche ignoriert. Keine Transponderauflösung/Terminal-/Filialmapping: direkte IDs aus Datei. ===== SQL und Schreibverhalten ===== Je Satz Inline-Batch: DELETE Zeitereignisse nach PersonID/exaktem Datum/Kennung **ohne Terminal/Filiale/Kennzeichenfilter**; dann INSERT PersonID,Datum,Terminal,Kennzeichen,Kennung,Filiale,ts=GETDATE,USERID=-2. Danach CStatus nur für dieselbe Person/Tag und aktives gültiges ITZeit bei CStatus<=0 auf1,ts=GETDATE. Keine SP/Calc/Archivierung, SQL30s, keine Transaktion. FK auf Personen/Filialen können ungültige Ersatzwerte verhindern; alte passende Ereignisse können bereits gelöscht sein. Catch um ganze Dateischleife setzt bolFehler, ohne Exceptiondetail; Parser-Fehler kann Restdatei abbrechen. Import liefert Not bolFehler. **1320-F01:** registriertes Ausführen hat keinen abschließenden Return und liefertBooleanFalse auch nach Erfolgsmeldung. Wiederholung ersetzt Zeilen statt append-only; atomarer Ersatz nicht zugesichert. Synthetische Dateiprüfung Q15. ===== 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 ^ | 1320-D001 | ''Zeitereignisse.PersonID'' | SELECT | DELETE-Match, unabhängig von Terminal/Filiale/Kennzeichen | Satz2005 | B | | 1320-D002 | ''Zeitereignisse.Datum'' | SELECT | DELETE-Match, unabhängig von Terminal/Filiale/Kennzeichen | Satz2005 | B | | 1320-D003 | ''Zeitereignisse.Kennung'' | SELECT | DELETE-Match, unabhängig von Terminal/Filiale/Kennzeichen | Satz2005 | B | | 1320-D004 | ''Zeitereignisse.— Zeilen'' | DELETE | Alle Ereignisse des Person/Datum/Kennung-Schlüssels | Vor Ersatz-INSERT, keine Transaktion | B | | 1320-D005 | ''Zeitereignisse.PersonID'' | INSERT | Dateifelder2–7 | Satz2005 | B | | 1320-D006 | ''Zeitereignisse.Datum'' | INSERT | Dateifelder2–7 | Satz2005 | B | | 1320-D007 | ''Zeitereignisse.Terminal'' | INSERT | Dateifelder2–7 | Satz2005 | B | | 1320-D008 | ''Zeitereignisse.Kennzeichen'' | INSERT | Dateifelder2–7 | Satz2005 | B | | 1320-D009 | ''Zeitereignisse.Kennung'' | INSERT | Dateifelder2–7 | Satz2005 | B | | 1320-D010 | ''Zeitereignisse.Filiale'' | INSERT | Dateifelder2–7 | Satz2005 | B | | 1320-D011 | ''Zeitereignisse.ts'' | INSERT | GETDATE und -2 | Satz2005 | B | | 1320-D012 | ''Zeitereignisse.USERID'' | INSERT | GETDATE und -2 | Satz2005 | B | | 1320-D013 | ''CStatus.PersonenStammID'' | SELECT | Person-/Tagfilter,CStatus<=0 | Gültiges aktives ITZeit | B | | 1320-D014 | ''CStatus.Datum'' | SELECT | Person-/Tagfilter,CStatus<=0 | Gültiges aktives ITZeit | B | | 1320-D015 | ''CStatus.CStatus'' | SELECT | Person-/Tagfilter,CStatus<=0 | Gültiges aktives ITZeit | B | | 1320-D016 | ''ITZeit.PersonenStammID'' | SELECT | CStatus-Gültigkeit | Tag der importierten Person | B | | 1320-D017 | ''ITZeit.von'' | SELECT | CStatus-Gültigkeit | Tag der importierten Person | B | | 1320-D018 | ''ITZeit.bis2'' | SELECT | CStatus-Gültigkeit | Tag der importierten Person | B | | 1320-D019 | ''ITZeit.IsAktiv'' | SELECT | CStatus-Gültigkeit | Tag der importierten Person | B | | 1320-D020 | ''CStatus.CStatus'' | UPDATE | 1/GETDATE | Nur vorhandene passende Statuszeilen | B | | 1320-D021 | ''CStatus.ts'' | UPDATE | 1/GETDATE | Nur vorhandene passende Statuszeilen | B | | 1320-D022 | ''Personen.PersonID'' | CONSTRAINT | FK verlangt vorhandene Person, kein Anwendungs-SELECT | INSERT | U90 | | 1320-D023 | ''Filialen.FilialID'' | CONSTRAINT | FK verlangt vorhandene Filiale, kein Mapping | 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. ^ Kürzel ^ Quelldatei am Commit ^ | E | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/ZW/Allgemein.vb|PEP4/ZW/Allgemein.vb]] | | P, LEGACY:P | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cSchnittstellen/Programme/cProgramme.vb|PEP4/cSchnittstellen/Programme/cProgramme.vb]] | | PRJ | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cSchnittstellen/cSchnittstellen.vbproj|PEP4/cSchnittstellen/cSchnittstellen.vbproj]] | | B | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cSchnittstellen/Programme/Schnittstellen/Generic/cSchnittZeitereignisse.vb|PEP4/cSchnittstellen/Programme/Schnittstellen/Generic/cSchnittZeitereignisse.vb]] | | F | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cSchnittstellen/allgemein.vb|PEP4/cSchnittstellen/allgemein.vb]] | | U89 | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Update/update_0089.sql|Sqlfiles/PEP4Update/update_0089.sql]] | | U90 | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Update/update_0090.sql|Sqlfiles/PEP4Update/update_0090.sql]] | | LEGACY:INFO | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cTools/cInfoTools.vb|PEP4/cTools/cInfoTools.vb]] | | LEGACY:INIT | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/ZW/Einstellungen/cSetting.vb|PEP4/ZW/Einstellungen/cSetting.vb]] | | LEGACY:SET | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/ZW/Einstellungen/cEinstellungenZw.vb|PEP4/ZW/Einstellungen/cEinstellungenZw.vb]] | | LEGACY:FN | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Functions/fnUserId.sql|Sqlfiles/PEP4Functions/fnUserId.sql]] | Siehe auch: [[schnittstellen:schnittstellen|Übersicht der Schnittstellen]]. Keine Ausführung oder Fehlerkorrektur.