Benutzer-Werkzeuge

Webseiten-Werkzeuge


schnittstellen:8201

Schnittstelle 8201: Personal-Infomails erzeugen und Outbox senden

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

Identität und Quellenstand

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

Empfänger, Fachwerte und HTML

Kein Parameter/File. BASE→cInfoMails.Senden→UserListeInfoMail(), je Benutzer INFOMAIL_PersonenInfo(@UserID)→MailToOutbox. UserListeInfoMail nutzt Programm12004 direkt oder per Gruppe, ersetzt Benutzer durch Vertreter falls gesetzt und wählt aktive tblUser. Mail darf leer sein; nur DBNull wird ausgeschlossen.

RechtePersonen ermittelt alle Personen für aktive Admins, ansonsten Standardrecht2 oder0 bei SEC_AutoDenyAccess/Restriktionsart1, Vertreter-/Gruppen-/Benutzereinschränkungen mit Prio und maximalem Recht. Geprüfte Zweige: ParamArt0 alle,10 Filiale,11 Abteilung,12 Hierarchie,20 Filiale/Abteilung,22 Hierarchie/Abteilung,30 Filialgruppen,31 PEP-Gruppe,40 Person. Kein Update fachlicher Rechte-/Personentabellen.

Saldo = SUM(BerechneteZeiten.TagesSaldo) bis SQL-gestern, ohne Personen.KorrekturSaldo oder LaufenderSaldo-Grenze. Offene Anträge zählt unbearbeitete aller Tage. Wochenwarnungen aus CStatus0/Meldung mit Codes8/14. Wochenzeit/negative Fehlerzahl liefert SQL, VB zeigt sie nicht an. HTML zeigt Personalnummer, Name, Saldo0.0, Antrags-/Warnzählung als '#' (0 leer), Rahmen fett und Maxverletzung rot. Namen ungeescaped. VB-Wochenstart Monday vs SQL-DATEPART abhängig DATEFIRST können unterschiedliche Zeiträume ergeben.

Queue und weitere Wirkung

MailToOutbox schreibt Dokumente und Outbox in eigener Transaktion, Body Encoding.Default; @@IDENTITY statt SCOPE_IDENTITY kann bei Triggern fremde ID liefern. Kein Anhanginsert für diesen Aufruf. Enqueuefehler zeigt Dialog, wird nicht an Aufrufer als fataler Fehler zurückgegeben.

Nach einer Sekunde SendOutbox(AlleMails), also auch bereits vorhandene fremde Queuearten, nicht nur erzeugte Infomails. Versandbool ignoriert. Shared cInfoMails.Senden hat kein Return; BASE ignoriert dieses False und kann Fehlerfrei melden. GenerateAntragInfo ist auskommentiert: dessen ANTRAG_AntragslisteSub ist hier KEIN erreichbarer Aufruf. Keine Berechnung, vorhandene Salden/Status vorausgesetzt.

SMTP-Vertrag und Wiederholung

cMail.SendOutbox wählt TOP1 ohne ORDER BY oder Claim/Lock. Nur mStatus>0 und mDelayUntil<SQLGETDATE; MAILART=-1 akzeptiert alle Arten. Leere Queue ergibt True, ein Versandfehler macht den Gesamtlauf False. SMTP-Erfolg setzt mSent=GETDATE,mStatus=0; Fehler erhöht Status und verschiebt um 2/5/10/30 Minuten. Ab Status12 liefert CASE ohne ELSE NULL für mDelayUntil: Auftrag wird nicht mehr ausgewählt. Bei vorgegebenem Status19 führt nächster Fehler zu20 und UPDATE Outbox SET mStatus=-1 OHNE WHERE – alle Aufträge betroffen.

Kein atomarer Vertrag zwischen SMTP und SQL. Nach erfolgreichem SMTP, aber fehlgeschlagenem Statuswrite sind Doppelversände möglich; konkurrierende Worker können denselben TOP1-Auftrag versenden. Keine Mail tatsächlich gesendet.

