====== Schnittstelle 3512: Zeitkonten-Auszahlung FM exportieren und optional verbuchen ====== 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.ExportZeitKonten = 3512''. Aktive feste Registrierung → ''cSchnittAuszahlung.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. ===== Zweck und Parameter ===== Die alte Wiki-Kurzseite nannte zusätzlich „Datum“. Im geprüften aktuellen Einstieg ist kein DATUM-Laufparameter registriert; der Code verwendet Now.Date (DEBUG-Build:01.10.2018). ART0/1 ohne Buchung und ART2 mit Buchung bleiben erhalten. PFAD: Folder ohne Default, vorhandener Zielordner. ART: NumberLong ohne Default;0=SIMD Diagnoseexport,1=SIM Export ohne Verbuchung,2=PX Export **mit Datenbankverbuchung**. Andere Werte nicht sinnvoll validiert (Writer bleibt Nothing). Drei Auszahlungseinstellungen dürfen nicht−1 sein. Kein eingangsseitiges File/API. ===== Laden und Berechnen ===== ''AUSZAHLUNG_Laden_Konten(@Datum,@KennzeichenAuszahlungKonten,@KennzeichenAuszahlung)'' mit Now.Date; DEBUG-Build überschreibt @Datum mit01.10.2018. SQL.MonatErster ermittelt Monatsgrenzen. Kennzeichen.Konto bestimmt Art=Konto*100 bzw.+1. Result1: VM mit Summe<>0, VVM nur Summe<0, ALLG alle früheren Tage Summe<>0. Arbeitszeiten-Existenz mit Kommen=Gehen=Kontendatum/Kennzeichen und Kommentar #AUSZWB# setzt Direkt. Result2/3: VM/VVM BerechnetKonten aller Konten mit Auszahlung=1, sortiert Prioritaet. Client bildet Wert/Buchung/Basis aus Art Mod100 (0/1/2), verteilt negierten Auszahlungswert auf offenen Betrag Wert+Buchung+Change. Direkt begrenzt auf betreffenden Tag, Monatsauszahlung auf Person; Rest → KontoZeit. Prioritätsabsteigende Reihenfolge, keine stabile Zusatzsortierung gleichpriorer Tage. Zusammenfassung je Person/Datum/Konto. VM-Dateibuchungstag=letzter Vormonatstag. **VVM-Dateibuchungstag=erster Vormonatstag minus2Tage**, z.B. Lauf02.10.2026→30.08.2026; nicht einfach VVM-Ultimo. ===== Datei und Verbuchung ===== ART2: ''PX_ZWFM_AUSZAHLUNG_.csv'',1:SIM_,0:SIMD_; StreamWriter-Default UTF-8, Semikolon ohne CSV-Escaping. A;yyyyMMdd HHmmss, B;PersonID;Wert('#.00', aktuelle Kultur);Konto;Buchungsdatum(yyyyMMdd), Z;yyyyMMdd HHmmss. SIMD ergänzt Diagnoseabschnitte, ist nicht derselbe reine A/B/Z-Vertrag. Keine garantierte Sortierung der zusammengefassten B-Zeilen. Datei schließen **vor** DB-Verbuchen (nurART2). Erst Ausgangsauszahlungen in BerechnetKonten auf Datum des ursprünglichen Betrags/Kennzeichen.Konto*100+1: falls fehlend INSERT Wert0, danach Wert=Wert−Auszahlung.Wert. Dann Kontoobjekte VM/VVM analog Art=Konto*100+1. Keine Fach-Folge-SP oder Gesamttransaktion/Exportmarker/Quittung. Wiederholung und Teilfehler können Datei und DB auseinanderführen. ===== Befunde ===== ⚠ Konto-Verbuchen iteriert **alle geladenen Konten**, nicht nur geänderte, und setzt @Wert=elem.Wert **statt elem.Change**. Dadurch können auch ungenutzte Konten verändert werden; Zuweisung und Rückbuchung nicht gleichsetzen. Prioritaet wird durch Boolean-Parameter angenommen, obwohl SQL/Prioritätsfeld numerisch sind: Abstufungen gehen verloren. VVM-Buchungsdatum um zwei Tage versetzt; ART2 ist datenverändernd, kein bloßer Export. Q18: Fachregeln und Wiederholung ausschließlich isoliert mit erwarteten Datei-/Kontenwerten abnehmen. SQL_TIMEOUT auf gesetzten Lade-/Verbuchungskommandos. Schemafolgen (U185/U774): INSERT erzeugt BerechnetKonten.ID als Identity und ts per GETDATE-Default; ArtSub=Art%100 berechnet. Verbuchen setzt ID/ts/ArtSub nicht explizit; bestehendes ts wird beim Wert-UPDATE nicht aktualisiert. Kein Unique(PersonID,Datum,Art)-Vertrag aus dem nicht eindeutigen Quellindex ableiten. ===== Einstellungen und gemeinsame Nebenwirkungen ===== Gemeinsames Profil: BASE (interne Referenz). ^ Beziehung ^ Schlüssel / Variable ^ Default ^ Einflussweg ^ Wirkung ^ Beleg ^ | 3512-S001 | ''SQL_TIMEOUT'' / ''SQLTimeOut'' | 60 | SqlCommand | Timeout Lade-/Verbuchungskommandos, nicht Gesamtworkflow | SET,B | | 3512-S002 | ''SCHNITT_Auszahlung_KZ_AusZ'' / ''SCHNITT_Auszahlung_KZ_AusZ'' | −1 | ZW → Ladeparameter bzw. Zielkonto | Kennzeichen → Konto für Auszahlungsquelle und Ausgangsrückbuchung; −1 führt zu Stopp | SET,B,SQL | | 3512-S003 | ''SCHNITT_Auszahlung_KZ_AusZK'' / ''SCHNITT_Auszahlung_KZ_AusZK'' | −1 | ZW → Ladeparameter bzw. Zielkonto | Kennzeichen → Konto für Auszahlungsquelle und Ausgangsrückbuchung; −1 führt zu Stopp | SET,B,SQL | | 3512-S004 | ''SCHNITT_Auszahlung_KontoZeit'' / ''SCHNITT_Auszahlung_KontoZeit'' | −1 | ZW → Ladeparameter bzw. Zielkonto | Rest-/ALLG-Zeitkonto im Dateiexport | SET,B,SQL | 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 ^ | 3512-D001 | ''Kennzeichen.Kennzeichen'' | SELECT | Einstellungsschlüssel → Kontenart; SQL-Laden und ReMo-Cachezugriff | gültige Einstellungen | SQL,B | | 3512-D002 | ''Kennzeichen.Konto'' | SELECT | Einstellungsschlüssel → Kontenart; SQL-Laden und ReMo-Cachezugriff | gültige Einstellungen | SQL,B | | 3512-D003 | ''BerechnetKonten.PersonID'' | SELECT | Auszahlungen und VM/VVM-Kontoobjekte | VM/VVM/ALLG-Filterscope wie oben | SQL | | 3512-D004 | ''BerechnetKonten.Datum'' | SELECT | Auszahlungen und VM/VVM-Kontoobjekte | VM/VVM/ALLG-Filterscope wie oben | SQL | | 3512-D005 | ''BerechnetKonten.Art'' | SELECT | Auszahlungen und VM/VVM-Kontoobjekte | VM/VVM/ALLG-Filterscope wie oben | SQL | | 3512-D006 | ''BerechnetKonten.Wert'' | SELECT | Auszahlungen und VM/VVM-Kontoobjekte | VM/VVM/ALLG-Filterscope wie oben | SQL | | 3512-D007 | ''Arbeitszeiten.Person'' | SELECT | Direktmarker #AUSZWB# | person-/datumsgleich | SQL | | 3512-D008 | ''Arbeitszeiten.Kommen'' | SELECT | Direktmarker #AUSZWB# | person-/datumsgleich | SQL | | 3512-D009 | ''Arbeitszeiten.Gehen'' | SELECT | Direktmarker #AUSZWB# | person-/datumsgleich | SQL | | 3512-D010 | ''Arbeitszeiten.Kennzeichen'' | SELECT | Direktmarker #AUSZWB# | person-/datumsgleich | SQL | | 3512-D011 | ''Arbeitszeiten.Kommentar'' | SELECT | Direktmarker #AUSZWB# | person-/datumsgleich | SQL | | 3512-D012 | ''Konten.ID'' | SELECT | Art/100 und auszahlbare Priorität | Auszahlung1 | SQL | | 3512-D013 | ''Konten.Auszahlung'' | SELECT | Art/100 und auszahlbare Priorität | Auszahlung1 | SQL | | 3512-D014 | ''Konten.Prioritaet'' | SELECT | Art/100 und auszahlbare Priorität | Auszahlung1 | SQL | | 3512-D015 | ''BerechnetKonten.PersonID'' | SELECT | Match der zu verbuchenden Korrekturart | nurART2, nach Datei | B | | 3512-D016 | ''BerechnetKonten.Datum'' | SELECT | Match der zu verbuchenden Korrekturart | nurART2, nach Datei | B | | 3512-D017 | ''BerechnetKonten.Art'' | SELECT | Match der zu verbuchenden Korrekturart | nurART2, nach Datei | B | | 3512-D018 | ''BerechnetKonten.PersonID'' | INSERT | Fehlende Korrekturzeile mit Wert0 | nurART2, falls nicht vorhanden | B | | 3512-D019 | ''BerechnetKonten.Datum'' | INSERT | Fehlende Korrekturzeile mit Wert0 | nurART2, falls nicht vorhanden | B | | 3512-D020 | ''BerechnetKonten.Art'' | INSERT | Fehlende Korrekturzeile mit Wert0 | nurART2, falls nicht vorhanden | B | | 3512-D021 | ''BerechnetKonten.Wert'' | INSERT | Fehlende Korrekturzeile mit Wert0 | nurART2, falls nicht vorhanden | B | | 3512-D022 | ''BerechnetKonten.Wert'' | UPDATE | Wert−Originalauszahlung.Wert, danach Wert−Kontenobjekt.Wert (NICHT Change) | nurART2, alle VM/VVM-Objekte | B | | 3512-D023 | ''BerechnetKonten.ID'' | IDENTITY | Neue interne ID (kein ausdrücklicher VB-Wert) | INSERT bei fehlender Korrekturzeile | U185 | | 3512-D024 | ''BerechnetKonten.ts'' | DEFAULT | GETDATE() nur bei INSERT, nicht beim Wert-UPDATE | neue Korrekturzeile | U185 | | 3512-D025 | ''BerechnetKonten.ArtSub'' | COMPUTED | Art%100, unveränderteArt beimWert-UPDATE | neue/bestehendeZeile,Schemafolge | U774 | ===== 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/ZWFM/cSchnittAuszahlung.vb|PEP4/cSchnittstellen/Programme/Schnittstellen/ZWFM/cSchnittAuszahlung.vb]] | | SQL | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Functions/AUSZAHLUNG_Laden_Konten.sql|Sqlfiles/PEP4Functions/AUSZAHLUNG_Laden_Konten.sql]] | | MON | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Functions/MonatErsterUltimo.sql|Sqlfiles/PEP4Functions/MonatErsterUltimo.sql]] | | SET, BASE:SET | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/ZW/Einstellungen/cEinstellungenZw.vb|PEP4/ZW/Einstellungen/cEinstellungenZw.vb]] | | U185 | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Update/update_0185.sql|Sqlfiles/PEP4Update/update_0185.sql]] | | U774 | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Update/update_0774.sql|Sqlfiles/PEP4Update/update_0774.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: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.