Inhaltsverzeichnis
Schnittstelle 6005: Feiertage berechnen — Filialkalender neu setzen
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.CalcFeiertage = 6005. Aktive feste Registrierung → cProgramme.FeiertageBerechnen (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.
Parameter und Voraussetzungen
JAHR (NumberLong), numerisch direktInteger, fehlend/ungültig bleibt0; jedesJahr<2000 auf heute.Jahr+Wert umrechnen. FeiertageEintragen kehrt sofortFalse zurück, wenn ZW.TagesartFeiertag<1. Wrapper ignoriert diese Rückgabe und meldet dennoch ErfolgTrue. Direkte Dialog-/Logmeldungen, keine BASE-Mail/API und keine Dateien.
Eingänge und Kalenderberechnung
Aktive Filialen mit LaenderFeiertage nach Filialen.Land: FilialID, Filialen.TagesartFeiertag und LaenderFeiertage.Feiertag/Jahr. ProFiliale gilt gültige Tagesart aus vorhandenem ReMo.lTagesArten-Cache oder Fallback FEIERTAG. Feiertagsklasse berechnet benannte Termine lokal aus Jahr; Land bleibt beim Objekt leer (=gesamter benannter Katalog). Welche Feiertage der Filiale gelten, steuert deshalb die Land-/Feiertag-Zuordnung in DB, keine externe Rechts-/Kalenderquelle.
JeFiliale zuerst vorhandene Kalenderzeilen des gewählten Jahres und der gewählten Feiertags-Tagesart löschen, auch wenn die LaenderFeiertage-Zeilen für ein anderes Jahr gelten. Für Jahr0 oder passendesJahr je Feiertag: vorhandenen FilialKalender-Tag unabhängig von bisherigerTagesart löschen, neueZeile(Filiale,Datum,TagesArt,Kommentar,tsGETDATE,UserIDfnUserID) anfügen. Kommentar max30. Kein allgemeiner Zeit-/PEP-Rechenlauf oder SP; fnUserID liest tblUser.
Befunde / Abnahme
⚠ Breiter Tagesersatz überschreibt andere Kalendertagesarten. Helper hat amEnde keinenBoolean-Return(False), Wrapper wertet ihn nicht aus. cFeiertag.Koningsdag berechnet result, gibt ihn aber nicht zurück; für FeiertagKONIGS kann Datumsdefault in Ausgabe gelangen. Oster-Sonderkorrektur testet gleichzeitig e=28 und e=6 (unerreichbar). Sonstige Feiertagsregeln hier als Code, nicht als rechtsverbindlichen Kalender dokumentiert. Q19: gewünschte Tagesart-/Jahresregel, Feiertagskürzel und synthetische Termine prüfen.
Einstellungen und gemeinsame Nebenwirkungen
Gemeinsames Profil: LEGACY (interne Referenz).
| Beziehung | Schlüssel / Variable | Default | Einflussweg | Wirkung | Beleg |
|---|---|---|---|---|---|
| 6005-S001 | FEIERTAG / TagesartFeiertag | −1 | FeiertageEintragen | <1 überspringt gesamten Lauf; Fallback bei fehlender/ungültiger filialbezogenerTagesart | B,CHECK,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 |
|---|---|---|---|---|---|
| 6005-D001 | Filialen.FilialID | SELECT | AktiveFiliale undgültigeFeiertags-Tagesart/Fallback | InnerJoin LaenderFeiertage | CHECK |
| 6005-D002 | Filialen.Land | SELECT | AktiveFiliale undgültigeFeiertags-Tagesart/Fallback | InnerJoin LaenderFeiertage | CHECK |
| 6005-D003 | Filialen.aktiv | SELECT | AktiveFiliale undgültigeFeiertags-Tagesart/Fallback | InnerJoin LaenderFeiertage | CHECK |
| 6005-D004 | Filialen.TagesartFeiertag | SELECT | AktiveFiliale undgültigeFeiertags-Tagesart/Fallback | InnerJoin LaenderFeiertage | CHECK |
| 6005-D005 | LaenderFeiertage.Land | SELECT | BenannteFeiertage; Jahr0odergewähltesJahr | JeaktiveFiliale | CHECK |
| 6005-D006 | LaenderFeiertage.Feiertag | SELECT | BenannteFeiertage; Jahr0odergewähltesJahr | JeaktiveFiliale | CHECK |
| 6005-D007 | LaenderFeiertage.Jahr | SELECT | BenannteFeiertage; Jahr0odergewähltesJahr | JeaktiveFiliale | CHECK |
| 6005-D008 | TagesArten.ID | SELECT | Mitgliedschaft im vorhandenen ReMo-Cache prüft Filialen.TagesartFeiertag | Kein neues SQL-Laden imProgramm; Cacheherkunft belegt | RM |
| 6005-D009 | FilialKalender.Filiale | SELECT | Löschfilter Jahr/Tagesart oderexakterTag | GewählteFiliale | CHECK |
| 6005-D010 | FilialKalender.Datum | SELECT | Löschfilter Jahr/Tagesart oderexakterTag | GewählteFiliale | CHECK |
| 6005-D011 | FilialKalender.Tagesart | SELECT | Löschfilter Jahr/Tagesart oderexakterTag | GewählteFiliale | CHECK |
| 6005-D012 | FilialKalender.— Zeilen | DELETE | AlteFeiertagsart imJahr, danach einzelneFeiertagstage unabhängigTagesart | Keine Transaktion | CHECK |
| 6005-D013 | FilialKalender.Filiale | INSERT | BerechnetesDatum/Bezeichnung,gewählteTagesart,GETDATE,fnUserID | Landzuordnung Jahr0/passend | CHECK |
| 6005-D014 | FilialKalender.Datum | INSERT | BerechnetesDatum/Bezeichnung,gewählteTagesart,GETDATE,fnUserID | Landzuordnung Jahr0/passend | CHECK |
| 6005-D015 | FilialKalender.Tagesart | INSERT | BerechnetesDatum/Bezeichnung,gewählteTagesart,GETDATE,fnUserID | Landzuordnung Jahr0/passend | CHECK |
| 6005-D016 | FilialKalender.Kommentar | INSERT | BerechnetesDatum/Bezeichnung,gewählteTagesart,GETDATE,fnUserID | Landzuordnung Jahr0/passend | CHECK |
| 6005-D017 | FilialKalender.ts | INSERT | BerechnetesDatum/Bezeichnung,gewählteTagesart,GETDATE,fnUserID | Landzuordnung Jahr0/passend | CHECK |
| 6005-D018 | FilialKalender.UserID | INSERT | BerechnetesDatum/Bezeichnung,gewählteTagesart,GETDATE,fnUserID | Landzuordnung Jahr0/passend | CHECK |
| 6005-D019 | tblUser.Name | SELECT | MIN(UserID) zuRIGHT(SUSER_NAME(),25),sonst0 | fnUserID | USER |
| 6005-D020 | tblUser.UserID | SELECT | MIN(UserID) zuRIGHT(SUSER_NAME(),25),sonst0 | fnUserID | USER |
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 |
| CHECK | PEP4/ZW/cDatencheck.vb |
| CALENDAR | PEP4/ZW/Hilfsklassen/cFeiertag.vb |
| RM | PEP4/ZW/cRechenmodell.vb |
| USER, LEGACY:FN | Sqlfiles/PEP4Functions/fnUserId.sql |
| SET, LEGACY:SET | PEP4/ZW/Einstellungen/cEinstellungenZw.vb |
| D453 | Sqlfiles/PEP4Update/update_0453.sql |
| D602 | Sqlfiles/PEP4Update/update_0602.sql |
| LEGACY:INFO | PEP4/cTools/cInfoTools.vb |
| LEGACY:INIT | PEP4/ZW/Einstellungen/cSetting.vb |
Siehe auch: Übersicht der Schnittstellen. Keine Ausführung oder Codekorrektur.