Inhaltsverzeichnis

Schnittstelle 8100: Reminder für Personaltermine erstellen

Dokumentiert / statisch geprüft: 2026-10-02. Statisch dokumentiert; Nutzerprüfung offen. Keine Schnittstelle ausgeführt.

Identität und Quellenstand

eProgramm.ReminderErstellen = 8100. Aktive feste Registrierung → cProgramme.Reminder (E,P). Registrierung und erreichbare Quellen geprüft; installierte Binärdateien ungeprüft. 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.

Ablauf und Termine

Keine Schnittstellenparameter, kein Eingangs-/Ausgangsfile, keine SP, keine Mail. cProgramme.Reminder ruft cReminder.CreateReminder auf. Die Boolean-Rückgaben enthalten kein Return: Helfer und Wrapper ergeben auch nach erfolgreicher Verarbeitung False. Abgefangene Helferfehler werden nicht hochgereicht; Modulname ist irrtümlich cProgramme.WochenPlanToZwRahmen.

Geburtstag wird zum nächsten Jahrestermin berechnet (DateSerial kann 29. Februar verschieben), Auswahl innerhalb Beschäftigung. Jubiläum zusätzlich Personen.Aktiv. Eintritt/Austritt nur heute bis Vorlauf, ohne Aktivprüfung. Probezeit/Befristung ebenso, aber Datum strikt kleiner als Austritt. NULL-Eintritt/-Austritt entsprechen MinValue/MaxValue. Jahreslisten -1 oder Semikolonwerte; Alter über cFn.Alter.

Neue Reminder nur falls Stichtag/RKind/Person fehlt. RKind:1 Geburtstag,2 Jubiläum,3 Eintritt,4 Austritt,5 Probezeit,6 Befristung. Betreff Name/Termin auf50, Bodyleer, UserCreated0. Kein Update bestehender Betreffe, kein Löschen erledigter/veralteter Zeilen.

Folgeänderung und Fehler

Anschließend ChangeRemindTimeSpan für ALLE ungeprüften Reminder je Art, auch deaktivierte Arten. Negativer Vor-/Nachlauf setzt jeweilige Grenze NULL. Fehler: Befristung.RemindTo wird aus REMINDER_GEB_TageNachlauf berechnet, nicht REMINDER_BEFRISTUNG_TageNachlauf. Keine Transaktion über gesamten Lauf, SQL-Standardtimeout; parallele Existenzprüfung/INSERT kann doppeln. PopUp-/Timer-/CheckMail-Schlüssel betreffen nicht diesen Einstieg.

Einstellungen und gemeinsame Nebenwirkungen

Gemeinsames Profil: LEGACY (interne Referenz).

