Inhaltsverzeichnis
1401 — Sollzeiten je Person und Datum
Dokumentation ins Wiki übernommen am 02.10.2026. Das ist keine Laufzeitabnahme.
Technische Referenz zum aktiven Programm eProgramm.ImpSollzeit. Sie beschreibt Eingänge, tatsächliche Schreibwirkung und Grenzen am genannten Quellenstand. Erreichbarer Aufruf statisch dokumentiert, nicht zur Laufzeit abgenommen.
Wichtig: ⚠ fehlender Return / Datum-Fallback 2099. Prüfe vor einem späteren Test die beschriebenen Fälle.
Aufruf und Parameter
Delegate: cSchnittSollzeit.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, vorhandene Datei. TextFieldParser ohne Encodingargument (DefaultUTF8/BOM), Semikolon,Trim=True,Quotes=True; zweimal erzeugt. Nur genau6 Felder und numerisches Feld1, andere Zeilen still übersprungen. Keine Satzart/Kopfzeile erforderlich; Textheader wird durch IsNumeric übersprungen.
| Position ab1 | Feld | Fallback |
|---|---|---|
| 1 | PersonID | Long/0 |
| 2 | Datum | 31.12.2099 |
| 3 | Sollzeit | Double/0 |
| 4 | von | 31.12.2099 |
| 5 | bis | 31.12.2099 |
| 6 | P | Double/0 |
Datums-/Zahlenformat kulturabhängig, Sollzeit-/P-Einheit nicht vom Parser bestätigt(Q15). Uhrzeitanteile beiDatum nicht abgeschnitten; kein von/bis-Plausibilitätscheck.
SQL und Schreibvertrag
InlineIF COUNT nach PersonID/exaktemDatum: fehlend→INSERT PersonID,Datum,Sollzeit,von,bis,P,UserID,ts; sonstUPDATE Sollzeit,von,bis,P,UserID,ts fürSchlüssel. UserID=Settings.Anmeldung.UserID,ts=GETDATE. KeinDELETE/SP/Calc/Archiv/Statusmarkierung/Fixierungsschutz. SchemaU539 PK(PersonID,Datum), Personen-FK seitU135; kein Anlegen fehlenderPersonen.
SQL-Zeilenfehler→resultFalse/Log, nächsteZeile; ReadFields/Parameterzuweisungen außerhalb SQL-Try können gesamten Rest beenden. Keine Transaktion,SQL30s; COUNT/INSERT-Race kann PK-Fehler ergeben. LOG/_ImportSchnitt_SollzeitCSV.log,beiFehler monatlichesFehler.log. 1401-F01: Ausführen ohneabschließendenReturn→False auch nachErfolg; Import selbst liefertresult. UngültigeDatumswerte können stattAblehnung2099-Zielzeilen erzeugen. KeinefachlicheTestbestätigung.
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 |
|---|---|---|---|---|---|
| 1401-D001 | Sollzeit.PersonID | SELECT/INSERT | Existenzmatch; Dateifelder1–2 | Genau6Felder/numerischePerson | B |
| 1401-D002 | Sollzeit.Datum | SELECT/INSERT | Existenzmatch; Dateifelder1–2 | Genau6Felder/numerischePerson | B |
| 1401-D003 | Sollzeit.Sollzeit | INSERT/UPDATE | Dateifelder3–6, Defaults beiUngültigkeit | JeSchlüssel | B |
| 1401-D004 | Sollzeit.von | INSERT/UPDATE | Dateifelder3–6, Defaults beiUngültigkeit | JeSchlüssel | B |
| 1401-D005 | Sollzeit.bis | INSERT/UPDATE | Dateifelder3–6, Defaults beiUngültigkeit | JeSchlüssel | B |
| 1401-D006 | Sollzeit.P | INSERT/UPDATE | Dateifelder3–6, Defaults beiUngültigkeit | JeSchlüssel | B |
| 1401-D007 | Sollzeit.UserID | INSERT/UPDATE | Anmeldung.UserID/GETDATE | JeSchlüssel | B |
| 1401-D008 | Sollzeit.ts | INSERT/UPDATE | Anmeldung.UserID/GETDATE | JeSchlüssel | B |
| 1401-D009 | Personen.PersonID | CONSTRAINT | VorhandenePerson erforderlich, FK | Sollzeit-INSERT | U135 |
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 | PEP4/ZW/Allgemein.vb |
| P, LEGACY:P | PEP4/cSchnittstellen/Programme/cProgramme.vb |
| PRJ | PEP4/cSchnittstellen/cSchnittstellen.vbproj |
| B | PEP4/cSchnittstellen/Programme/Schnittstellen/Generic/cSchnittSollzeit.vb |
| F | PEP4/cSchnittstellen/allgemein.vb |
| LOG | PEP4/ZW/cFehlerLog.vb |
| U135 | Sqlfiles/PEP4Update/update_0135.sql |
| U155 | Sqlfiles/PEP4Update/update_0155.sql |
| U539 | Sqlfiles/PEP4Update/update_0539.sql |
| LEGACY:INFO | PEP4/cTools/cInfoTools.vb |
| LEGACY:INIT | PEP4/ZW/Einstellungen/cSetting.vb |
| LEGACY:SET | PEP4/ZW/Einstellungen/cEinstellungenZw.vb |
| LEGACY:FN | Sqlfiles/PEP4Functions/fnUserId.sql |
Siehe auch: Übersicht der Schnittstellen. Keine Ausführung oder Fehlerkorrektur.