Inhaltsverzeichnis

Schnittstelle 7002: Datafox-Stammdaten, Salden und weitere Listen übertragen

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

Identität und Quellenstand

eProgramm.TerminalStammdatenDatafox = 7002. Aktive feste Registrierung → cSchnittDatafox.StammdatenDelegate (E,P). Registrierung und erreichbare Quellen geprüft; installierte Binärdateien ungeprüft. Active=True, InAutomatik=true, ManuellerAufruf=false, 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.

Parameter, Terminalwahl und Verbindung

ID (NumberLong) hat Registrierung.DefaultValue=-1, der Delegate liest aber nur Value und ruft keinen Defaultauflöser auf. Fehlender/nichtnumerischer/nicht gefüllter Value bleibt daher0, nicht automatisch -1. ID=-1→Uhren.Art1/Auto1, konkrete ID→auch nichtAuto; keine weiteren Fachdateiparameter.

Adresse ohne ';'→Bus254,ComTyp3,ComStringAdresse,ComValue8000,Timeout5000. Erweiterte Adresse 'Bus;ComTyp;ComString;ComValue;Timeout'; weniger5 Teile lässt Objekt uninitialisiert, Konvertierungsfehler können abbrechen. Immer DFCom-Verbindung1; Parallelaufrufe teilen die Kanalnummer. Anwendungsordner und relative Datafox-Pfade nicht pauschal identisch setzen. Direktes LEGACY-Logging, keine BASE-Mail/API.

Native Deklarationen benutzen DFComDll/x86-dekorierte Exporte; x64-Varianten im Code auskommentiert. Installierte DLL/Gerätetyp/Firmware/Setup nicht geprüft. Herstellerreferenz: lokale DFCom-Unterlage04.03.23, entsprechende API-HTML. Keine Gerätebefehle ausgeführt.

Auswahl der Ausgaben

Je Aktivierung werden Stamm, Salden, Anwesenheit, Nachrichten und Tätigkeiten vorbereitet. Stamm-/Saldo-/Anwesenheitexport schreibt zunächst Dateien für sämtliche passende Art1-Uhren, nicht nur die ausgewählte ID. Erst Upload ist auf die aktuelle Terminalwahl begrenzt. Kein fachlicher DB-Import, keine Neuberechnung.

PersonenTerminal(@Filiale): jetzt gültige ITORGA und Transponder/Transponder2>'0' oder FP1>'0', Namen/Ausweise/Fehlerflag. Keine Personaktiv-/Eintritt-/ITZeitfilter dieser UDF. Beide Ausweisfelder werden exportiert, unabhängig Terminal_UseTransponder2 (hier nicht gelesen).

SaldenTerminalFiliale oder …Pep: ITZeit mit 28 Tagen Vorlauf, SaldoTerminal<>0 und Filialzugehörigkeit bzw. SaldoTerminal2. Quelle<>0 akzeptiert zusätzlich ITPEP/PepGruppen-Filiale, verlangt Transponderlänge>4. Gesamtsaldo = frühere TagesSaldo bei LaufenderSaldo1 + Personen.KorrekturSaldo; Urlaub = Ansprüche Jahre⇐jetzt minus Verbrauch; FS aktuellesJahr; Angerechnet/Anwesend ab DatumSaldo/Terminal_DatumAb bis heute. Keine Berechnung, nur vorhandene Daten verdichten. Saldenquelle0 liefert AnwesendCutKZNetto, andereQuelle Anwesend.

Dateiformate

Anwendungsordner/Datafox, Encoding.Default und Tab getrennt, keine Quotes/Escapes:

TransponderTrim/Length gelten wie oben. Salden mit SaldoInStamm können an alte/stale Stammdatei angefügt werden, wenn Personenexport deaktiviert ist. LeereAuswahl garantiert keine leereGeräteliste, weil fehlende Datei übersprungen wird.

Code-/Schema- und Rückgabebefunde

SaldenTerminalFilialePep liefert keinen Transponder2, VB liest ihn dennoch im zweifachen Ausweisloop: konkrete Resultat-/Codeabweichung. Beide Salden-UDFs verwenden ITZeit.aktiv=1; vorhandene Migration0183 belegt IsAktiv, kein hier als garantiert installiert behauptetes aktiv-Feld. IsAnwesend-Status wird geliefert, aber nicht als eigeneSaldoausgabe geschrieben.