Beziehung Schlüssel / Variable Default Einflussweg Wirkung Beleg
8100-S001 REMINDER_GEB / REMINDER_Geb True CreateReminder Neue Erinnerungen dieser Art aktivieren R,ZW
8100-S002 REMINDER_GEB_TageVorlauf / REMINDER_Geb_TageVorlauf 30 CreateReminder/ChangeRemindTimeSpan Auswahlfenster und RemindFrom; Änderung auch für deaktivierte Arten R,ZW
8100-S003 REMINDER_GEB_TageNachlauf / REMINDER_Geb_TageNachlauf 0 ChangeRemindTimeSpan RemindTo; negativer Wert→NULL; Befristung verwendet irrtümlich GEB-Nachlauf R,ZW
8100-S004 REMINDER_JUB / REMINDER_Jub True CreateReminder Neue Erinnerungen dieser Art aktivieren R,ZW
8100-S005 REMINDER_JUB_TageVorlauf / REMINDER_Jub_TageVorlauf 30 CreateReminder/ChangeRemindTimeSpan Auswahlfenster und RemindFrom; Änderung auch für deaktivierte Arten R,ZW
8100-S006 REMINDER_JUB_TageNachlauf / REMINDER_Jub_TageNachlauf 0 ChangeRemindTimeSpan RemindTo; negativer Wert→NULL; Befristung verwendet irrtümlich GEB-Nachlauf R,ZW
8100-S007 REMINDER_EINTRITT / REMINDER_Eintritt True CreateReminder Neue Erinnerungen dieser Art aktivieren R,ZW
8100-S008 REMINDER_EINTRITT_TageVorlauf / REMINDER_Eintritt_TageVorlauf 30 CreateReminder/ChangeRemindTimeSpan Auswahlfenster und RemindFrom; Änderung auch für deaktivierte Arten R,ZW
8100-S009 REMINDER_EINTRITT_TageNachlauf / REMINDER_Eintritt_TageNachlauf 0 ChangeRemindTimeSpan RemindTo; negativer Wert→NULL; Befristung verwendet irrtümlich GEB-Nachlauf R,ZW
8100-S010 REMINDER_AUSTRITT / REMINDER_Austritt True CreateReminder Neue Erinnerungen dieser Art aktivieren R,ZW
8100-S011 REMINDER_AUSTRITT_TageVorlauf / REMINDER_Austritt_TageVorlauf 30 CreateReminder/ChangeRemindTimeSpan Auswahlfenster und RemindFrom; Änderung auch für deaktivierte Arten R,ZW
8100-S012 REMINDER_AUSTRITT_TageNachlauf / REMINDER_Austritt_TageNachlauf 0 ChangeRemindTimeSpan RemindTo; negativer Wert→NULL; Befristung verwendet irrtümlich GEB-Nachlauf R,ZW
8100-S013 REMINDER_PROBEZEIT / REMINDER_Probezeit True CreateReminder Neue Erinnerungen dieser Art aktivieren R,ZW
8100-S014 REMINDER_PROBEZEIT_TageVorlauf / REMINDER_Probezeit_TageVorlauf 30 CreateReminder/ChangeRemindTimeSpan Auswahlfenster und RemindFrom; Änderung auch für deaktivierte Arten R,ZW
8100-S015 REMINDER_PROBEZEIT_TageNachlauf / REMINDER_Probezeit_TageNachlauf 0 ChangeRemindTimeSpan RemindTo; negativer Wert→NULL; Befristung verwendet irrtümlich GEB-Nachlauf R,ZW
8100-S016 REMINDER_BEFRISTUNG / REMINDER_Befristung True CreateReminder Neue Erinnerungen dieser Art aktivieren R,ZW
8100-S017 REMINDER_BEFRISTUNG_TageVorlauf / REMINDER_Befristung_TageVorlauf 30 CreateReminder/ChangeRemindTimeSpan Auswahlfenster und RemindFrom; Änderung auch für deaktivierte Arten R,ZW
8100-S018 REMINDER_BEFRISTUNG_TageNachlauf / REMINDER_Befristung_TageNachlauf 0 ChangeRemindTimeSpan RemindTo; negativer Wert→NULL; Befristung verwendet irrtümlich GEB-Nachlauf R,ZW
8100-S019 REMINDER_GEB_Jahre / REMINDER_Geb_Jahre „-1“ Geburtstagsauswahl Alle oder Semikolonliste berechneter Lebensjahre R,FN,ZW
8100-S020 REMINDER_JUB_Jahre / REMINDER_Jub_Jahre „5;10;15;20;25;30;35;40;45;50;55;60“ Jubiläumsauswahl Semikolonliste Dienstjahre R,FN,ZW

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
8100-D001 Personen.PersonID SELECT Personaltermine, Text und Zugehörigkeit Alle Personen; Aktiv nur Jubiläum, Geburtstag innerhalb Beschäftigung R
8100-D002 Personen.Nachname SELECT Personaltermine, Text und Zugehörigkeit Alle Personen; Aktiv nur Jubiläum, Geburtstag innerhalb Beschäftigung R
8100-D003 Personen.Vorname SELECT Personaltermine, Text und Zugehörigkeit Alle Personen; Aktiv nur Jubiläum, Geburtstag innerhalb Beschäftigung R
8100-D004 Personen.GebDat SELECT Personaltermine, Text und Zugehörigkeit Alle Personen; Aktiv nur Jubiläum, Geburtstag innerhalb Beschäftigung R
8100-D005 Personen.Eintritt SELECT Personaltermine, Text und Zugehörigkeit Alle Personen; Aktiv nur Jubiläum, Geburtstag innerhalb Beschäftigung R
8100-D006 Personen.Austritt SELECT Personaltermine, Text und Zugehörigkeit Alle Personen; Aktiv nur Jubiläum, Geburtstag innerhalb Beschäftigung R
8100-D007 Personen.EndeProbe SELECT Personaltermine, Text und Zugehörigkeit Alle Personen; Aktiv nur Jubiläum, Geburtstag innerhalb Beschäftigung R
8100-D008 Personen.EndeBefristung SELECT Personaltermine, Text und Zugehörigkeit Alle Personen; Aktiv nur Jubiläum, Geburtstag innerhalb Beschäftigung R
8100-D009 Personen.Aktiv SELECT Personaltermine, Text und Zugehörigkeit Alle Personen; Aktiv nur Jubiläum, Geburtstag innerhalb Beschäftigung R
8100-D010 Reminder.RemindDate SELECT Existenzprüfung gegen doppelte Erinnerung Gleicher Stichtag/Art/Person; kein Unique-/Parallelbeleg R
8100-D011 Reminder.RKind SELECT Existenzprüfung gegen doppelte Erinnerung Gleicher Stichtag/Art/Person; kein Unique-/Parallelbeleg R
8100-D012 Reminder.RefID SELECT Existenzprüfung gegen doppelte Erinnerung Gleicher Stichtag/Art/Person; kein Unique-/Parallelbeleg R
8100-D013 Reminder.RemindDate INSERT Neue Personal-Erinnerung RSubject auf50 begrenzt, Bodyleer, User0, SQLGETDATE R
8100-D014 Reminder.RemindFrom INSERT Neue Personal-Erinnerung RSubject auf50 begrenzt, Bodyleer, User0, SQLGETDATE R
8100-D015 Reminder.RemindTo INSERT Neue Personal-Erinnerung RSubject auf50 begrenzt, Bodyleer, User0, SQLGETDATE R
8100-D016 Reminder.RSubject INSERT Neue Personal-Erinnerung RSubject auf50 begrenzt, Bodyleer, User0, SQLGETDATE R
8100-D017 Reminder.RBody INSERT Neue Personal-Erinnerung RSubject auf50 begrenzt, Bodyleer, User0, SQLGETDATE R
8100-D018 Reminder.RKind INSERT Neue Personal-Erinnerung RSubject auf50 begrenzt, Bodyleer, User0, SQLGETDATE R
8100-D019 Reminder.RefID INSERT Neue Personal-Erinnerung RSubject auf50 begrenzt, Bodyleer, User0, SQLGETDATE R
8100-D020 Reminder.tsCreated INSERT Neue Personal-Erinnerung RSubject auf50 begrenzt, Bodyleer, User0, SQLGETDATE R
8100-D021 Reminder.UserCreated INSERT Neue Personal-Erinnerung RSubject auf50 begrenzt, Bodyleer, User0, SQLGETDATE R
8100-D022 Reminder.RKind SELECT Noch nicht geprüfte Erinnerungen Unabhängig aktivierter Art oder aktueller Personengültigkeit R
8100-D023 Reminder.RemindDate SELECT Noch nicht geprüfte Erinnerungen Unabhängig aktivierter Art oder aktueller Personengültigkeit R
8100-D024 Reminder.tsChecked SELECT Noch nicht geprüfte Erinnerungen Unabhängig aktivierter Art oder aktueller Personengültigkeit R
8100-D025 Reminder.RemindFrom UPDATE Globale Aktualisierung Anzeigezeitraum tsCheckedNULL, je RKind; kein Ändern Text/Stichtag R
8100-D026 Reminder.RemindTo UPDATE Globale Aktualisierung Anzeigezeitraum tsCheckedNULL, je RKind; kein Ändern Text/Stichtag R

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). Externe Betriebs-/Schemaabweichungen sind nicht durch die statische Analyse ausgeschlossen.

