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

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