Bit16 setzt sc.CommandText auf TERM_Liste_Fehler und stellt ihn vor der nächsten Uhreniteration nicht zurück. Weitere Uhren können dadurch Fehlerresultat statt Saldenresultat erhalten. Fehlerliste braucht biszu3 negativeStatusdaten jePerson und liefert nurTransponder/Datum. Vorangegangene erzeugte Dateien bleiben bei Exportfehler bestehen.

DoUploadStamm kann durch ExportSalden überschrieben werden; ExportFalse deaktiviert eine Liste, wird nicht als globales Fehlersignal gesammelt. ExportTaetigkeit liefert selbst im Catch True. success entspricht letzter Uploadschleife, frühere Gerätfehler können durch spätereErfolge verdeckt werden. SQL_TIMEOUT wird für diese DB-Reads nicht gesetzt.

Listenübertragung und Wiederholung

Upload lädt Geräte-Listenbeschreibung (fest Bus254), leert lokalen Bibliothekspuffer und ordnet Listen nach Index zu:0 Stamm,1 Salden,2 Tätigkeit,3 Nachrichten,4 Anwesenheit. Feldzahl/-längen kommen aus Setup, nicht aus Feldnamen. Tabfile mit Encoding.Default, RemoveEmptyEntries; Zeilenbeginn ';' wird übersprungen. Leere Zeile kann line(0) fehlschlagen. Werte kürzer als Feldlänge werden NUL-gepaddet, längere nicht abgeschnitten; Zeichenzahl wird als native Bytezahl übergeben. Setup-/Codepage-/Marshalingkompatibilität bleibt Geräteabnahme.

DFCMakeListe stellt Bibliothekspuffer her; DFCLoadListen(1,254,…) überträgt diesen. Hersteller groupsetuplists.html: vorhandene Geräteliste erst nach erfolgreicher Übernahme ersetzt. Code verschiebt Inputdatei jedoch schon VOR LoadListen auf Filename+'_' (vorheriges '_' löschen). Gleiches File beim nächsten Lauf wird übersprungen, selbst wenn vorheriger Geräteupload fehlgeschlagen ist. Diese lokale Markierung beweist keinen Geräteempfang.

Upload kann bei c=0 True liefern, auch bei Open-/Checkfehler oder fehlender Datei. Kein Returnwert von GetListDefinition geprüft, gemeinsam globale STL-Strukturen. Keine Gesamttransaktion über Dateien/Geräte/LastGet. com.log im Anwendungsordner wird angefügt; relative Inputpfade können bei anderem CWD auf andere Dateien zeigen.

Einstellungen und gemeinsame Nebenwirkungen

Gemeinsames Profil: LEGACY (interne Referenz).