SMTP-Absender stammt aus globalen MAIL_FROM/MAIL_FROM_NAME; Outbox.mFrom/mFromName dienen ReplyTo. Testadresse überschreibt nur To, nicht CC. Adressen werden an Komma/Semikolon/Leerzeichen getrennt; die CC-Schleife verwendet fehlerhaft jeweils den kompletten mCc statt des einzelnen Elements. Mehrfach-CC kann dadurch scheitern.

Body aus Dokumente.Daten wird mit Encoding.Default in String verwandelt. GetDocumentFromDb setzt den ByRef-Bytepuffer bei fehlender Zeile/abgefangenem Fehler nicht zurück; da der Puffer über Queuezeilen weiterlebt, kann der vorige Body erneut verwendet werden. Anhanglesen setzt seine Liste zurück, kann aber nach abgefangenem Fehler unvollständig bleiben. HTML-Aufbereitung bricht am letzten '>' ab; nachfolgender Klartext kann fehlen. Anhänge werden als application/octet-stream aus MemoryStream hinzugefügt. MAIL_USEMAIL/Signatur/Verzögerungseinstellung sind keine hier nachgewiesenen Gates; SQL-Befehle verwenden Standardtimeout.

Einstellungen und gemeinsame Nebenwirkungen

Gemeinsames Profil: BASE (interne Referenz).

Beziehung Schlüssel / Variable Default Einflussweg Wirkung Beleg
8201-S001 MAIL_SMTP_SERVER / MAIL_SMTPServer „“ cMail.SendMail SMTP-Ziel MAIL,ZW
8201-S002 MAIL_USER / MAIL_User (Wert bewusst nicht dokumentiert) cMail.SendMail Anmeldungsname MAIL,ZW
8201-S003 MAIL_PASS / MAIL_Pass (Wert bewusst nicht dokumentiert) cMail.SendMail Entschlüsseltes Passwort; Wert nicht veröffentlichen MAIL,ZW
8201-S004 MAIL_USEDEFAULTCREDENTIALS / MAIL_UseDefaultCredentials False cMail.SendMail Windows-/Standardcredentials statt NetworkCredential MAIL,ZW
8201-S005 MAIL_SSL / MAIL_SSL True cMail.SendMail EnableSsl MAIL,ZW
8201-S006 MAIL_TESTADRESSE / MAIL_TestAdresse (Wert bewusst nicht dokumentiert) cMail.SendMail Überschreibt nur To, nicht CC MAIL,ZW
8201-S007 MAIL_FROM / MAIL_From „“ cMail.SendMail SMTP-Absender MAIL,ZW
8201-S008 MAIL_FROM_NAME / MAIL_FromName „“ cMail.SendMail Anzeigename MAIL,ZW
8201-S009 SEC_AutoDenyAccess / SEC_AutoDenyAccess False SQL RechtePersonen→GetEinstellungZw Standardrecht, Restriktions-/Vertreterdurchläufe; SQL liest Rohwert unabhängig VB-Validierung RIGHTS,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
8201-D001 Outbox.ID SELECT TOP1 sendbarer Auftrag mStatus>0, Delay<SQLGETDATE, MAILART/-1; ohne Order/Lock MAIL
8201-D002 Outbox.mStatus SELECT TOP1 sendbarer Auftrag mStatus>0, Delay<SQLGETDATE, MAILART/-1; ohne Order/Lock MAIL
8201-D003 Outbox.mDelayUntil SELECT TOP1 sendbarer Auftrag mStatus>0, Delay<SQLGETDATE, MAILART/-1; ohne Order/Lock MAIL
8201-D004 Outbox.MailArt SELECT TOP1 sendbarer Auftrag mStatus>0, Delay<SQLGETDATE, MAILART/-1; ohne Order/Lock MAIL
8201-D005 Outbox.mFrom SELECT TOP1 sendbarer Auftrag mStatus>0, Delay<SQLGETDATE, MAILART/-1; ohne Order/Lock MAIL
8201-D006 Outbox.mFromName SELECT TOP1 sendbarer Auftrag mStatus>0, Delay<SQLGETDATE, MAILART/-1; ohne Order/Lock MAIL
8201-D007 Outbox.mTo SELECT TOP1 sendbarer Auftrag mStatus>0, Delay<SQLGETDATE, MAILART/-1; ohne Order/Lock MAIL
8201-D008 Outbox.mCc SELECT TOP1 sendbarer Auftrag mStatus>0, Delay<SQLGETDATE, MAILART/-1; ohne Order/Lock MAIL
8201-D009 Outbox.mBodyID SELECT TOP1 sendbarer Auftrag mStatus>0, Delay<SQLGETDATE, MAILART/-1; ohne Order/Lock MAIL
8201-D010 Outbox.mSubject SELECT TOP1 sendbarer Auftrag mStatus>0, Delay<SQLGETDATE, MAILART/-1; ohne Order/Lock MAIL
8201-D011 Outbox.mBodyHtml SELECT TOP1 sendbarer Auftrag mStatus>0, Delay<SQLGETDATE, MAILART/-1; ohne Order/Lock MAIL
8201-D012 Outbox.mSent UPDATE Erfolg oder Wiederholungsstatus Erfolg mStatus0; Fehler Status+1 und Staffelverzögerung MAIL
8201-D013 Outbox.mStatus UPDATE Erfolg oder Wiederholungsstatus Erfolg mStatus0; Fehler Status+1 und Staffelverzögerung MAIL
8201-D014 Outbox.mDelayUntil UPDATE Erfolg oder Wiederholungsstatus Erfolg mStatus0; Fehler Status+1 und Staffelverzögerung MAIL
8201-D015 Outbox.mStatus UPDATE Abbruch nach Status20 UPDATE ohne WHERE setzt alle Outboxzeilen auf -1 MAIL
8201-D016 Dokumente.ID SELECT Body und Anhangbytes Body ID=mBodyID; Anhänge per Join MAIL,DOC
8201-D017 Dokumente.oFilename SELECT Body und Anhangbytes Body ID=mBodyID; Anhänge per Join MAIL,DOC
8201-D018 Dokumente.Daten SELECT Body und Anhangbytes Body ID=mBodyID; Anhänge per Join MAIL,DOC
8201-D019 OutboxAttachment.OutboxID SELECT Anhänge zum Auftrag Fehler kann nur Teilmenge ergeben MAIL
8201-D020 OutboxAttachment.DokumenteID SELECT Anhänge zum Auftrag Fehler kann nur Teilmenge ergeben MAIL
8201-D021 tblUser.UserID SELECT UserListeInfoMail Empfänger; Vertretung/Rechte Programm12004, aktive Empfänger, Mail nichtDBNULL (Leerwert nicht ausgeschlossen) USERS,RIGHTS
8201-D022 tblUser.Vertreter SELECT UserListeInfoMail Empfänger; Vertretung/Rechte Programm12004, aktive Empfänger, Mail nichtDBNULL (Leerwert nicht ausgeschlossen) USERS,RIGHTS
8201-D023 tblUser.Aktiv SELECT UserListeInfoMail Empfänger; Vertretung/Rechte Programm12004, aktive Empfänger, Mail nichtDBNULL (Leerwert nicht ausgeschlossen) USERS,RIGHTS
8201-D024 tblUser.Mail SELECT UserListeInfoMail Empfänger; Vertretung/Rechte Programm12004, aktive Empfänger, Mail nichtDBNULL (Leerwert nicht ausgeschlossen) USERS,RIGHTS
8201-D025 tblUser.NameShown SELECT UserListeInfoMail Empfänger; Vertretung/Rechte Programm12004, aktive Empfänger, Mail nichtDBNULL (Leerwert nicht ausgeschlossen) USERS,RIGHTS
8201-D026 qUserProgrammRechte.Programm SELECT Empfängerkandidaten Direkter oder Gruppen-Eintrag12004; Admin allein ohne Eintrag nicht automatischer Empfänger USERS
8201-D027 qUserProgrammRechte.UserID SELECT Empfängerkandidaten Direkter oder Gruppen-Eintrag12004; Admin allein ohne Eintrag nicht automatischer Empfänger USERS
8201-D028 qUserProgrammRechte.UserGroupID SELECT Empfängerkandidaten Direkter oder Gruppen-Eintrag12004; Admin allein ohne Eintrag nicht automatischer Empfänger USERS
8201-D029 UserInGroups.UserID SELECT Gruppenkandidaten und Einschränkungs-Fallback Programm12004/0 im Rechtepfad USERS,RIGHTS
8201-D030 UserInGroups.UserGroupID SELECT Gruppenkandidaten und Einschränkungs-Fallback Programm12004/0 im Rechtepfad USERS,RIGHTS
8201-D031 UserInGroups.Filiale SELECT Gruppenkandidaten und Einschränkungs-Fallback Programm12004/0 im Rechtepfad USERS,RIGHTS
8201-D032 UserInGroups.Abteilung SELECT Gruppenkandidaten und Einschränkungs-Fallback Programm12004/0 im Rechtepfad USERS,RIGHTS
8201-D033 UserInGroups.Gruppe SELECT Gruppenkandidaten und Einschränkungs-Fallback Programm12004/0 im Rechtepfad USERS,RIGHTS
8201-D034 UserInGroups.Person SELECT Gruppenkandidaten und Einschränkungs-Fallback Programm12004/0 im Rechtepfad USERS,RIGHTS
8201-D035 ProgrammEinschraenkung.Einschraenkung SELECT Personenrechte mit priorisierten Regeln Repräsentierte Benutzer sowie Gruppen-/Benutzerrechte; XArt-Argument nicht genutzt RIGHTS
8201-D036 ProgrammEinschraenkung.ParamArt SELECT Personenrechte mit priorisierten Regeln Repräsentierte Benutzer sowie Gruppen-/Benutzerrechte; XArt-Argument nicht genutzt RIGHTS
8201-D037 ProgrammEinschraenkung.Wert1 SELECT Personenrechte mit priorisierten Regeln Repräsentierte Benutzer sowie Gruppen-/Benutzerrechte; XArt-Argument nicht genutzt RIGHTS
8201-D038 ProgrammEinschraenkung.Wert2 SELECT Personenrechte mit priorisierten Regeln Repräsentierte Benutzer sowie Gruppen-/Benutzerrechte; XArt-Argument nicht genutzt RIGHTS
8201-D039 ProgrammEinschraenkung.Wert3 SELECT Personenrechte mit priorisierten Regeln Repräsentierte Benutzer sowie Gruppen-/Benutzerrechte; XArt-Argument nicht genutzt RIGHTS
8201-D040 ProgrammEinschraenkung.Wert4 SELECT Personenrechte mit priorisierten Regeln Repräsentierte Benutzer sowie Gruppen-/Benutzerrechte; XArt-Argument nicht genutzt RIGHTS
8201-D041 ProgrammEinschraenkung.Prio SELECT Personenrechte mit priorisierten Regeln Repräsentierte Benutzer sowie Gruppen-/Benutzerrechte; XArt-Argument nicht genutzt RIGHTS
8201-D042 ProgrammEinschraenkung.UserID SELECT Personenrechte mit priorisierten Regeln Repräsentierte Benutzer sowie Gruppen-/Benutzerrechte; XArt-Argument nicht genutzt RIGHTS
8201-D043 ProgrammEinschraenkung.UserGroupID SELECT Personenrechte mit priorisierten Regeln Repräsentierte Benutzer sowie Gruppen-/Benutzerrechte; XArt-Argument nicht genutzt RIGHTS
8201-D044 ProgrammEinschraenkung.Programm SELECT Personenrechte mit priorisierten Regeln Repräsentierte Benutzer sowie Gruppen-/Benutzerrechte; XArt-Argument nicht genutzt RIGHTS
8201-D045 ProgrammEinschraenkung.Art SELECT Personenrechte mit priorisierten Regeln Repräsentierte Benutzer sowie Gruppen-/Benutzerrechte; XArt-Argument nicht genutzt RIGHTS
8201-D046 Personen.PersonID SELECT Berechtigte Personalzeilen/HTML RechtePersonen(12004,user,-1,SQLNow,SQLNow,0), Recht>0 PERSON,RIGHTS
8201-D047 Personen.Nachname SELECT Berechtigte Personalzeilen/HTML RechtePersonen(12004,user,-1,SQLNow,SQLNow,0), Recht>0 PERSON,RIGHTS
8201-D048 Personen.Vorname SELECT Berechtigte Personalzeilen/HTML RechtePersonen(12004,user,-1,SQLNow,SQLNow,0), Recht>0 PERSON,RIGHTS
8201-D049 Personen.PersonID SELECT Adminrechte alle Personen Aktiver Admin; kein genereller Personen-Aktivfilter RIGHTS
8201-D050 ITORGA.PersonenStammID SELECT Organisations-Einschränkungen Gültigkeit pro Regel; nicht jeder Regeltyp nutzt gleiche bis-Spalte RIGHTS
8201-D051 ITORGA.Filiale SELECT Organisations-Einschränkungen Gültigkeit pro Regel; nicht jeder Regeltyp nutzt gleiche bis-Spalte RIGHTS
8201-D052 ITORGA.Abteilung SELECT Organisations-Einschränkungen Gültigkeit pro Regel; nicht jeder Regeltyp nutzt gleiche bis-Spalte RIGHTS
8201-D053 ITORGA.Hierarchiestufe SELECT Organisations-Einschränkungen Gültigkeit pro Regel; nicht jeder Regeltyp nutzt gleiche bis-Spalte RIGHTS
8201-D054 ITORGA.von SELECT Organisations-Einschränkungen Gültigkeit pro Regel; nicht jeder Regeltyp nutzt gleiche bis-Spalte RIGHTS
8201-D055 ITORGA.bis SELECT Organisations-Einschränkungen Gültigkeit pro Regel; nicht jeder Regeltyp nutzt gleiche bis-Spalte RIGHTS
8201-D056 ITORGA.bis2 SELECT Organisations-Einschränkungen Gültigkeit pro Regel; nicht jeder Regeltyp nutzt gleiche bis-Spalte RIGHTS
8201-D057 ITPEP.PersonenStammID SELECT Gruppen-Einschränkungen Regel31 und Gültigkeit RIGHTS
8201-D058 ITPEP.PepGruppe SELECT Gruppen-Einschränkungen Regel31 und Gültigkeit RIGHTS
8201-D059 ITPEP.von SELECT Gruppen-Einschränkungen Regel31 und Gültigkeit RIGHTS
8201-D060 ITPEP.bis2 SELECT Gruppen-Einschränkungen Regel31 und Gültigkeit RIGHTS
8201-D061 PepGruppen.ID SELECT Filialgruppen-Einschränkung Regel30 RIGHTS
8201-D062 PepGruppen.Filiale SELECT Filialgruppen-Einschränkung Regel30 RIGHTS
8201-D063 BerechneteZeiten.Person SELECT Saldo bis gestern; Wochenzeit zusätzlich geliefert, nicht dargestellt SQL-GETDATE/DATEPART; kein KorrekturSaldo/LaufenderSaldofilter im Infomailsaldo PERSON
8201-D064 BerechneteZeiten.Datum SELECT Saldo bis gestern; Wochenzeit zusätzlich geliefert, nicht dargestellt SQL-GETDATE/DATEPART; kein KorrekturSaldo/LaufenderSaldofilter im Infomailsaldo PERSON
8201-D065 BerechneteZeiten.TagesSaldo SELECT Saldo bis gestern; Wochenzeit zusätzlich geliefert, nicht dargestellt SQL-GETDATE/DATEPART; kein KorrekturSaldo/LaufenderSaldofilter im Infomailsaldo PERSON
8201-D066 BerechneteZeiten.Anwesend SELECT Saldo bis gestern; Wochenzeit zusätzlich geliefert, nicht dargestellt SQL-GETDATE/DATEPART; kein KorrekturSaldo/LaufenderSaldofilter im Infomailsaldo PERSON
8201-D067 CStatus.PersonenStammID SELECT Wochenwarnungen CStatus0 und Meldungnichtleer, fnVarcharToList Codes8/14; negativeFehlerzahl ungenutzt PERSON
8201-D068 CStatus.Datum SELECT Wochenwarnungen CStatus0 und Meldungnichtleer, fnVarcharToList Codes8/14; negativeFehlerzahl ungenutzt PERSON
8201-D069 CStatus.CStatus SELECT Wochenwarnungen CStatus0 und Meldungnichtleer, fnVarcharToList Codes8/14; negativeFehlerzahl ungenutzt PERSON
8201-D070 CStatus.Meldung SELECT Wochenwarnungen CStatus0 und Meldungnichtleer, fnVarcharToList Codes8/14; negativeFehlerzahl ungenutzt PERSON
8201-D071 Anträge.PersonID SELECT Offene Anträge tsBearbeitungNULL, kein Datumsfilter PERSON
8201-D072 Anträge.tsBearbeitung SELECT Offene Anträge tsBearbeitungNULL, kein Datumsfilter PERSON
8201-D073 Dokumente.oFilename INSERT Infomailbody im MailToOutbox-Transaktionsblock MAIL_BODY; Encoding.Default Bytes, fnUserID; @@IDENTITY statt SCOPE_IDENTITY MAIL
8201-D074 Dokumente.fileSize INSERT Infomailbody im MailToOutbox-Transaktionsblock MAIL_BODY; Encoding.Default Bytes, fnUserID; @@IDENTITY statt SCOPE_IDENTITY MAIL
8201-D075 Dokumente.Daten INSERT Infomailbody im MailToOutbox-Transaktionsblock MAIL_BODY; Encoding.Default Bytes, fnUserID; @@IDENTITY statt SCOPE_IDENTITY MAIL
8201-D076 Dokumente.UserID INSERT Infomailbody im MailToOutbox-Transaktionsblock MAIL_BODY; Encoding.Default Bytes, fnUserID; @@IDENTITY statt SCOPE_IDENTITY MAIL
8201-D077 Dokumente.ts INSERT Infomailbody im MailToOutbox-Transaktionsblock MAIL_BODY; Encoding.Default Bytes, fnUserID; @@IDENTITY statt SCOPE_IDENTITY MAIL
8201-D078 Outbox.mTo INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D079 Outbox.mCc INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D080 Outbox.mFrom INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D081 Outbox.mSubject INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D082 Outbox.mBodyID INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D083 Outbox.mBodyHtml INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D084 Outbox.mDelayUntil INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D085 Outbox.mStatus INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D086 Outbox.mSize INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D087 Outbox.RefArt INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D088 Outbox.RefID INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D089 Outbox.MailArt INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D090 Outbox.UserID INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D091 Outbox.ts INSERT PEP4 Infomail in Queue HTMLTrue,Status1,MailArt0,RefArt/RefID0,keine Anhänge; Delay SQLNow MAIL
8201-D092 tblUser.UserID SELECT fnUserID bei Queueinsert MINUserID für RIGHT(SUSER_NAME(),25), sonst0 USER
8201-D093 tblUser.Name SELECT fnUserID bei Queueinsert MINUserID für RIGHT(SUSER_NAME(),25), sonst0 USER
8201-D094 EinstellungenZw.Einstellung SELECT SQL-Rohwert SEC_AutoDenyAccess GetEinstellungZw; kein VB-Validierungshash in Rechte-UDF RIGHTS
8201-D095 EinstellungenZw.Wert SELECT SQL-Rohwert SEC_AutoDenyAccess GetEinstellungZw; kein VB-Validierungshash in Rechte-UDF RIGHTS

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 BASE

Block17 ergänzt explizit5314/5315/5316/5317/5318/5319/5323/5324/5325/5326/5327/5328/6000/6006/6007/6008/6009. Alle nutzen BASE-Start/Ende;6001/6002/6003/6004/6005 verwenden LEGACY statt BASE. Fachverträge jeID, keine automatische gemeinsame Kunden-/Dateiwirkung.

Stand: 2026-10-02 · Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Gilt ausdrücklich für Block 01: 1012, 1013, 1016, 1017, 1018, 1019, 1079, 1080, 1082, 2016 sowie Block 02: 2011, 2012, 2014, 2015, 2017, 2018, 2019, 2033, 2034, 2041 sowie Block 03: 1057, 1058, 1059, 1060, 2030, 2035, 2040, 2042, 2044 sowie Block 04: 2053, 2054, 1081, 2031, 2052 sowie Block 05: 2045, 2050 sowie Block 06: 3044, Block 08: 1010, 1011, 1015 und Block 10: 1047, 1051 sowie Block 12: 1064. 2024, 1020, 1030, 1048, 1049, 1050, 1052, 1053, 1054, 1061, 1062 und 1063 verwenden diese Basis nicht. 1078 enthält die gleichversionierten Beziehungen weiterhin in seiner Einzelbeschreibung; keine Doppelzählung für 1078. Kein Test-/Deploymentnachweis.

