Inhaltsverzeichnis

Schnittstelle 5323: GKKZa ABW — Abwesenheitsexport

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.ExportSchnittGKKZaAbw = 5323. Aktive feste Registrierung → cSchnittZalarisExportAbwesenheiten.AusführenGKK (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, Parameter und Datei

PFAD: vorhandener Ordner (Folder, kein Default). yyyyMMdd_HHmmss_PEP4_SAP_ABWESENHEITEN.csv, StreamWriter-Default UTF-8. Kein Eingang, Header, CSV-Escaping oder Upload.

Feldfolge mit Abschlusssemikolon: EXTSYSTEM;EXTAPPLICATION;ID;Löschflag;Person;von-yyyyMMdd;bis-yyyyMMdd;SchnittKstAbwesenheiten;von-HHmm;bis-HHmm;leer;Ganztag. Erstes Resultset Löschflag X, zweites leer. Wenn beide Uhrzeiten>00:00: HHmm und Ganztag leer; andernfalls beide Uhrzeitfelder leer und Ganztag X. Ein Intervall mit nur einer Mitternachtsgrenze wird somit ganztägig ausgegeben.

SQL und Datenfluss

SCHNITT_ExportGKKZaAbw_Alle ruft für jedes Kennzeichen mit Export=1 die Tabellenfunktion SCHNITT_ExportGKKZaAbw auf. Sie liest Pep2 und gültige ITORGA mit Abteilung>0, fasst aufeinanderfolgende Ganztage bei GanzTag=1/Anzahl1 zusammen, sonst Uhrzeitintervall. Vor Beginn gestartete Intervalle werden rückwärts ergänzt, dann von<DatVon entfernt.

Beginn = Monatsbeginn + DB-Monate (Fallback−1), Ende exklusiv DB-DatumMax (Fallback01.01.2027). GKK: Beginn mindestens01.04.2026, PersonName<800000000. Gemeinsames SCHNITT_KaDeWeZa_ABW_DIFF: alte Zeiträume löschen, entfernte Lieferung ausgeben/löschen, neue Intervalle anfügen/ausgeben, tsExport global setzen. Datei wird vor DB-Verbindung geöffnet. Keine Fachtransaktion oder Rückstellung bei Dateifehler.

Befunde und Abnahme

⚠5315/5323 teilen den Differenzbestand; fehlende Schreib-/Empfängerbestätigung kann Lieferung verlieren. Globaler Zeitstempel und Zeitrandfall beachten. Fachvertrag, Voll-/Teillieferung, Überschneidungen und Wiederholung synthetisch prüfen (Q19).

Einstellungen und gemeinsame Nebenwirkungen

Gemeinsames Profil: BASE (interne Referenz).

Beziehung Schlüssel / Variable Default Einflussweg Wirkung Beleg
5323-S001 SQL_TIMEOUT / SQLTimeOut 60 SqlCommand Fachcommand-Timeout in Sekunden; keine Dateitransaktion B,SET
5323-S002 SCHNITT_ZALARIS_EXTSYSTEM / SCHNITT_ZALARIS_EXTSYSTEM EXT VB Ausgabe CSV-Feld1 B,SET
5323-S003 SCHNITT_ZALARIS_EXTAPPLICATION / SCHNITT_ZALARIS_EXTAPPLICATION EXT VB Ausgabe CSV-Feld2 B,SET
5323-S004 SCHNITT_GKKZA_Abw_MONATE / SQL @Monate −1 SP MIN / UDF Zuweisung Exportuntergrenze; Mehrfachwerte in UDF nicht eindeutig SQL,FN
5323-S005 SCHNITT_GKKZA_Abw_DatumMax / SQL @DatumMax 01.01.2027 UDF DB-Lesen Exklusive Obergrenze; kein VB-Datumsmuster FN

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
5323-D001 Pep2.Name SELECT Abwesenheitstage, Status!=2-Zählung, ganztägige Zusammenfassung oder Uhrzeitintervall Ausgewähltes Kennzeichen; rückwärtige Erweiterung dann Beginnfilter FN
5323-D002 Pep2.Datum SELECT Abwesenheitstage, Status!=2-Zählung, ganztägige Zusammenfassung oder Uhrzeitintervall Ausgewähltes Kennzeichen; rückwärtige Erweiterung dann Beginnfilter FN
5323-D003 Pep2.Status SELECT Abwesenheitstage, Status!=2-Zählung, ganztägige Zusammenfassung oder Uhrzeitintervall Ausgewähltes Kennzeichen; rückwärtige Erweiterung dann Beginnfilter FN
5323-D004 Pep2.Kommen SELECT Abwesenheitstage, Status!=2-Zählung, ganztägige Zusammenfassung oder Uhrzeitintervall Ausgewähltes Kennzeichen; rückwärtige Erweiterung dann Beginnfilter FN
5323-D005 Pep2.Gehen SELECT Abwesenheitstage, Status!=2-Zählung, ganztägige Zusammenfassung oder Uhrzeitintervall Ausgewähltes Kennzeichen; rückwärtige Erweiterung dann Beginnfilter FN
5323-D006 ITORGA.PersonenStammID SELECT Gültige Organisation, Abteilung>0 Startauswahl UDF FN
5323-D007 ITORGA.von SELECT Gültige Organisation, Abteilung>0 Startauswahl UDF FN
5323-D008 ITORGA.bis2 SELECT Gültige Organisation, Abteilung>0 Startauswahl UDF FN
5323-D009 ITORGA.Abteilung SELECT Gültige Organisation, Abteilung>0 Startauswahl UDF FN
5323-D010 Kennzeichen.Kennzeichen SELECT Export=1; ganztägige Zusammenfassung; externe Abwesenheitsart SP/UDF und Resultsets SQL,FN
5323-D011 Kennzeichen.Export SELECT Export=1; ganztägige Zusammenfassung; externe Abwesenheitsart SP/UDF und Resultsets SQL,FN
5323-D012 Kennzeichen.GanzTag SELECT Export=1; ganztägige Zusammenfassung; externe Abwesenheitsart SP/UDF und Resultsets SQL,FN
5323-D013 Kennzeichen.SchnittKstAbwesenheiten SELECT Export=1; ganztägige Zusammenfassung; externe Abwesenheitsart SP/UDF und Resultsets SQL,FN
5323-D014 EinstellungenZw.Einstellung SELECT Monate und DatumMax DB-Lesen SP/UDF SQL,FN
5323-D015 EinstellungenZw.Wert SELECT Monate und DatumMax DB-Lesen SP/UDF SQL,FN
5323-D016 SCHNITT_KaDeWeZa_ABW_DIFF.Person SELECT Deduplikation und zwei Resultsets: gelöscht/neugeliefert Gemeinsamer KaDeWe-/GKK-Bestand SQL
5323-D017 SCHNITT_KaDeWeZa_ABW_DIFF.von SELECT Deduplikation und zwei Resultsets: gelöscht/neugeliefert Gemeinsamer KaDeWe-/GKK-Bestand SQL
5323-D018 SCHNITT_KaDeWeZa_ABW_DIFF.bis SELECT Deduplikation und zwei Resultsets: gelöscht/neugeliefert Gemeinsamer KaDeWe-/GKK-Bestand SQL
5323-D019 SCHNITT_KaDeWeZa_ABW_DIFF.Kennzeichen SELECT Deduplikation und zwei Resultsets: gelöscht/neugeliefert Gemeinsamer KaDeWe-/GKK-Bestand SQL
5323-D020 SCHNITT_KaDeWeZa_ABW_DIFF.ID SELECT Deduplikation und zwei Resultsets: gelöscht/neugeliefert Gemeinsamer KaDeWe-/GKK-Bestand SQL
5323-D021 SCHNITT_KaDeWeZa_ABW_DIFF.tsExport SELECT Deduplikation und zwei Resultsets: gelöscht/neugeliefert Gemeinsamer KaDeWe-/GKK-Bestand SQL
5323-D022 SCHNITT_KaDeWeZa_ABW_DIFF.— Zeilen DELETE Alte von<DatVon ohne Löschsatz, danach nicht mehr aktuelle Intervalle Kein eigener Kundenfilter SQL
5323-D023 SCHNITT_KaDeWeZa_ABW_DIFF.Person INSERT Noch nicht gelieferte Intervalle anfügen UDF-Ergebnis minus bestehende SQL
5323-D024 SCHNITT_KaDeWeZa_ABW_DIFF.von INSERT Noch nicht gelieferte Intervalle anfügen UDF-Ergebnis minus bestehende SQL
5323-D025 SCHNITT_KaDeWeZa_ABW_DIFF.bis INSERT Noch nicht gelieferte Intervalle anfügen UDF-Ergebnis minus bestehende SQL
5323-D026 SCHNITT_KaDeWeZa_ABW_DIFF.Kennzeichen INSERT Noch nicht gelieferte Intervalle anfügen UDF-Ergebnis minus bestehende SQL
5323-D027 SCHNITT_KaDeWeZa_ABW_DIFF.tsExport UPDATE GETDATE gesamter Bestand Ohne Transaktion, vor erfolgreichem Dateischluss SQL
5323-D028 SCHNITT_KaDeWeZa_ABW_DIFF.ID IDENTITY Neue Export-ID; PK(Person,von,bis,Kennzeichen) DDL0714 DDL

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 BASE

Einstellungen

Beziehung Schlüssel / Variable Default Einfluss Wirkung Beleg
BASE-S001 MAIL_SCHNITTSTELLEONSUCCESS / MAIL_SchnittstelleOnSuccess False Basis Direkte Mail bei Result 0 oder1, nicht MANUELL/SILENT BASE:BASE, BASE:SET
BASE-S002 MAIL_SCHNITTSTELLEONERROR / MAIL_SchnittstelleOnError False Basis Direkte Mail bei Result 1 oder2, nicht MANUELL/SILENT BASE:BASE, BASE:SET
BASE-S003 SCHNITT_MELDUNG_SchnittstelleOnSuccess / SCHNITT_MELDUNG_SchnittstelleOnSuccess False Basis/API sendmail=1 bei Result 0 oder1, nicht MANUELL/SILENT; API-Meldung sonst weiterhin sendmail=0 BASE:BASE, BASE:SET
BASE-S004 SCHNITT_MELDUNG_SchnittstelleOnError / SCHNITT_MELDUNG_SchnittstelleOnError True Basis/API sendmail=1 bei Result 1 oder2, nicht MANUELL/SILENT BASE:BASE, BASE:SET
BASE-S005 MAIL_SCHNITTSTELLETO / MAIL_SchnittstelleTo leer Mail Ersatz bei leerem MAILTO; Semikolonliste BASE:MAIL, BASE:SET
BASE-S006 MAIL_SMTP_SERVER / MAIL_SMTPServer leer SMTP Server für direkten Versand BASE:MAIL, BASE:SET
BASE-S007 MAIL_USER / MAIL_User leer SMTP Nichtleer setzt NetworkCredential und überschreibt Defaultcredentials BASE:MAIL, BASE:SET
BASE-S008 MAIL_PASS / MAIL_Pass leer; verschlüsselte Einstellung SMTP Passwort für explizite Credentials; kein Geheimnis dokumentiert BASE:MAIL, BASE:SET
BASE-S009 MAIL_USEDEFAULTCREDENTIALS / MAIL_UseDefaultCredentials False SMTP SmtpClient.UseDefaultCredentials; ggf. durch MAIL_USER überschrieben BASE:MAIL, BASE:SET
BASE-S010 MAIL_SSL / MAIL_SSL True SMTP SmtpClient.EnableSsl BASE:MAIL, BASE:SET
BASE-S011 MAIL_TESTADRESSE / MAIL_TestAdresse nichtleere Testadresse im Quellcode (Wert bewusst nicht kopiert) SMTP Nichtleer ersetzt tatsächlichen To-Empfänger, auch wenn MAILTO gesetzt BASE:MAIL, BASE:SET
BASE-S012 MAIL_FROM / MAIL_From leer SMTP Absenderadresse BASE:MAIL, BASE:SET
BASE-S013 MAIL_FROM_NAME / MAIL_FromName leer SMTP Absendername BASE:MAIL, BASE:SET
BASE-S014 GLOBAL_LOGLEVEL / GLOBAL_LOGLEVEL 50 Logging Persistenz bei InfoLevel>=Schwelle; Start/Erfolg51, ImportError102 BASE:INIT, BASE:LOG, BASE:SET
BASE-S015 GLOBAL_LOGLEVELEVLOG / GLOBAL_LOGLEVELEVENTLOG 0 Logging Eventlog bei Level>Schwelle, Schwelle>0 und Level<200 BASE:INIT, BASE:LOG, BASE:SET

Datenbeziehungen

DB-Rolle Anmeldung; Logging über cInfoTools-Verbindung. Keine Geheimnisse/Livewerte. Indizes verknüpfen jede Mitglieds-ID mit diesen Beziehungen, auch wenn die Details nur einmal stehen.

Beziehung Tabelle.Feld Operation Datenfluss / Verwendung Bedingung Beleg
BASE-D001 Dokumente.oFilename INSERT MAIL_BODY Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D002 Dokumente.oFilesize INSERT Byteanzahl Body Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D003 Dokumente.Daten INSERT cFn.StringToByteArray(MailBody) Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D004 Dokumente.UserID INSERT dbo.fnUserId() Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D005 Dokumente.ts INSERT getdate() Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D006 Outbox.mTo INSERT MAILTO oder MAIL_SCHNITTSTELLETO; je Semikolonadresse Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D007 Outbox.mCc INSERT leer Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D008 Outbox.mFrom INSERT leer Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D009 Outbox.mSubject INSERT Statusabhängiger Betreff Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D010 Outbox.mBodyID INSERT ID des gespeicherten Bodys Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D011 Outbox.mBodyHtml INSERT False Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D012 Outbox.mDelayUntil INSERT getdate() Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D013 Outbox.mStatus INSERT 1 Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D014 Outbox.mSize INSERT Bodyzeichenanzahl (ohne Anhänge) Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D015 Outbox.refArt INSERT 0 Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D016 Outbox.RefID INSERT 0 Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D017 Outbox.MailArt INSERT 5 (SchnittstellenMeldung) Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D018 Outbox.UserID INSERT fnUserId() Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D019 Outbox.ts INSERT getdate() Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D020 Outbox.ID SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D021 Outbox.mFrom SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D022 Outbox.mTo SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D023 Outbox.mCc SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D024 Outbox.mBodyID SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D025 Outbox.mSubject SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D026 Outbox.mBodyHtml SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D027 Outbox.mStatus SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D028 Outbox.mDelayUntil SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D029 Outbox.MailArt SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D030 Outbox.mSent UPDATE Erfolg → getdate() Versandpfad BASE:MAIL
BASE-D031 Outbox.mStatus UPDATE Erfolg → 0; Fehler → +1, bei Status 20 pauschal -1 ohne WHERE Versandpfad BASE:MAIL
BASE-D032 Outbox.mDelayUntil UPDATE Fehler → Staffel 2/5/10/30 Minuten; ab Status 12 CASE ohne ELSE → NULL Versandpfad BASE:MAIL
BASE-D033 Dokumente.ID SELECT Body/Anhänge laden Versandpfad BASE:MAIL, BASE:DOC
BASE-D034 Dokumente.oFilename SELECT Body/Anhänge laden Versandpfad BASE:MAIL, BASE:DOC
BASE-D035 Dokumente.Daten SELECT Body/Anhänge laden Versandpfad BASE:MAIL, BASE:DOC
BASE-D036 OutboxAttachment.OutBoxID SELECT Anhangszuordnung; diese Basisaufrufe erstellt selbst keine Anhänge SendOutbox kann ältere Mailart-5-Einträge versenden BASE:MAIL
BASE-D037 OutboxAttachment.DokumenteID SELECT Anhangszuordnung; diese Basisaufrufe erstellt selbst keine Anhänge SendOutbox kann ältere Mailart-5-Einträge versenden BASE:MAIL
BASE-D038 Pep3Log.UserID INSERT fnUserId() InfoLevel >= GLOBAL_LOGLEVEL, DB-Logging möglich BASE:LOG
BASE-D039 Pep3Log.Datum INSERT getdate() InfoLevel >= GLOBAL_LOGLEVEL, DB-Logging möglich BASE:LOG
BASE-D040 Pep3Log.Kurz INSERT Kurztext max255 InfoLevel >= GLOBAL_LOGLEVEL, DB-Logging möglich BASE:LOG
BASE-D041 Pep3Log.LogText INSERT Protokoll InfoLevel >= GLOBAL_LOGLEVEL, DB-Logging möglich BASE:LOG
BASE-D042 Pep3Log.Modul INSERT Modulname max50 InfoLevel >= GLOBAL_LOGLEVEL, DB-Logging möglich BASE:LOG
BASE-D043 Pep3Log.InfoLevel INSERT Start/Erfolg=51; Importfehler=102; weitere Mail-Meldungen InfoLevel >= GLOBAL_LOGLEVEL, DB-Logging möglich BASE:LOG
BASE-D044 tblUser.Name SELECT fnUserId: min(UserID) WHERE Name=RIGHT(SUSER_NAME(),25), sonst 0 Mail-/Logpersistenz BASE:USER
BASE-D045 tblUser.UserID SELECT fnUserId: min(UserID) WHERE Name=RIGHT(SUSER_NAME(),25), sonst 0 Mail-/Logpersistenz BASE:USER

Weitere Ausgänge und Grenzen

Logdateien unter ApplicationData/PEP/LogFiles; kontextabhängig Windows-Eventlog. Start/Erfolg InfoLevel 51, Importfehler 102; Schwellen beeinflussen Persistenz. SQL-fnUserId liest tblUser anhand RIGHT(SUSER_NAME(),25). API Send(MELDUNG) nutzt Anmeldungskontext und fest codierten Endpoint; dessen Serverimplementierung fehlt in dieser Quellenbasis (Q01).

Bekannte gemeinsame Befunde aus Pilot: Outbox-Retry bei Status 20 setzt mStatus=-1 ohne WHERE; Retry-CASE ab Status 12 ohne ELSE → NULL. Nicht korrigiert. Keine Kundendaten oder Zugangswerte übertragen.

Quellenverzeichnis

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