Inhaltsverzeichnis
Schnittstelle 6002: FS-Anspruch — freie Samstage berechnen
Dokumentation ins Wiki übernommen am 02.10.2026. Das ist keine Laufzeitabnahme.
Diese technische Referenz beschreibt die Eingänge, Datenwirkung und Ausgänge dieser Kennung im statisch geprüften Desktop-Quellenstand. Nutzerprüfung offen.
Dokumentiert / statisch geprüft: 2026-10-02. Statisch dokumentiert; Nutzerprüfung offen. Keine Schnittstelle ausgeführt.
Identität und Quellenstand
eProgramm.CalcFs = 6002. Aktive feste Registrierung → cProgramme.CalcFS (E,P). Projekteinschluss der genannten VB-Quellen geprüft (PRJ). Active=True, InAutomatik=true, ManuellerAufruf=false, NurAufServer=false. Kennzeichen beschreiben Registrierung/Defaults, nicht eingerichtete Jobs; Run selbst prüft keine Serverbindung.
seegerstefan/pep4desktop, master, Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Lokale .DS_Store-/cPep/PEP-Abweichungen nicht vermischt; Fachquellen cSchnittstellen/ZW/Sqlfiles unverändert. Kein Remote-/Installationsabgleich.
Zweck und Parameter
JAHR (NumberLong). Numerisch → CLng; <2000 als relativer Versatz auf aktuelles Jahr; ungültig False. Fehlender Schlüssel lässt Jahr0, anders als vorhandener Wert0 (aktuelles Jahr). cCalcUrlaub.CalcFS beendet bei Jahr<2011 ohne Wirkung. Keine Dateien, direkte Dialog-/Logmeldungen, keine BASE-Mail/API. Nach fehlerfrei zurückkehrendem Sub meldet äußere Funktion ErfolgTrue.
Tatsächliche Auswahl und Berechnung
Wrapper übergibt PersonenListe=-1. Helper SELECT Personen WHERE PersonID IN(-1), ohne '-1'=alle-Sonderfall. Daher nur etwaige Person−1, übliche positive Personen werden nicht ausgewählt. Nicht denselben Urlaubshelper6001-Vertrag übernehmen!
Für ausgewählte Person: ITZeit mit FS/HatFsAnspruch, von/bis, Eintritt/Austritt/Befristung auf Jahresfenster beschneiden, gewichtetes FS /Jahrestage und Int(+0.5). Die Tagesmaske t wird aber vor jeder Person auf0 gesetzt; der auskommentierte Monate-Aufruf füllt sie nicht. Somit Summe FS*t=0 bei regulär lesbaren Daten, selbst für Person−1. Kein ZW-Einstellungsschlüssel aus auskommentiertem Monate-Aufruf ableiten.
SQL-Ausgänge und Befunde
Direkter DELETE FSAnspruch für Person/Jahr/Art1, dann INSERT(Jahr,Person,Anspruch0,Art1,KommentarFS), keine Transaktion/UPDATE. IdentityID; Defaults tsGETDATE/UserID=RIGHT(SUSER_NAME(),10) in versioniertem Ausgangsschema (Installation Q02); kein frischer Benutzervertrag behauptet.
⚠ Person−1 statt alle und leere Tagesmaske; fehlender JAHR-Schlüssel kann wirkungslos Erfolg liefern. Diese Kennung derzeit nicht als verlässliche FS-Neuberechnung empfehlen. Fachabsicht/Ersatzkennung und synthetischer Test Q19, keine Sourcekorrektur.
Einstellungen und gemeinsame Nebenwirkungen
Gemeinsames Profil: LEGACY (interne Referenz).
Keine fachliche ZW-Einstellung im erreichbaren Einstieg nachgewiesen; gemeinsame Meldeeinstellungen nur über die ausdrücklich genannten Profile.
Defaults sind keine Livewerte. Melde-/Datei-/DB-Wirkungen sind nicht atomar.
Feldbeziehungen
DB-Rolle PEP4-Anmeldedatenbank, soweit nicht ausdrücklich Aprocon oder Import angegeben. Unqualifizierte Objektschemata nicht als Live-dbo-Vertrag behaupten. INSERT-Defaults/Computed-Spalten sind gesonderte Schemawirkung, kein explizites UPDATE.
| Beziehung | Tabelle.Feld | Operation | Datenfluss / Verwendung | Bedingung | Beleg |
|---|---|---|---|---|---|
| 6002-D001 | Personen.PersonID | SELECT | NurID IN(-1); Befristung begrenztAustritt | Jahr>=2011 | U |
| 6002-D002 | Personen.Eintritt | SELECT | NurID IN(-1); Befristung begrenztAustritt | Jahr>=2011 | U |
| 6002-D003 | Personen.Austritt | SELECT | NurID IN(-1); Befristung begrenztAustritt | Jahr>=2011 | U |
| 6002-D004 | Personen.EndeBefristung | SELECT | NurID IN(-1); Befristung begrenztAustritt | Jahr>=2011 | U |
| 6002-D005 | ITZeit.PersonenStammID | SELECT | FS-Gewichtung mitNullmaske | Nur ausgewähltePerson | U |
| 6002-D006 | ITZeit.von | SELECT | FS-Gewichtung mitNullmaske | Nur ausgewähltePerson | U |
| 6002-D007 | ITZeit.bis | SELECT | FS-Gewichtung mitNullmaske | Nur ausgewähltePerson | U |
| 6002-D008 | ITZeit.FS | SELECT | FS-Gewichtung mitNullmaske | Nur ausgewähltePerson | U |
| 6002-D009 | ITZeit.HatFsAnspruch | SELECT | FS-Gewichtung mitNullmaske | Nur ausgewähltePerson | U |
| 6002-D010 | FSAnspruch.Person | SELECT | DELETE-Schlüssel | AusgewähltePerson/Jahr/Art1 | U |
| 6002-D011 | FSAnspruch.Jahr | SELECT | DELETE-Schlüssel | AusgewähltePerson/Jahr/Art1 | U |
| 6002-D012 | FSAnspruch.Art | SELECT | DELETE-Schlüssel | AusgewähltePerson/Jahr/Art1 | U |
| 6002-D013 | FSAnspruch.— Zeilen | DELETE | Art1-Anspruch ersetzen | AusgewähltePerson | U |
| 6002-D014 | FSAnspruch.Jahr | INSERT | Jahr/Person/0/1/FS | NachDELETE; kein Gesamtallpersonenlauf | U |
| 6002-D015 | FSAnspruch.Person | INSERT | Jahr/Person/0/1/FS | NachDELETE; kein Gesamtallpersonenlauf | U |
| 6002-D016 | FSAnspruch.Anspruch | INSERT | Jahr/Person/0/1/FS | NachDELETE; kein Gesamtallpersonenlauf | U |
| 6002-D017 | FSAnspruch.Art | INSERT | Jahr/Person/0/1/FS | NachDELETE; kein Gesamtallpersonenlauf | U |
| 6002-D018 | FSAnspruch.Kommentar | INSERT | Jahr/Person/0/1/FS | NachDELETE; kein Gesamtallpersonenlauf | U |
| 6002-D019 | FSAnspruch.ID | IDENTITY | NeueID | INSERT D0089 | D089 |
| 6002-D020 | FSAnspruch.ts | DEFAULT | GETDATE/RIGHT(SUSER_NAME(),10) | Versioniertes Ausgangsschema; LiveAbnahme offen | D100 |
| 6002-D021 | FSAnspruch.UserID | DEFAULT | GETDATE/RIGHT(SUSER_NAME(),10) | Versioniertes Ausgangsschema; LiveAbnahme offen | D100 |
Teststatus und Pflege
Keine Laufzeit-/Live-Schema-/Lieferformat-Abnahme, keine Codekorrektur. Q02 gilt für kundenspezifische Trigger/Constraints/DLLs/Jobs; weitere Grenzen siehe oben und Fragen (interne Referenz). Nicht indizierte Folgefelder einer Teilanalyse sind unbekannt, nicht wirkungslos.
Gemeinsame Nebenwirkungen LEGACY
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 |
Quellenverzeichnis
| Kürzel | Quelldatei am geprüften Commit |
|---|---|
| E | PEP4/ZW/Allgemein.vb |
| P, LEGACY:P | PEP4/cSchnittstellen/Programme/cProgramme.vb |
| PRJ | PEP4/cSchnittstellen/cSchnittstellen.vbproj |
| B | PEP4/cSchnittstellen/Programme/Programme/cProgramme.vb |
| U | PEP4/ZW/cCalcUrlaub.vb |
| D089 | Sqlfiles/PEP4Update/update_0089.sql |
| D100 | Sqlfiles/PEP4Update/update_0100.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 Codekorrektur.