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

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