Benutzer-Werkzeuge

Webseiten-Werkzeuge


schnittstellen:6001

Schnittstelle 6001: Urlaubsanspruch — aktuelles Jahr und Folgejahr 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.CalcUrlaub = 6001. Aktive feste Registrierung → cProgramme.CalcUrlaub (E,P). Projekteinschluss der genannten VB-Quellen geprüft (PRJ). Active=True, InAutomatik=true, ManuellerAufruf=true, 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

Keine fachlichen Laufparameter oder Dateien. cProgramme ruft cCalcUrlaub.CalcUrlaub(Settings,heute.Jahr,-1) und dasselbe für Jahr+1 auf. Direkte Meldungen, keine BASE-Mail/API. Äußerer Fehler False, sonst Erfolg True. Keine gemeinsame Transaktion über Personen/Jahre.

Eingänge und Berechnung

RMUrlaub(ID,Rundung,Art,BasisTage,VollNachSechsMonaten,BefristungBeachten) und RMUrlaubAlter(RMUrlaub,BeschaeftigungJahre,AlterJahre,Urlaub) füllen die Anspruchsmatrix. VollNachSechsMonaten wird geladen, nicht bei dieser Berechnung angewendet. Personen mit RMUrlaub nichtNULL: PersonID/GebDat/Eintritt/Austritt/EndeBefristung/RMUrlaub. Vorhandener Art1-Anspruch desselben Jahres kann über MAX(RMUrlaub) den Personenstandard überschreiben.

ITZeit-RMAZPlanID am jüngsten von⇐Jahresende bestimmt Verhältnis der im ReMo-Cache aus RMAZPlan.TageUrlaub geladenen Urlaubstage zu RMUrlaub.BasisTage; fehlendes Modell oder BasisTage0 → Faktor1. Urlaubberechtigte ITZeit-Zeiträume (HatUrlaubsanspruch1) bilden Tagesmaske; Eintritt/Austritt und optional Befristung begrenzen. CALC_URLAUB_TAGEMONAT: −1 anteiliger Monat, −2 zweite Monatshälfte komplett,0 ganzer Monat, sonst Mindesttage. Aktive Tage und Monate werden aufs Jahr verteilt.

Alter am01.01.Jahr; Betriebszugehörigkeit Variante1 volleJahre am01.01., Variante2 Jahresdifferenz; Bereich0..120. Tarifmatrix × Wochenfaktor × Monate/12. ITSonderurlaub(von/bis/Sonderurlaub) tagegewichtet über dieselbe Maske, anschließend ebenfalls Faktor. Rundung je RMUrlaub.Rundung:1 auf,2 kaufmännisch,3 ab mit CALC_URLAUB_RUNDUNG Nachkommastellen;4 halbe Tage; sonst unverändert. Rundungshelpers im cFn, keine DB-Wirkung.

Ausgang und SQL

Direkte parametrisierte UPDATE/INSERT-Befehle, keine Fach-SP. SELECT verwendet dbo.fnVarcharToList('-1') oder Liste='-1': hier wirklich alle Personen; UDF schreibt nur lokale Rückgabetabelle.

Je Person/Jahr Art1 Tarif und Art2 Sonderurlaub: UPDATE UrlaubsAnspruch.Anspruch bei Person/GültigVon01.01.Jahr/Art; nur wenn keine Zeile und Anspruch>0 INSERT(GültigVon,Person,Anspruch,Art,TypU,KommentarUrlaub,RMUrlaub). Bestehender Nullanspruch bleibt Zeile mit0, alte RMUrlaub/Kommentar/Typ werden im UPDATE nicht verändert. GültigBis wird nicht gesetzt, computed GültigBis2 fällt auf2099 zurück. Defaults beim INSERT: tsGETDATE,AbtragungZ/P0,UserIDNULL nach0550; keine aktuelle ID/Jahr-Spalte nach0743. Kein allgemeiner Calc-ZW/PEP-Lauf gestartet.

Befunde

⚠ Sonderurlaub-nur-Art2-Zweig ist innerhalb des äußeren Art=1-Blocks und dadurch unerreichbar; RMUrlaub.Art2 erhält hier keine Berechnung. VollNachSechsMonaten ungenutzt. Index120 wird für Alter120 nicht berechnet (Alter<120). Zwei Jahre/Teilfehler ohne Transaktion, überlappende ITZeit-Modellzeilen können scalar SELECT scheitern. Synthetische Anspruchs-/Befristungs-/Rundungsabnahme Q19; Code nicht korrigiert.