Gemeinsame Nebenwirkungen LEGACY

Block17 ergänzt6001/6002/6003/6004/6005 ausschließlich für direkte Info-/Dialog-/Logmeldungen; keine BASE-Mail/API. Parameter, Auswahl, Return und Fachwirkung jeID.

Block16 ergänzt explizit3031/3032/3041/3042/3060/3500 für die direkten Info-/Logmeldungen. Keine BASE-Vererbung bzw. Mail-/API-Nebenwirkung; Fachdateien/SQL/Returns pro ID prüfen. Keine pauschale Übernahme alter Dateiverträge.

Stand 2026-10-02; statisch geprüft am Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Mitglieder ausschließlich durch expliziten Profilverweis: Block 07, IDs 2000, 2001, 2010, 2020, 3020, 3021, 3030, 3040, 3050, 3070.

Block 13: Profil für 1067,1070,1073 nur bezüglich direkter cInfoTools-Dialog-/Logmeldungen und ihrer zwei Einstellungen wiederverwendet. Deren Datei-/Rückgabe-/Timeout-/Folgeaufrufverträge stehen ausschließlich in den Einzelbeschreibungen; die nachfolgenden Block-07-PFAD-/Return-Aussagen sind keine pauschale Behauptung für diese drei neuen IDs.

Block14 nutzt LEGACY ausschließlich für direkte Info-/Logpfade von 1100,1101,1102,1103,1200,1207,1208,1209,1223. Keine pauschale Übernahme der nachfolgenden Block07-Datei-/Rückgabeverträge; konkrete Unterschiede stehen je ID. 1203 verwendet nur direkten MsgBox-Fehlerpfad und ist kein Mitglied.

