====== Schnittstelle 5319: KaDeWeZa Istzeiten — tägliche SAP-Datei ====== 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.ImportKaDeWeZaIstzeiten = 5319''. Aktive feste Registrierung → ''cSchnittKaDeWeZaIstImport.Ausführen'' (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. ===== Eingangsdatei und Ablauf ===== PFAD vorhandener Folder; IMP erstellen. Alle ''*_SAP_PEP4_TAEGLISTAZ.csv'' (nicht sortiert). Encoding.Default, Semikolon, Trim; erste Zeile stets übersprungen. Fünf tatsächlich verwendete Felder:1 PersonID,2 Datum yyyyMMdd,3 Kommen HH:mm,4 Gehen HH:mm,5 cStatus. Beide Uhrzeiten auf dasselbe Datum, keine Nachtverschiebung oder Feldzahlprüfung. Je Datei global TRUNCATE ''IMPORT.dbo.Istzeiten_KaDeWe'', INSERT(PersonID,Datum1,Datum2,cStatus), dann ''SCHNITT_KADEWEZA_Istzeiten''; MoveFile nach IMP auch nach intern gefangenen Zeilenfehlern. CommandTimeout0. Update0524 stellt Tabelle nur bei vorhandener IMPORT-DB her und verschluckt DDL-Fehler; RecordType bleibt NULL. Kein Calc im aktiven VB/SQL-Pfad; auskommentierte KaDeWe_Berechnung_Istzeiten nicht zuschreiben. ===== SQL und Ziel ===== SP leert SCHNITT_Zeitereignis_In, fügt K(Datum1)/G(Datum2) hinzu. **Beide INSERTs prüfen nur Datum1-Uhrzeit>0**, nicht Datum2. Folge-SP ''SCHNITT_KADEWEZA_Istzeiten2'': #PersonTage aus gelieferten Ereignissen; auf diesen Tagen Terminal0-Ereignisse mit exaktem Match aktivieren, fehlende softlöschen; neue Ereignisse je Person/Minute/Kennung anfügen. Insert-Deduplikation filtert Terminal **nicht**, Update-Match nutzt exakten Timestamp. Bekannte Person für INSERT. DatumDate ist computed CONVERT(date,Datum), Update0584. SCHNITT_ZerfStatus je Person/DATE(Datum1): vorhandenen Status bei cStatus1→0 sonst−2; neuen Status bei1→0 sonst−1, neue Zeile nur cStatus nichtNULL. Keine allgemeine CStatus-Aktualisierung aus Kommentaren behaupten. ===== Befunde ===== ⚠ Null-/Mitternachtslieferung erzeugt keinen #PersonTag und kann deshalb alte Terminal0-Ereignisse nicht löschen. G wird nur nach Kommenfilter angelegt; Nachtintervall, ungesicherte Feldzahl, Sekunden-vs-Minutenmatch und unsortierter Vollersatz prüfen. Keine Gesamttransaktion, Teilimport wird archiviert. Q19 Liefer-/Schemaabnahme. ===== Einstellungen und gemeinsame Nebenwirkungen ===== Gemeinsames Profil: BASE (interne Referenz). Keine fachliche ZW-Einstellung im erreichbaren Einstieg nachgewiesen; gemeinsame Meldeeinstellungen nur über die ausdrücklich genannten Profile. 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 ^ | 5319-D001 | ''IMPORT.dbo.Istzeiten_KaDeWe.— Zeilen'' | TRUNCATE | Globales Staging je Datei | Externe IMPORT-Datenbank erforderlich | B | | 5319-D002 | ''IMPORT.dbo.Istzeiten_KaDeWe.PersonID'' | INSERT | Felder1–5; gemeinsames Tagesdatum | Kein Nachtwechsel | B | | 5319-D003 | ''IMPORT.dbo.Istzeiten_KaDeWe.Datum1'' | INSERT | Felder1–5; gemeinsames Tagesdatum | Kein Nachtwechsel | B | | 5319-D004 | ''IMPORT.dbo.Istzeiten_KaDeWe.Datum2'' | INSERT | Felder1–5; gemeinsames Tagesdatum | Kein Nachtwechsel | B | | 5319-D005 | ''IMPORT.dbo.Istzeiten_KaDeWe.cStatus'' | INSERT | Felder1–5; gemeinsames Tagesdatum | Kein Nachtwechsel | B | | 5319-D006 | ''IMPORT.dbo.Istzeiten_KaDeWe.PersonID'' | SELECT | K/G und ZerfStatus | SQL | SQL | | 5319-D007 | ''IMPORT.dbo.Istzeiten_KaDeWe.Datum1'' | SELECT | K/G und ZerfStatus | SQL | SQL | | 5319-D008 | ''IMPORT.dbo.Istzeiten_KaDeWe.Datum2'' | SELECT | K/G und ZerfStatus | SQL | SQL | | 5319-D009 | ''IMPORT.dbo.Istzeiten_KaDeWe.cStatus'' | SELECT | K/G und ZerfStatus | SQL | SQL | | 5319-D010 | ''SCHNITT_Zeitereignis_In.— Zeilen'' | TRUNCATE | Globaler Ereigniseingang | SP | SQL | | 5319-D011 | ''SCHNITT_Zeitereignis_In.PersonID'' | INSERT | K/G; beide prüfen Datum1-Uhrzeit | SP | SQL | | 5319-D012 | ''SCHNITT_Zeitereignis_In.Datum'' | INSERT | K/G; beide prüfen Datum1-Uhrzeit | SP | SQL | | 5319-D013 | ''SCHNITT_Zeitereignis_In.Kennung'' | INSERT | K/G; beide prüfen Datum1-Uhrzeit | SP | SQL | | 5319-D014 | ''SCHNITT_Zeitereignis_In.PersonID'' | SELECT | Tag-/Timestamp-/Minutenmatch | FolgeSP | SQL2 | | 5319-D015 | ''SCHNITT_Zeitereignis_In.Datum'' | SELECT | Tag-/Timestamp-/Minutenmatch | FolgeSP | SQL2 | | 5319-D016 | ''SCHNITT_Zeitereignis_In.Kennung'' | SELECT | Tag-/Timestamp-/Minutenmatch | FolgeSP | SQL2 | | 5319-D017 | ''#PersonTage.PersonID'' | INSERT | DISTINCT Person/DATE(Datum) aus Ereignisstaging | SELECT INTO | SQL2 | | 5319-D018 | ''#PersonTage.Datum'' | INSERT | DISTINCT Person/DATE(Datum) aus Ereignisstaging | SELECT INTO | SQL2 | | 5319-D019 | ''#PersonTage.PersonID'' | SELECT | Aktiv-/Softlösch-Tagesfilter | FolgeSP | SQL2 | | 5319-D020 | ''#PersonTage.Datum'' | SELECT | Aktiv-/Softlösch-Tagesfilter | FolgeSP | SQL2 | | 5319-D021 | ''Zeitereignisse.PersonID'' | SELECT | UPDATE exakt bei Terminal0; INSERT-Deduplikation pro Minute ohne Terminalfilter | FolgeSP | SQL2 | | 5319-D022 | ''Zeitereignisse.Datum'' | SELECT | UPDATE exakt bei Terminal0; INSERT-Deduplikation pro Minute ohne Terminalfilter | FolgeSP | SQL2 | | 5319-D023 | ''Zeitereignisse.DatumDate'' | SELECT | UPDATE exakt bei Terminal0; INSERT-Deduplikation pro Minute ohne Terminalfilter | FolgeSP | SQL2 | | 5319-D024 | ''Zeitereignisse.Kennung'' | SELECT | UPDATE exakt bei Terminal0; INSERT-Deduplikation pro Minute ohne Terminalfilter | FolgeSP | SQL2 | | 5319-D025 | ''Zeitereignisse.Terminal'' | SELECT | UPDATE exakt bei Terminal0; INSERT-Deduplikation pro Minute ohne Terminalfilter | FolgeSP | SQL2 | | 5319-D026 | ''Zeitereignisse.geloescht'' | UPDATE | 1 für fehlende und0 für exakt gelieferte Terminal0-Ereignisse | Nur #PersonTage | SQL2 | | 5319-D027 | ''Zeitereignisse.PersonID'' | INSERT | Neu; GETDATE,Terminal0 | Bekannte Person, noch nicht proMinute vorhanden | SQL2 | | 5319-D028 | ''Zeitereignisse.Datum'' | INSERT | Neu; GETDATE,Terminal0 | Bekannte Person, noch nicht proMinute vorhanden | SQL2 | | 5319-D029 | ''Zeitereignisse.Kennung'' | INSERT | Neu; GETDATE,Terminal0 | Bekannte Person, noch nicht proMinute vorhanden | SQL2 | | 5319-D030 | ''Zeitereignisse.ts'' | INSERT | Neu; GETDATE,Terminal0 | Bekannte Person, noch nicht proMinute vorhanden | SQL2 | | 5319-D031 | ''Zeitereignisse.Terminal'' | INSERT | Neu; GETDATE,Terminal0 | Bekannte Person, noch nicht proMinute vorhanden | SQL2 | | 5319-D032 | ''Zeitereignisse.DatumDate'' | COMPUTED | DATE(Datum) | Insert | D584 | | 5319-D033 | ''Personen.PersonID'' | SELECT | Bekannte Person | FolgeSP INSERT | SQL2 | | 5319-D034 | ''SCHNITT_ZerfStatus.PersonID'' | SELECT | Person-/Tag-Schlüssel | SQL | SQL | | 5319-D035 | ''SCHNITT_ZerfStatus.Datum'' | SELECT | Person-/Tag-Schlüssel | SQL | SQL | | 5319-D036 | ''SCHNITT_ZerfStatus.ZerfStatus'' | UPDATE | cStatus1→0 sonst−2 | Vorhandene Person-/Tag-Zeile | SQL | | 5319-D037 | ''SCHNITT_ZerfStatus.PersonID'' | INSERT | cStatus1→0 sonst−1 | Fehlend, cStatus nichtNULL | SQL | | 5319-D038 | ''SCHNITT_ZerfStatus.Datum'' | INSERT | cStatus1→0 sonst−1 | Fehlend, cStatus nichtNULL | SQL | | 5319-D039 | ''SCHNITT_ZerfStatus.ZerfStatus'' | INSERT | cStatus1→0 sonst−1 | Fehlend, cStatus nichtNULL | SQL | ===== 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 ===== ^ Kürzel ^ Quelldatei am geprüften Commit ^ | E | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/ZW/Allgemein.vb|PEP4/ZW/Allgemein.vb]] | | P | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cSchnittstellen/Programme/cProgramme.vb|PEP4/cSchnittstellen/Programme/cProgramme.vb]] | | PRJ | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cSchnittstellen/cSchnittstellen.vbproj|PEP4/cSchnittstellen/cSchnittstellen.vbproj]] | | B | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cSchnittstellen/Programme/Schnittstellen/Zalaris/cSchnittKaDeWeZaIstImport.vb|PEP4/cSchnittstellen/Programme/Schnittstellen/Zalaris/cSchnittKaDeWeZaIstImport.vb]] | | SQL | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Functions/SCHNITT_KADEWEZA_Istzeiten.sql|Sqlfiles/PEP4Functions/SCHNITT_KADEWEZA_Istzeiten.sql]] | | SQL2 | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Functions/SCHNITT_KADEWEZA_Istzeiten2.sql|Sqlfiles/PEP4Functions/SCHNITT_KADEWEZA_Istzeiten2.sql]] | | D524 | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Update/update_0524.sql|Sqlfiles/PEP4Update/update_0524.sql]] | | D876 | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Update/update_0876.sql|Sqlfiles/PEP4Update/update_0876.sql]] | | D587 | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Update/update_0587.sql|Sqlfiles/PEP4Update/update_0587.sql]] | | D584 | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Update/update_0584.sql|Sqlfiles/PEP4Update/update_0584.sql]] | | BASE:BASE | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cSchnittstellen/Programme/Schnittstellen/cSchnitt_Basis.vb|PEP4/cSchnittstellen/Programme/Schnittstellen/cSchnitt_Basis.vb]] | | BASE:SET | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/ZW/Einstellungen/cEinstellungenZw.vb|PEP4/ZW/Einstellungen/cEinstellungenZw.vb]] | | BASE:MAIL | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cKommunikation/cMail.vb|PEP4/cKommunikation/cMail.vb]] | | BASE:API | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cSchnittstellen/cApiCall.vb|PEP4/cSchnittstellen/cApiCall.vb]] | | BASE:LOG | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cTools/cInfoTools.vb|PEP4/cTools/cInfoTools.vb]] | | BASE:INIT | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/ZW/Einstellungen/cSetting.vb|PEP4/ZW/Einstellungen/cSetting.vb]] | | BASE:USER | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Functions/fnUserId.sql|Sqlfiles/PEP4Functions/fnUserId.sql]] | | BASE:DOC | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cHilfsprogramme/cDocument.vb|PEP4/cHilfsprogramme/cDocument.vb]] | Siehe auch: [[schnittstellen:schnittstellen|Übersicht der Schnittstellen]]. Keine Ausführung oder Codekorrektur.