Beziehung Schlüssel / Variable Default Einflussweg Wirkung Beleg
7002-S001 TERMINAL_TRANSLENGTH / Terminal_TransponderLength 13 FillTransponder Padding auf Mindestlänge; längere Werte zunächst nicht abgeschnitten B,ZW
7002-S002 Terminal_TransponderTrim / Terminal_TransponderTrim True FillTransponder Leerzeichen/führende Nullen vor Padding entfernen B,ZW
7002-S003 TERMINAL_Personen / Terminal_Personen False ExportStamm PersonenTabliste erzeugen, ExportTrue setzt Uploadflag B,ZW
7002-S004 TERMINAL_SALDOART / Terminal_SaldoArt 0 >0 ExportSalden; Bitmaske 1Stunden,2Angerechnet,4Urlaub,8FS,16Fehler,32Anwesend B,ZW
7002-S005 TERMINAL_SaldoInStamm / Terminal_SaldoInStamm False Dateiziel/Listenflag Salden an Personalstamm anhängen statt eigeneListe; Exportflag kann Personenflag überschreiben B,ZW
7002-S006 Terminal_SaldoQuelle / Terminal_SaldoQuelle 0 UDF-Auswahl 0SaldenTerminalFiliale, sonst SaldenTerminalFilialePep B,ZW
7002-S007 Terminal_DatumAb / Terminal_DatumAb „1.m.j“ cDatumMuster bei Filialen.DatumSaldoNULL Untergrenze Angerechnet/Anwesend, nicht Gesamt-/Urlaubssaldo B,SALDO,SALDOPEP,ZW
7002-S008 TERMINAL_FilialeBeachten / Terminal_FilialeBeachten True Filialparameter/Alle-Schalter Personen/Saldo/Anwesenheit filialspezifisch oder alle; Ausnahmen SaldoTerminal2 B,PERS,SALDO,SALDOPEP,ANW,ZW
7002-S009 TERMINAL_Anwesenheit / Terminal_Anwesenheit False ExportAnwesenheit Zwei-FelderTabliste zu Liste4 B,ANW,ZW
7002-S010 TERMINAL_Nachrichten / Terminal_Nachrichten False ExportNachrichten Löscht Nachrichten.txt, erzeugt keine aktive Nachrichtendatei B,ZW
7002-S011 TERMINAL_Tätigkeit / Terminal_Tätigkeit False Je ausgewählter Uhr Tätigkeit.txt aus Uhr.Kostenstellen erzeugen; leereQuelleDummy B,ZW
7002-S012 TERMINAL_Datenquelle_Taetigkeit / Terminal_Datenquelle_Taetigkeit 1 TätigkeitSQL 1PepGruppen,2Filialen,sonstKostenstellen B,ZW
7002-S013 TERMINAL_VERSUCHE / Terminal_Versuche 2 UploadRetry1..N Keine Gesamtfehlerakkumulation über Geräte; 0 kann Arbeit auslassen B,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
7002-D001 Uhren.ID SELECT Datafox Art1; ID=-1 alle Auto1, andere ID auch nichtAuto Adresse als Verbindung, FilialID muss konvertierbar sein B
7002-D002 Uhren.Adresse SELECT Datafox Art1; ID=-1 alle Auto1, andere ID auch nichtAuto Adresse als Verbindung, FilialID muss konvertierbar sein B
7002-D003 Uhren.FilialID SELECT Datafox Art1; ID=-1 alle Auto1, andere ID auch nichtAuto Adresse als Verbindung, FilialID muss konvertierbar sein B
7002-D004 Uhren.Art SELECT Datafox Art1; ID=-1 alle Auto1, andere ID auch nichtAuto Adresse als Verbindung, FilialID muss konvertierbar sein B
7002-D005 Uhren.Auto SELECT Datafox Art1; ID=-1 alle Auto1, andere ID auch nichtAuto Adresse als Verbindung, FilialID muss konvertierbar sein B
7002-D006 Uhren.Kostenstellen SELECT Datafox Art1; ID=-1 alle Auto1, andere ID auch nichtAuto Adresse als Verbindung, FilialID muss konvertierbar sein B
7002-D007 Uhren.LastGet UPDATE GETDATE nach Helfer-True Kein unabhängiger Geräteerfolgsbeleg B
7002-D008 Uhren.ID SELECT Exports Stamm/Anwesenheit für ALLE Art1 mit nichtNULLFiliale Nicht nur aktuelleID-Auswahl B
7002-D009 Uhren.FilialID SELECT Exports Stamm/Anwesenheit für ALLE Art1 mit nichtNULLFiliale Nicht nur aktuelleID-Auswahl B
7002-D010 Uhren.Art SELECT Exports Stamm/Anwesenheit für ALLE Art1 mit nichtNULLFiliale Nicht nur aktuelleID-Auswahl B
7002-D011 Filialen.FilialID SELECT Saldenexport Art1 viaUhrenJoin DatumSaldo überschreibt Terminal_DatumAb B
7002-D012 Filialen.DatumSaldo SELECT Saldenexport Art1 viaUhrenJoin DatumSaldo überschreibt Terminal_DatumAb B
7002-D013 Personen.PersonID SELECT PersonenTerminal-Name/Ausweis/Gültigkeitsauswahl FP1 nurSelektion, keinTemplateexport PERS
7002-D014 Personen.Nachname SELECT PersonenTerminal-Name/Ausweis/Gültigkeitsauswahl FP1 nurSelektion, keinTemplateexport PERS
7002-D015 Personen.Vorname SELECT PersonenTerminal-Name/Ausweis/Gültigkeitsauswahl FP1 nurSelektion, keinTemplateexport PERS
7002-D016 Personen.Transponder SELECT PersonenTerminal-Name/Ausweis/Gültigkeitsauswahl FP1 nurSelektion, keinTemplateexport PERS
7002-D017 Personen.Transponder2 SELECT PersonenTerminal-Name/Ausweis/Gültigkeitsauswahl FP1 nurSelektion, keinTemplateexport PERS
7002-D018 Personen.FP1 SELECT PersonenTerminal-Name/Ausweis/Gültigkeitsauswahl FP1 nurSelektion, keinTemplateexport PERS
7002-D019 ITORGA.PersonenStammID SELECT Stamm gültigJetzt;Saldo bis28TageVorlauf,AnwesenheitJetzt Filialfilter oderAll PERS,SALDO,SALDOPEP,ANW,FEHLER
7002-D020 ITORGA.von SELECT Stamm gültigJetzt;Saldo bis28TageVorlauf,AnwesenheitJetzt Filialfilter oderAll PERS,SALDO,SALDOPEP,ANW,FEHLER
7002-D021 ITORGA.bis2 SELECT Stamm gültigJetzt;Saldo bis28TageVorlauf,AnwesenheitJetzt Filialfilter oderAll PERS,SALDO,SALDOPEP,ANW,FEHLER
7002-D022 ITORGA.Filiale SELECT Stamm gültigJetzt;Saldo bis28TageVorlauf,AnwesenheitJetzt Filialfilter oderAll PERS,SALDO,SALDOPEP,ANW,FEHLER
7002-D023 CStatus.PersonenStammID SELECT Namensstern/Fehlerzeilenletzte3 oderSaldoFehlerCount NegativeStatus fürFehlerliste;<>0 fürStamm/Saldo, Vergangenheit PERS,SALDO,SALDOPEP,FEHLER
7002-D024 CStatus.Datum SELECT Namensstern/Fehlerzeilenletzte3 oderSaldoFehlerCount NegativeStatus fürFehlerliste;<>0 fürStamm/Saldo, Vergangenheit PERS,SALDO,SALDOPEP,FEHLER
7002-D025 CStatus.CStatus SELECT Namensstern/Fehlerzeilenletzte3 oderSaldoFehlerCount NegativeStatus fürFehlerliste;<>0 fürStamm/Saldo, Vergangenheit PERS,SALDO,SALDOPEP,FEHLER
7002-D026 Personen.PersonID SELECT Salden/Status/Auswahl;SaldenTerminal2 unabhängigFiliale FPs nurUDF-Resultat, keineBiometrieübertragung SALDO,SALDOPEP
7002-D027 Personen.Nachname SELECT Salden/Status/Auswahl;SaldenTerminal2 unabhängigFiliale FPs nurUDF-Resultat, keineBiometrieübertragung SALDO,SALDOPEP
7002-D028 Personen.Vorname SELECT Salden/Status/Auswahl;SaldenTerminal2 unabhängigFiliale FPs nurUDF-Resultat, keineBiometrieübertragung SALDO,SALDOPEP
7002-D029 Personen.FP1 SELECT Salden/Status/Auswahl;SaldenTerminal2 unabhängigFiliale FPs nurUDF-Resultat, keineBiometrieübertragung SALDO,SALDOPEP
7002-D030 Personen.FP2 SELECT Salden/Status/Auswahl;SaldenTerminal2 unabhängigFiliale FPs nurUDF-Resultat, keineBiometrieübertragung SALDO,SALDOPEP
7002-D031 Personen.Transponder SELECT Salden/Status/Auswahl;SaldenTerminal2 unabhängigFiliale FPs nurUDF-Resultat, keineBiometrieübertragung SALDO,SALDOPEP
7002-D032 Personen.Transponder2 SELECT Salden/Status/Auswahl;SaldenTerminal2 unabhängigFiliale FPs nurUDF-Resultat, keineBiometrieübertragung SALDO,SALDOPEP
7002-D033 Personen.KorrekturSaldo SELECT Salden/Status/Auswahl;SaldenTerminal2 unabhängigFiliale FPs nurUDF-Resultat, keineBiometrieübertragung SALDO,SALDOPEP
7002-D034 Personen.SaldoTerminal SELECT Salden/Status/Auswahl;SaldenTerminal2 unabhängigFiliale FPs nurUDF-Resultat, keineBiometrieübertragung SALDO,SALDOPEP
7002-D035 ITZeit.PersonenStammID SELECT 28TageVorlaufundaktiv1 lautSaldoUDF; TagesSaldoSummegültigeHistorie aktiv-Spaltenname vs belegtesIsAktiv inU183 prüfen SALDO,SALDOPEP,FEHLER
7002-D036 ITZeit.von SELECT 28TageVorlaufundaktiv1 lautSaldoUDF; TagesSaldoSummegültigeHistorie aktiv-Spaltenname vs belegtesIsAktiv inU183 prüfen SALDO,SALDOPEP,FEHLER
7002-D037 ITZeit.bis2 SELECT 28TageVorlaufundaktiv1 lautSaldoUDF; TagesSaldoSummegültigeHistorie aktiv-Spaltenname vs belegtesIsAktiv inU183 prüfen SALDO,SALDOPEP,FEHLER
7002-D038 ITZeit.LaufenderSaldo SELECT 28TageVorlaufundaktiv1 lautSaldoUDF; TagesSaldoSummegültigeHistorie aktiv-Spaltenname vs belegtesIsAktiv inU183 prüfen SALDO,SALDOPEP,FEHLER
7002-D039 ITZeit.aktiv SELECT 28TageVorlaufundaktiv1 lautSaldoUDF; TagesSaldoSummegültigeHistorie aktiv-Spaltenname vs belegtesIsAktiv inU183 prüfen SALDO,SALDOPEP,FEHLER
7002-D040 ITPEP.PersonenStammID SELECT NurSaldoQuelle<>0 alternativeFilialzugehörigkeit Gültig bis28TageVorlauf SALDOPEP
7002-D041 ITPEP.von SELECT NurSaldoQuelle<>0 alternativeFilialzugehörigkeit Gültig bis28TageVorlauf SALDOPEP
7002-D042 ITPEP.bis2 SELECT NurSaldoQuelle<>0 alternativeFilialzugehörigkeit Gültig bis28TageVorlauf SALDOPEP
7002-D043 ITPEP.PepGruppe SELECT NurSaldoQuelle<>0 alternativeFilialzugehörigkeit Gültig bis28TageVorlauf SALDOPEP
7002-D044 PepGruppen.PEPGruppenID SELECT ITPEP→Filiale NurSaldoQuelle<>0 SALDOPEP
7002-D045 PepGruppen.Filiale SELECT ITPEP→Filiale NurSaldoQuelle<>0 SALDOPEP
7002-D046 BerechneteZeiten.Person SELECT SummenSaldo/Urlaub/FS,AngerechnetundAnwesenheitabDatumAb AnwesendCutKZNetto Quelle0;Anwesend Quelle<>0 SALDO,SALDOPEP
7002-D047 BerechneteZeiten.Datum SELECT SummenSaldo/Urlaub/FS,AngerechnetundAnwesenheitabDatumAb AnwesendCutKZNetto Quelle0;Anwesend Quelle<>0 SALDO,SALDOPEP
7002-D048 BerechneteZeiten.TagesSaldo SELECT SummenSaldo/Urlaub/FS,AngerechnetundAnwesenheitabDatumAb AnwesendCutKZNetto Quelle0;Anwesend Quelle<>0 SALDO,SALDOPEP
7002-D049 BerechneteZeiten.Urlaub SELECT SummenSaldo/Urlaub/FS,AngerechnetundAnwesenheitabDatumAb AnwesendCutKZNetto Quelle0;Anwesend Quelle<>0 SALDO,SALDOPEP
7002-D050 BerechneteZeiten.SamstagFrei SELECT SummenSaldo/Urlaub/FS,AngerechnetundAnwesenheitabDatumAb AnwesendCutKZNetto Quelle0;Anwesend Quelle<>0 SALDO,SALDOPEP
7002-D051 BerechneteZeiten.Angerechnet SELECT SummenSaldo/Urlaub/FS,AngerechnetundAnwesenheitabDatumAb AnwesendCutKZNetto Quelle0;Anwesend Quelle<>0 SALDO,SALDOPEP
7002-D052 BerechneteZeiten.AnwesendCutKZNetto SELECT SummenSaldo/Urlaub/FS,AngerechnetundAnwesenheitabDatumAb AnwesendCutKZNetto Quelle0;Anwesend Quelle<>0 SALDO,SALDOPEP
7002-D053 BerechneteZeiten.Anwesend SELECT SummenSaldo/Urlaub/FS,AngerechnetundAnwesenheitabDatumAb AnwesendCutKZNetto Quelle0;Anwesend Quelle<>0 SALDO,SALDOPEP
7002-D054 Urlaubsanspruch.Person SELECT SummebisaktuellesJahr minusUrlaubverbrauch Nicht aufDatumAb begrenzt SALDO,SALDOPEP
7002-D055 Urlaubsanspruch.Anspruch SELECT SummebisaktuellesJahr minusUrlaubverbrauch Nicht aufDatumAb begrenzt SALDO,SALDOPEP
7002-D056 Urlaubsanspruch.GültigVon SELECT SummebisaktuellesJahr minusUrlaubverbrauch Nicht aufDatumAb begrenzt SALDO,SALDOPEP
7002-D057 Zeitereignisse.PersonID SELECT IsAnwesend-Status imSaldoresultat, nicht inSaldoTab serialisiert HeutigerKalendertag, keinegeloescht-Prüfung STATUS
7002-D058 Zeitereignisse.Datum SELECT IsAnwesend-Status imSaldoresultat, nicht inSaldoTab serialisiert HeutigerKalendertag, keinegeloescht-Prüfung STATUS
7002-D059 Zeitereignisse.Kennung SELECT IsAnwesend-Status imSaldoresultat, nicht inSaldoTab serialisiert HeutigerKalendertag, keinegeloescht-Prüfung STATUS
7002-D060 Personen.PersonID SELECT DF_Anwesenheit Auswahl gültiger Personen mit Ausweis Alle oder Filialfilter; keine Aktiv/InZw-Prüfung, kein Transponder2 ANW
7002-D061 Personen.Transponder SELECT DF_Anwesenheit Auswahl gültiger Personen mit Ausweis Alle oder Filialfilter; keine Aktiv/InZw-Prüfung, kein Transponder2 ANW
7002-D062 Personen.Eintritt SELECT DF_Anwesenheit Auswahl gültiger Personen mit Ausweis Alle oder Filialfilter; keine Aktiv/InZw-Prüfung, kein Transponder2 ANW
7002-D063 Personen.Austritt SELECT DF_Anwesenheit Auswahl gültiger Personen mit Ausweis Alle oder Filialfilter; keine Aktiv/InZw-Prüfung, kein Transponder2 ANW
7002-D064 ITORGA.PersonenStammID SELECT Nur bei FilialeBeachtenTrue Jetzt gültige Filialzugehörigkeit ANW
7002-D065 ITORGA.von SELECT Nur bei FilialeBeachtenTrue Jetzt gültige Filialzugehörigkeit ANW
7002-D066 ITORGA.bis2 SELECT Nur bei FilialeBeachtenTrue Jetzt gültige Filialzugehörigkeit ANW
7002-D067 ITORGA.Filiale SELECT Nur bei FilialeBeachtenTrue Jetzt gültige Filialzugehörigkeit ANW
7002-D068 Zeitereignisse.PersonID SELECT Max nichtgelöschtes Ereignis letzte24h bisNow+10min, letzter Kennung K→1 sonst0 Kennung-Rückjoin ohne geloescht-Filter; Gleichzeitigkeit mehrdeutig ANW
7002-D069 Zeitereignisse.Datum SELECT Max nichtgelöschtes Ereignis letzte24h bisNow+10min, letzter Kennung K→1 sonst0 Kennung-Rückjoin ohne geloescht-Filter; Gleichzeitigkeit mehrdeutig ANW
7002-D070 Zeitereignisse.Kennung SELECT Max nichtgelöschtes Ereignis letzte24h bisNow+10min, letzter Kennung K→1 sonst0 Kennung-Rückjoin ohne geloescht-Filter; Gleichzeitigkeit mehrdeutig ANW
7002-D071 Zeitereignisse.geloescht SELECT Max nichtgelöschtes Ereignis letzte24h bisNow+10min, letzter Kennung K→1 sonst0 Kennung-Rückjoin ohne geloescht-Filter; Gleichzeitigkeit mehrdeutig ANW
7002-D072 PepGruppen.PepGruppenID SELECT Tätigkeitsliste8stelligeID+Left20Bezeichnung Datenquelle1, IN-Liste ausUhren.Kostenstellen B
7002-D073 PepGruppen.pepGruppenBez SELECT Tätigkeitsliste8stelligeID+Left20Bezeichnung Datenquelle1, IN-Liste ausUhren.Kostenstellen B
7002-D074 Filialen.FilialID SELECT Tätigkeitsliste Datenquelle2 B
7002-D075 Filialen.Bezeichnung SELECT Tätigkeitsliste Datenquelle2 B
7002-D076 Kostenstellen.ID SELECT Tätigkeitsliste AndereDatenquellewerte B
7002-D077 Kostenstellen.Bezeichnung SELECT Tätigkeitsliste AndereDatenquellewerte B

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 LEGACY

Block17 ergänzt6001/6002/6003/6004/6005 ausschließlich für direkte Info-/Dialog-/Logmeldungen; keine BASE-Mail/API. Parameter, Auswahl, Return und Fachwirkung jeID.

Block16 ergänzt explizit3031/3032/3041/3042/3060/3500 für die direkten Info-/Logmeldungen. Keine BASE-Vererbung bzw. Mail-/API-Nebenwirkung; Fachdateien/SQL/Returns pro ID prüfen. Keine pauschale Übernahme alter Dateiverträge.

Stand 2026-10-02; statisch geprüft am Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Mitglieder ausschließlich durch expliziten Profilverweis: Block 07, IDs 2000, 2001, 2010, 2020, 3020, 3021, 3030, 3040, 3050, 3070.

Block 13: Profil für 1067,1070,1073 nur bezüglich direkter cInfoTools-Dialog-/Logmeldungen und ihrer zwei Einstellungen wiederverwendet. Deren Datei-/Rückgabe-/Timeout-/Folgeaufrufverträge stehen ausschließlich in den Einzelbeschreibungen; die nachfolgenden Block-07-PFAD-/Return-Aussagen sind keine pauschale Behauptung für diese drei neuen IDs.

Block14 nutzt LEGACY ausschließlich für direkte Info-/Logpfade von 1100,1101,1102,1103,1200,1207,1208,1209,1223. Keine pauschale Übernahme der nachfolgenden Block07-Datei-/Rückgabeverträge; konkrete Unterschiede stehen je ID. 1203 verwendet nur direkten MsgBox-Fehlerpfad und ist kein Mitglied.