Einstellungen und gemeinsame Nebenwirkungen

Gemeinsames Profil: LEGACY (interne Referenz).

Beziehung Schlüssel / Variable Default Einflussweg Wirkung Beleg
6001-S001 CALC_URLAUB_TAGEMONAT / CALCUrlaubTageMonat 0 cPerson.Monate Monatsanteilsregel anhand ITZeit-Tagesmaske U,SET
6001-S002 CALC_URLAUB_RUNDUNG / CALC_UrlaubRundung 0 Rundungshelpers Nachkommastellen bei RM-Rundung1/2/3 U,SET
6001-S003 CALC_UrlaubsKontingent_Betriebzugehörigkeit_Art / CALC_UrlaubsKontingent_Betriebzugehörigkeit_Art 1 Anspruchsmatrix 1 volle Jahre am01.01.,2 Jahresdifferenz U,SET

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
6001-D001 RMUrlaub.ID SELECT Urlaubsmodell; VollNachSechsMonaten nur geladen, ungenutzt Beide Jahre U
6001-D002 RMUrlaub.Rundung SELECT Urlaubsmodell; VollNachSechsMonaten nur geladen, ungenutzt Beide Jahre U
6001-D003 RMUrlaub.Art SELECT Urlaubsmodell; VollNachSechsMonaten nur geladen, ungenutzt Beide Jahre U
6001-D004 RMUrlaub.BasisTage SELECT Urlaubsmodell; VollNachSechsMonaten nur geladen, ungenutzt Beide Jahre U
6001-D005 RMUrlaub.BefristungBeachten SELECT Urlaubsmodell; VollNachSechsMonaten nur geladen, ungenutzt Beide Jahre U
6001-D006 RMUrlaub.VollNachSechsMonaten SELECT Urlaubsmodell; VollNachSechsMonaten nur geladen, ungenutzt Beide Jahre U
6001-D007 RMUrlaubAlter.RMUrlaub SELECT Matrix vonAlter/Betriebszugehörigkeit Beide Jahre U
6001-D008 RMUrlaubAlter.BeschaeftigungJahre SELECT Matrix vonAlter/Betriebszugehörigkeit Beide Jahre U
6001-D009 RMUrlaubAlter.AlterJahre SELECT Matrix vonAlter/Betriebszugehörigkeit Beide Jahre U
6001-D010 RMUrlaubAlter.Urlaub SELECT Matrix vonAlter/Betriebszugehörigkeit Beide Jahre U
6001-D011 Personen.PersonID SELECT Anspruchsberechtigte Stammdaten, allePersonen mitRMUrlaub Liste=-1 Sonderfall ist korrekt umgesetzt U
6001-D012 Personen.GebDat SELECT Anspruchsberechtigte Stammdaten, allePersonen mitRMUrlaub Liste=-1 Sonderfall ist korrekt umgesetzt U
6001-D013 Personen.Eintritt SELECT Anspruchsberechtigte Stammdaten, allePersonen mitRMUrlaub Liste=-1 Sonderfall ist korrekt umgesetzt U
6001-D014 Personen.Austritt SELECT Anspruchsberechtigte Stammdaten, allePersonen mitRMUrlaub Liste=-1 Sonderfall ist korrekt umgesetzt U
6001-D015 Personen.EndeBefristung SELECT Anspruchsberechtigte Stammdaten, allePersonen mitRMUrlaub Liste=-1 Sonderfall ist korrekt umgesetzt U
6001-D016 Personen.RMUrlaub SELECT Anspruchsberechtigte Stammdaten, allePersonen mitRMUrlaub Liste=-1 Sonderfall ist korrekt umgesetzt U
6001-D017 Urlaubsanspruch.Person SELECT VorhandenesModell Art1 imJahr / UPDATE-Match MAX(RMUrlaub) U
6001-D018 Urlaubsanspruch.GültigVon SELECT VorhandenesModell Art1 imJahr / UPDATE-Match MAX(RMUrlaub) U
6001-D019 Urlaubsanspruch.Art SELECT VorhandenesModell Art1 imJahr / UPDATE-Match MAX(RMUrlaub) U
6001-D020 Urlaubsanspruch.RMUrlaub SELECT VorhandenesModell Art1 imJahr / UPDATE-Match MAX(RMUrlaub) U
6001-D021 ITZeit.PersonenStammID SELECT Stichtagsmodell und Urlaubberechtigungsmaske Jahresgrenzen U
6001-D022 ITZeit.von SELECT Stichtagsmodell und Urlaubberechtigungsmaske Jahresgrenzen U
6001-D023 ITZeit.bis SELECT Stichtagsmodell und Urlaubberechtigungsmaske Jahresgrenzen U
6001-D024 ITZeit.RMAZPlanID SELECT Stichtagsmodell und Urlaubberechtigungsmaske Jahresgrenzen U
6001-D025 ITZeit.HatUrlaubsanspruch SELECT Stichtagsmodell und Urlaubberechtigungsmaske Jahresgrenzen U
6001-D026 RMAZPlan.ID SELECT Vorhandener ReMo-Cache: TageJeWocheUrlaub; kein frischer SQL-Ladevorgang im Programm Cache laden separat; Herkunft belegt RM
6001-D027 RMAZPlan.TageUrlaub SELECT Vorhandener ReMo-Cache: TageJeWocheUrlaub; kein frischer SQL-Ladevorgang im Programm Cache laden separat; Herkunft belegt RM
6001-D028 ITSonderurlaub.PersonenStammID SELECT Tagegewichteter Sonderurlaub Ein-/Austritts-/Jahresgrenzen U
6001-D029 ITSonderurlaub.von SELECT Tagegewichteter Sonderurlaub Ein-/Austritts-/Jahresgrenzen U
6001-D030 ITSonderurlaub.bis SELECT Tagegewichteter Sonderurlaub Ein-/Austritts-/Jahresgrenzen U
6001-D031 ITSonderurlaub.Sonderurlaub SELECT Tagegewichteter Sonderurlaub Ein-/Austritts-/Jahresgrenzen U
6001-D032 Urlaubsanspruch.Anspruch UPDATE TarifArt1/SonderArt2 VorhandenerPerson/01.01.Jahr/Art U
6001-D033 Urlaubsanspruch.GültigVon INSERT 01.01.Jahr/Tarif oderSonder/U/Urlaub/Modell Nurfehlend undAnspruch>0 U
6001-D034 Urlaubsanspruch.Person INSERT 01.01.Jahr/Tarif oderSonder/U/Urlaub/Modell Nurfehlend undAnspruch>0 U
6001-D035 Urlaubsanspruch.Anspruch INSERT 01.01.Jahr/Tarif oderSonder/U/Urlaub/Modell Nurfehlend undAnspruch>0 U
6001-D036 Urlaubsanspruch.Art INSERT 01.01.Jahr/Tarif oderSonder/U/Urlaub/Modell Nurfehlend undAnspruch>0 U
6001-D037 Urlaubsanspruch.Typ INSERT 01.01.Jahr/Tarif oderSonder/U/Urlaub/Modell Nurfehlend undAnspruch>0 U
6001-D038 Urlaubsanspruch.Kommentar INSERT 01.01.Jahr/Tarif oderSonder/U/Urlaub/Modell Nurfehlend undAnspruch>0 U
6001-D039 Urlaubsanspruch.RMUrlaub INSERT 01.01.Jahr/Tarif oderSonder/U/Urlaub/Modell Nurfehlend undAnspruch>0 U
6001-D040 Urlaubsanspruch.ts DEFAULT GETDATE/0/0 INSERT nachSchema D100,D743
6001-D041 Urlaubsanspruch.AbtragungZ DEFAULT GETDATE/0/0 INSERT nachSchema D100,D743
6001-D042 Urlaubsanspruch.AbtragungP DEFAULT GETDATE/0/0 INSERT nachSchema D100,D743
6001-D043 Urlaubsanspruch.GültigBis2 COMPUTED ISNULL(GültigBis,31.12.2099) GültigBis nicht gesetzt D744

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

Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
schnittstellen/6001.txt · Zuletzt geändert: von codex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki