Inhaltsverzeichnis

Schnittstelle 3521: WebZerf2 — Benutzer und persönliche Daten veröffentlichen

Dokumentiert / statisch geprüft: 2026-10-02. Teilweise dokumentiert: lokaler Benutzer-/SQL-Datenfluss belegt; cWebData-Ausgabeformat aus externer DLL nicht aufgelöst (Q17); Nutzerprüfung offen. Keine Schnittstelle ausgeführt.

Identität und Quellenstand

eProgramm.ExportWebZerfUser = 3521. Aktive feste Registrierung → cSchnittWebZerf2.Export_User (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 Ablauf

Kein Eingangsfile/PFAD. Multi-Start → ResetDaten → ExportStammJSON → ExportPersonData → Multi-Ende. Reset fehlgeschlagen → beide Exporte entfallen. Nach fehlgeschlagenem Stammexport läuft Datenupload dennoch. Shared Export_User hat keinen normalen Boolean-Return und ignoriert ExportPersonen-Ergebnis → False auch nach Erfolg.

Jede Stufe BASE-Start/Ende, Server-/Dbguard wenn beide Schutzsettings gesetzt, nichtleere Kunde/Key. Synchrone HTTP-Aufrufe am sharedClient mit ersetzten AppKey/Key/Command/User-Agent-Headern. RESET_DATEN per GET /api.php?type=P&art= verlangt AntwortbeginnOK; kann entfernte Daten vor misslungenem Neuaufbau zurücksetzen, Serverwirkung nicht lokal beweisbar. HTTPstatus hier und bei den Uploads nicht ausdrücklich geprüft; OK-Text entscheidet. Keine atomare Gesamtübertragung, keine hier gesetzten SQL_TIMEOUT/HTTPtimeoutwerte (SQLdefault30s).

Benutzervertrag — UPLOAD_USERJ

Personen aktiv=1,AustrittNULL oder>GETDATE,WebZerf2=1. Kein zusätzlicher Eintritt-/InZW-/StartZW-Filter; alte unaufgerufene ExportStamm-Routine nicht als aktuellen Filtervertrag verwenden. Pro Benutzer eine kompakte JSON-Zeile mit PersonID,PinHash,WildCard,Mail und fünf WebZerf_buchung_* Flags (erstellen/listen/edit/manuell/abwesend). PinHash SHA256/UTF8, fester Salt, URL-Base64; keine Roh-PIN/Salt kopiert. Wildcard NzLong,Mail NzStr,Flags NzBoolean. Serializer ignoriertNULL, Flags werden zuvor bereits auf Boolean umgesetzt (kein globaler ZW-Rechtefallback im aktiven JSONpfad).

POST /api.php, UPLOAD_USERJ, text/plain, gzip, UTF-8 ohneBOM. Keine lokale Personen-UPDATE/INSERT-Fachwirkung aus diesem Export.

Persönliche Daten — UPLOAD_USERDATA

Drei SQL-Prozeduren, nurSELECT in lokale Temp-/Ergebnistabellen:

cWebData baut personbezogene SAL/PLAN/PROV-Blöcke, Gruppen und Spaltenformate auf. Data.GetData → UTF-8 ohneBOM, gzip, text/plain, POST UPLOAD_USERDATA. Genauer Wire-Formatter nicht im VB-Quellpaket, Projektreferenz SubProjekte/dll/cWebData.dll; Suchumfang Dateiliste+Klassensuche, keine Implementierung gefunden. Keine erfundene JSON-/CSV-Struktur für diesen zweiten Upload. Q17 benötigt Bibliotheksquelltext/Formatvertrag und API-Vertrag.

Befunde und Grenzen

⚠ Remote-Reset vor ungesichertem Ersatz, False-Sharedreturn, unterschiedliche Personenfilter je Nutzdatenblock und Provisionszeitraum bis Monatsende statt bisheute. Null-/mehrfachpassende Historiendaten und konstante Steuer-/Schulregeln fachlich testen. Lokaler SQL-Leserindex unten vollständig für die drei SPs; externe Aufnahme-/Speicherfelder und cWebData-Format unbekannt, nicht als lokale Fach-UPDATEs indizieren.

Einstellungen und gemeinsame Nebenwirkungen

Gemeinsames Profil: BASE (interne Referenz).

Beziehung Schlüssel / Variable Default Einflussweg Wirkung Beleg
3521-S001 TERMINAL_Zerf_Kunde / WebZerf_ZerfKunde leer Clientguard Nichtleer erforderlich; keine Zugangswerte dokumentiert SET,B
3521-S002 TERMINAL_Zerf_Key / WebZerf_ZerfKey leer HTTP X-API-KEY Nichtleer erforderlich; Geheimnis nur als Settingname SET,B
3521-S003 Terminal_ZerfServer / Webzerf_ZerfServer fest codierte URL mit Leerzeichen nach https: HTTP-Basisadresse RESET_DATEN/UPLOAD_USERJ/UPLOAD_USERDATA SET,B
3521-S004 SCHNITT_SEC_Server / SCHNITT_SEC_Server leer Serverguard Servernameprüfung nur wenn Server UND Db nichtleer SET,B
3521-S005 SCHNITT_SEC_Db / SCHNITT_SEC_Db leer DBguard Datenbankprüfung nur mit beiden Schutzsettings SET,B
3521-S006 Webzerf_PlanungVon / Webzerf_PlanungVon 1.m.j cDatumMuster → webzerf_planung Untergrenze Planung SET,B,PLAN
3521-S007 Webzerf_PlanungBis / Webzerf_PlanungBis lt.m+1.j cDatumMuster → webzerf_planung Obergrenze Planung; tatsächlich lt, nicht lt.m-Schreibfehler erfinden SET,B,PLAN
3521-S008 Webzerf_PlanungListen / WebZerf_PlanungListen 0 in Client; SQL NULL→0 GetEinstellungZw(EinstellungenZw.Wert) Fallback für Personen.WebZerf_info_planung beiNULL SET,PLAN,ES

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
3521-D001 Personen.PersonID SELECT Benutzerliste→JSON/PinHash aktiv1,AustrittNULL/zukünftig,WebZerf2=1 B
3521-D002 Personen.Pin SELECT Benutzerliste→JSON/PinHash aktiv1,AustrittNULL/zukünftig,WebZerf2=1 B
3521-D003 Personen.WebZerf2WildCard SELECT Benutzerliste→JSON/PinHash aktiv1,AustrittNULL/zukünftig,WebZerf2=1 B
3521-D004 Personen.Mail SELECT Benutzerliste→JSON/PinHash aktiv1,AustrittNULL/zukünftig,WebZerf2=1 B
3521-D005 Personen.WebZerf_buchung_erstellen SELECT Benutzerliste→JSON/PinHash aktiv1,AustrittNULL/zukünftig,WebZerf2=1 B
3521-D006 Personen.WebZerf_buchung_listen SELECT Benutzerliste→JSON/PinHash aktiv1,AustrittNULL/zukünftig,WebZerf2=1 B
3521-D007 Personen.WebZerf_buchung_edit SELECT Benutzerliste→JSON/PinHash aktiv1,AustrittNULL/zukünftig,WebZerf2=1 B
3521-D008 Personen.WebZerf_buchung_manuell SELECT Benutzerliste→JSON/PinHash aktiv1,AustrittNULL/zukünftig,WebZerf2=1 B
3521-D009 Personen.WebZerf_buchung_abwesend SELECT Benutzerliste→JSON/PinHash aktiv1,AustrittNULL/zukünftig,WebZerf2=1 B
3521-D010 Personen.aktiv SELECT Benutzerliste→JSON/PinHash aktiv1,AustrittNULL/zukünftig,WebZerf2=1 B
3521-D011 Personen.Austritt SELECT Benutzerliste→JSON/PinHash aktiv1,AustrittNULL/zukünftig,WebZerf2=1 B
3521-D012 Personen.WebZerf2 SELECT Benutzerliste→JSON/PinHash aktiv1,AustrittNULL/zukünftig,WebZerf2=1 B
3521-D013 Personen.PersonID SELECT Saldenfreigabe InfoSaldo1 und aktuelleWebZerf2Person SAL
3521-D014 Personen.aktiv SELECT Saldenfreigabe InfoSaldo1 und aktuelleWebZerf2Person SAL
3521-D015 Personen.Austritt SELECT Saldenfreigabe InfoSaldo1 und aktuelleWebZerf2Person SAL
3521-D016 Personen.WebZerf2 SELECT Saldenfreigabe InfoSaldo1 und aktuelleWebZerf2Person SAL
3521-D017 Personen.WebZerf_info_saldo SELECT Saldenfreigabe InfoSaldo1 und aktuelleWebZerf2Person SAL
3521-D018 BerechneteZeiten.Person SELECT MAXDatum,SUMTagessaldo,SUMUrlaub→SAL Datum⇐GETDATE SAL
3521-D019 BerechneteZeiten.Datum SELECT MAXDatum,SUMTagessaldo,SUMUrlaub→SAL Datum⇐GETDATE SAL
3521-D020 BerechneteZeiten.Tagessaldo SELECT MAXDatum,SUMTagessaldo,SUMUrlaub→SAL Datum⇐GETDATE SAL
3521-D021 BerechneteZeiten.Urlaub SELECT MAXDatum,SUMTagessaldo,SUMUrlaub→SAL Datum⇐GETDATE SAL
3521-D022 Personen.PersonID SELECT Planungsfreigabe, globalerFallback keineAktiv-/WebZerf2-Bedingung PLAN
3521-D023 Personen.WebZerf_info_planung SELECT Planungsfreigabe, globalerFallback keineAktiv-/WebZerf2-Bedingung PLAN
3521-D024 Pep2.Name SELECT Personenzeitraum/Tagesspanne/GanzTagstatus Planungszeitraum PLAN
3521-D025 Pep2.Datum SELECT Personenzeitraum/Tagesspanne/GanzTagstatus Planungszeitraum PLAN
3521-D026 Pep2.Kommen SELECT Personenzeitraum/Tagesspanne/GanzTagstatus Planungszeitraum PLAN
3521-D027 Pep2.Gehen SELECT Personenzeitraum/Tagesspanne/GanzTagstatus Planungszeitraum PLAN
3521-D028 Pep2.Status SELECT Personenzeitraum/Tagesspanne/GanzTagstatus Planungszeitraum PLAN
3521-D029 Tage.Datum SELECT Kalendertage auch ohne Planzeile Planungszeitraum PLAN
3521-D030 Kennzeichen.Kennzeichen SELECT Einzelner Ganztagstatus statt Zeitspanne Pep2.Status match,GanzTag1 PLAN
3521-D031 Kennzeichen.GanzTag SELECT Einzelner Ganztagstatus statt Zeitspanne Pep2.Status match,GanzTag1 PLAN
3521-D032 Kennzeichen.Bezeichnung SELECT Einzelner Ganztagstatus statt Zeitspanne Pep2.Status match,GanzTag1 PLAN
3521-D033 EinstellungenZw.Einstellung SELECT GetEinstellungZw('Webzerf_PlanungListen') Planungsfallback PLAN,ES
3521-D034 EinstellungenZw.Wert SELECT GetEinstellungZw('Webzerf_PlanungListen') Planungsfallback PLAN,ES
3521-D035 UmsatzVK.PersonID SELECT Istumsatz jePerson, Brutto/Netto aktuell ganzerMonat plusVormonat PROV
3521-D036 UmsatzVK.Datum SELECT Istumsatz jePerson, Brutto/Netto aktuell ganzerMonat plusVormonat PROV
3521-D037 UmsatzVK.VKWert SELECT Istumsatz jePerson, Brutto/Netto aktuell ganzerMonat plusVormonat PROV
3521-D038 UmsatzVK.VKWertNetto SELECT Istumsatz jePerson, Brutto/Netto aktuell ganzerMonat plusVormonat PROV
3521-D039 PepBerechnet.PersonID SELECT Zielumsatz/Sollzeit und Abzüge Monats-/gültigeHistorien PROV
3521-D040 PepBerechnet.Datum SELECT Zielumsatz/Sollzeit und Abzüge Monats-/gültigeHistorien PROV
3521-D041 PepBerechnet.Sollzeit SELECT Zielumsatz/Sollzeit und Abzüge Monats-/gültigeHistorien PROV
3521-D042 PepBerechnet.GutschriftFeiertag SELECT Zielumsatz/Sollzeit und Abzüge Monats-/gültigeHistorien PROV
3521-D043 PepBerechnet.GutschriftUrlaub SELECT Zielumsatz/Sollzeit und Abzüge Monats-/gültigeHistorien PROV
3521-D044 PepBerechnet.Urlaub SELECT Zielumsatz/Sollzeit und Abzüge Monats-/gültigeHistorien PROV
3521-D045 Pep2.Name SELECT 310SchuleZeit,311SchuleSoll,320BetriebsratZeit person-/taggleich PROV
3521-D046 Pep2.Datum SELECT 310SchuleZeit,311SchuleSoll,320BetriebsratZeit person-/taggleich PROV
3521-D047 Pep2.Status SELECT 310SchuleZeit,311SchuleSoll,320BetriebsratZeit person-/taggleich PROV
3521-D048 Pep2.Kommen SELECT 310SchuleZeit,311SchuleSoll,320BetriebsratZeit person-/taggleich PROV
3521-D049 Pep2.Gehen SELECT 310SchuleZeit,311SchuleSoll,320BetriebsratZeit person-/taggleich PROV
3521-D050 ITProvision.PersonenStammID SELECT Provisionsart1/3 gültigeHistorie PROV
3521-D051 ITProvision.von SELECT Provisionsart1/3 gültigeHistorie PROV
3521-D052 ITProvision.bis2 SELECT Provisionsart1/3 gültigeHistorie PROV
3521-D053 ITProvision.Kennzeichen SELECT Provisionsart1/3 gültigeHistorie PROV
3521-D054 ITORGA.PersonenStammID SELECT FallbackZielgruppe gültigeHistorie PROV
3521-D055 ITORGA.von SELECT FallbackZielgruppe gültigeHistorie PROV
3521-D056 ITORGA.bis2 SELECT FallbackZielgruppe gültigeHistorie PROV
3521-D057 ITORGA.Abteilung SELECT FallbackZielgruppe gültigeHistorie PROV
3521-D058 ITProvisionBereiche.PersonID SELECT Gruppen-/Faktoroverride gültigeHistorie PROV
3521-D059 ITProvisionBereiche.von SELECT Gruppen-/Faktoroverride gültigeHistorie PROV
3521-D060 ITProvisionBereiche.bis2 SELECT Gruppen-/Faktoroverride gültigeHistorie PROV
3521-D061 ITProvisionBereiche.PepGruppe SELECT Gruppen-/Faktoroverride gültigeHistorie PROV
3521-D062 ITProvisionBereiche.Faktor SELECT Gruppen-/Faktoroverride gültigeHistorie PROV
3521-D063 ProdZiel.PepGruppenID SELECT Gruppenproduktivität fürZiel gültigeHistorie PROV
3521-D064 ProdZiel.von SELECT Gruppenproduktivität fürZiel gültigeHistorie PROV
3521-D065 ProdZiel.bis2 SELECT Gruppenproduktivität fürZiel gültigeHistorie PROV
3521-D066 ProdZiel.Produktivitaet SELECT Gruppenproduktivität fürZiel gültigeHistorie PROV
3521-D067 Personen.PersonID SELECT Provisionsausgabe freigegeben beide1,keinAktivfilter PROV
3521-D068 Personen.WebZerf_info_prov SELECT Provisionsausgabe freigegeben beide1,keinAktivfilter PROV
3521-D069 Personen.WebZerf2 SELECT Provisionsausgabe freigegeben beide1,keinAktivfilter PROV

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

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

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