Block15 ergänzt ausdrücklich 1224/1225/1226/1320/1360/1400/1401/2021/2023 sowie die Veraltet-Stubs 2028/2029/2032/2046/2047/2048. Nur direkte Info-/Logpfade; konkrete Datei-/Return-/Timeoutverträge stehen je ID. Die sechs Stubs erben als Klasse zwar BASE, instanziieren aber nichts und rufen deren Start/Ende nicht auf. 2022 hat keinen solchen Pfad.

Abgrenzung und Ablauf

Die belegten LEGACY-Einstiege rufen cSchnitt_Basis.Start/Ende nicht auf. Die ursprünglichen Block-07-Klassen erben auch nicht von der Basis; für spätere statische Stubs gilt dagegen nur die fehlende Start-/Ende-Ausführung. Deshalb keine BASE-Mail-/API-/Outboxbeziehungen übernehmen. MAILTO wird zwar von cProgramm angelegt, aber hier nicht ausgewertet; ebenso keine fachliche Auswertung von MANUELL oder SILENT. RunWithDialog setzt MANUELL. Dialogunterdrückung kommt aus Settings.Info.SupressDialogs (Clientkonstruktor False, Worker True), kein belegter ZW-Schlüssel.

Die folgenden Datei-/Return-Aussagen gelten für Block 07, nicht pauschal für spätere Profilmitglieder. PFAD ist FileImport, auch bei den Exporten 2001/3021: vorhandene Datei erforderlich, OpenFileDialog statt SaveFileDialog. Der lokale Registrywert PEP3/PFADESCHNITT/<ID> speichert den zuletzt verwendeten Ordner; dies ist keine serverseitige Systemeinstellung. Fehlender PFAD-Schlüssel ergibt False mit Fehlermeldung. Value.ToString bei Nothing liegt vor dem Fach-Try und kann ungefangen abbrechen. Datei-Existenzprüfung und Startmeldung liegen ebenfalls davor.

Meldungen: ShowProgrammStart/ShowProgrammEndeSuccessDialog mit Level 51, ShowProgrammEndeErrorDialog 102, ShowExceptionDialog 105 → ZeigeInfoEvent, ggf. Dialog, Log. Kein Nachweis über externe Event-Abonnentenwirkungen. Dialog kann unterdrückt sein, Logging bleibt separat. Die acht Ausführen-Funktionen außer 2010/3070 haben keinen abschließenden Return und liefern deshalb Boolean False, auch wenn Daten geändert wurden. 2020/3020 und die beiden Exporte haben zusätzlich im Fachhelfer keinen Return; dort wird bereits Success=False und ein Fehlerdialog gewählt. 2000/3030/3040/3050 können Erfolg melden und dennoch False liefern.

Einstellungen

Beziehung Schlüssel / Variable Default Einfluss Wirkung Beleg
LEGACY-S001 GLOBAL_LOGLEVEL / GLOBAL_LOGLEVEL 50 Init → Info.LogLevel Meldung ab einschließlich Grenzwert in Datei/DB; verändert keine Fachdaten LEGACY:SET, LEGACY:INIT, LEGACY:INFO
LEGACY-S002 GLOBAL_LOGLEVELEVLOG / GLOBAL_LOGLEVELEVENTLOG 0 Init → Info.LogLevelEvLog Windows-Ereignisprotokoll nur bei Level > Grenze, Grenze > 0 und Level < 200 LEGACY:SET, LEGACY:INIT, LEGACY:INFO

Beide gezeigten Settings-Konstruktoren setzen AlwaysToFile=True. Oberhalb LogLevel werden Datei UND DB versucht; bei False nur DB, Datei als Fehlerfallback. Datei unter ApplicationData/PEP/LogFiles/yyyyMMdd_peplog.txt (Append). DB-Fehler werden als False abgefangen, verhindern nicht zwingend den Import. EventLog-Fehler werden geschluckt. Direkte Fachcommands des Block 07 setzen kein Timeout; SQL_TIMEOUT ist in diesen zehn Pfaden nicht gelesen. Keine zusätzliche fachliche ZW-Einstellung nachgewiesen, auch nicht in spCalcUmsatzPlan.

Datenbeziehungen

DB-Rolle PEP4-Anmeldedatenbank. Log schreibt über eigene Verbindung; nicht atomar mit Fachoperationen. fnUserId liest minimalen UserID zum rechten 25-Zeichen-Teil von SUSER_NAME(), sonst 0.

Beziehung Tabelle.Feld Operation Datenfluss / Verwendung Bedingung Beleg
LEGACY-D001 Pep3Log.UserID INSERT dbo.fnUserId() Meldungslevel erreicht DB-Log LEGACY:INFO, LEGACY:FN
LEGACY-D002 Pep3Log.Datum INSERT getdate() Meldungslevel erreicht DB-Log LEGACY:INFO
LEGACY-D003 Pep3Log.Kurz INSERT Kurztext, maximal 255 Zeichen Meldungslevel erreicht DB-Log LEGACY:INFO
LEGACY-D004 Pep3Log.LogText INSERT Detailtext einschließlich Pfad/ggf. Exception Meldungslevel erreicht DB-Log LEGACY:INFO
LEGACY-D005 Pep3Log.Modul INSERT Modulbezeichnung, maximal 50 Zeichen Meldungslevel erreicht DB-Log LEGACY:INFO
LEGACY-D006 Pep3Log.InfoLevel INSERT 51, 102 oder 105 je Meldung Meldungslevel erreicht DB-Log LEGACY:INFO
LEGACY-D007 tblUser.Name SELECT Abgleich RIGHT(SUSER_NAME(),25) fnUserId bei Log-INSERT LEGACY:FN
LEGACY-D008 tblUser.UserID SELECT MIN(UserID), fehlend → 0 fnUserId bei Log-INSERT LEGACY:FN

Quellenverzeichnis

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