Block 13 ergänzt ausdrücklich 1065,1066,1068,1069,1071,1072,1074: aktive Implementierungen bzw. Hilfsinstanzen erben BASE und rufen Start/Ende auf. Bei 1074 ist AusführungEnde nur bei unbehelligtem Abschluss erreichbar; Ressourcen-/DB-/SP-Fehler können es überspringen. 1067/1070/1073 verwenden direkte LEGACY-Meldungen.

Block14 ergänzt ausdrücklich 1104,1105,1106,1108,1109,1150,1210,1214,1215,1222. Aktive Klassen/Instanzen erben BASE und starten/beenden den Lauf; ungefangene Fehler können das Ende überspringen. Nur gemeinsame Rückmeldung, keine Gesamttransaktion oder erfolgreiche Fachwirkung. 1203 hat keinen BASE-/LEGACY-Pfad.

Block15 ergänzt ausdrücklich 2025/2026/2027/2049 mit erreichbarem Instanz-Start/Ende. Die aktiven Veraltet-Stubs 2028/2029/2032/2046/2047/2048 nutzen trotz Klassenvererbung nur den direkten LEGACY-Meldepfad; keine BASE-Ausführung. 2022 hat keinen Delegate.

Reichweite und Wiederverwendung

Block16 ergänzt ausdrücklich 2051/2055/3043/3512/3513/3520/3521/3522. WebZerf2 nutzt Multi-Start/Ende mit BASE je Teilstufe; IsMultiSchnitt reduziert Dialoge, nicht Mail-/API-Wirkungen. Nach Fehlern können weitere Teilstufen starten. 3011 ohne Delegate;3031/3032/3041/3042/3060/3500 nur LEGACY.