Block15 ergänzt ausdrücklich 1224/1225/1226/1320/1360/1400/1401/2021/2023 sowie die Veraltet-Stubs 2028/2029/2032/2046/2047/2048. Nur direkte Info-/Logpfade; konkrete Datei-/Return-/Timeoutverträge stehen je ID. Die sechs Stubs erben als Klasse zwar BASE, instanziieren aber nichts und rufen deren Start/Ende nicht auf. 2022 hat keinen solchen Pfad.

Abgrenzung und Ablauf

Die belegten LEGACY-Einstiege rufen cSchnitt_Basis.Start/Ende nicht auf. Die ursprünglichen Block-07-Klassen erben auch nicht von der Basis; für spätere statische Stubs gilt dagegen nur die fehlende Start-/Ende-Ausführung. Deshalb keine BASE-Mail-/API-/Outboxbeziehungen übernehmen. MAILTO wird zwar von cProgramm angelegt, aber hier nicht ausgewertet; ebenso keine fachliche Auswertung von MANUELL oder SILENT. RunWithDialog setzt MANUELL. Dialogunterdrückung kommt aus Settings.Info.SupressDialogs (Clientkonstruktor False, Worker True), kein belegter ZW-Schlüssel.

Die folgenden Datei-/Return-Aussagen gelten für Block 07, nicht pauschal für spätere Profilmitglieder. PFAD ist FileImport, auch bei den Exporten 2001/3021: vorhandene Datei erforderlich, OpenFileDialog statt SaveFileDialog. Der lokale Registrywert PEP3/PFADESCHNITT/<ID> speichert den zuletzt verwendeten Ordner; dies ist keine serverseitige Systemeinstellung. Fehlender PFAD-Schlüssel ergibt False mit Fehlermeldung. Value.ToString bei Nothing liegt vor dem Fach-Try und kann ungefangen abbrechen. Datei-Existenzprüfung und Startmeldung liegen ebenfalls davor.

Meldungen: ShowProgrammStart/ShowProgrammEndeSuccessDialog mit Level 51, ShowProgrammEndeErrorDialog 102, ShowExceptionDialog 105 → ZeigeInfoEvent, ggf. Dialog, Log. Kein Nachweis über externe Event-Abonnentenwirkungen. Dialog kann unterdrückt sein, Logging bleibt separat. Die acht Ausführen-Funktionen außer 2010/3070 haben keinen abschließenden Return und liefern deshalb Boolean False, auch wenn Daten geändert wurden. 2020/3020 und die beiden Exporte haben zusätzlich im Fachhelfer keinen Return; dort wird bereits Success=False und ein Fehlerdialog gewählt. 2000/3030/3040/3050 können Erfolg melden und dennoch False liefern.

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.