Die ausdrücklich zugeordneten Programmregistrierungen mit ihren Implementierungen erben cSchnitt_Basis und rufen AusführungStart/AusführungEnde auf. Gemeinsam geprüfte Basisklasse/Registrierung; Mail-/Logging-/API-Details aus der dokumentierten Pilotprüfung desselben Commits wiederverwendet. Nicht automatisch auf jede zukünftige Schnittstelle übertragen: Erreichbarkeit, Overrides, Sonderpfade und Quellenstand jeweils prüfen.

Start setzt Status/Protokoll zurück. Fehlerstatus steigt nur (0→1→2). Fehlerfrei() ist True nur bei Status 0. SILENT unterdrückt die Startanzeige und beendet AusführungEnde sofort. MANUELL wird über Schlüsselinzidenz erkannt, unterdrückt direkte Mail und API-sendmail, nicht die API-Meldung selbst. MAILTO leer → MAIL_SCHNITTSTELLETO. Bei nicht lokal gefangener Exception kann der Abschluss ausfallen (besonders 1079/1082); 2016 hat einen getrennten Rückgabe-/Fehlerstatusbefund; 2017 reicht ebenfalls den Instanzstatus nicht als Shared-Rückgabe durch. 1057–1060 besitzen untypisierte Shared-Einstiege ohne Return (Nothing) und übernehmen Modul nicht; Instanz-Abschluss separat betrachten. Die acht Exporte aus Block 02/03 verwenden cSchnittExport mit Start/Ende.

Erfolg: OnSuccess; Fehlerstatus 1: OnSuccess ODER OnError; Stoppstatus 2: OnError. Mail nur nicht MANUELL und nicht SILENT; API wird sonst unabhängig vom sendmail-Schalter aufgerufen. Direkte Mail speichert Body/Outbox in eigener Transaktion (keine Fachimporttransaktion). SendOutbox(5) kann ältere fällige Schnittstellenmails versenden und deren Anhänge lesen; diese Fachpfade erzeugen selbst keine Anhänge. SMTP-Testadresse kann Zieladresse ersetzen. Mail-/API-Ergebnis ist kein verlässlicher Bestandteil von Fehlerfrei().

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

Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
schnittstellen/8201.txt · Zuletzt geändert: von codex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki