Benutzer-Werkzeuge

Webseiten-Werkzeuge


schnittstellen:7030

Schnittstelle 7030: Mefos-Zeitbuchungen importieren

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

Identität und Quellenstand

eProgramm.ImportMefos = 7030. Aktive feste Registrierung → cSchnittMefos.ImportZeitdaten (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.

Parameter und Dateilebenszyklus

PFAD ist zwar als Folder-Dialog registriert, der Code verlangt aber eine existierende einzelne Datei (File.Exists). Diese Abweichung ist ein Fehler-/Bedienhinweis, kein Verzeichnisimport. Datei wird vor jedem DB-Schreiben nach ApplicationDirectory/BACKUP/MEFOSyyyyMMddHHmmss.txt kopiert und das Original sofort gelöscht. BACKUP wird nicht angelegt; Timestampkollision führt zu Fehler. Bei späterem Importfehler bleibt nur diese Sicherung, nicht die Eingangsdaten am Originalpfad.

Festbreitenformat

Encoding.Default (Windows-Systemcodepage), genau25 Zeichen je Zeile; andere Längen still übersprungen. Positionen sind1-basiert:1 ungenutzt,2–5 Jahr,6–7 Monat,8–9 Tag,10–11 Stunde,12–13 Minute,14–15 Sekunde,16 Ereignis ('1'→K, alles andere→G),17–21 numerische Terminaladresse,22–25 Personen-ID. DateSerial/AddHours/Minutes/Seconds-Konvertierung statt strenger Formatvalidierung. Kein Headervertrag.

SQL und Ausgänge

Uhren.Art8 ordnet Adresse→Terminal-ID; unbekanntes Terminal wird als NULL übergeben. ZeitbuchungAddPersonID erhält @PersonID,@Datum,@TerminalID,@Kennung,NULL. Persongültigkeit samt ZETage/DATEFIRST, Eintritt/Austritt, aktiv/InZw und eindeutigen ITZeit/ITORGA; aktive Terminalfiliale nach ITUmbuchung. Ergebnis hängt von CALC_ZE_KOSTENSTELLE_EINTRAGEN/Hauptgruppe ab. Unaufgelöste Fälle gehen in ZeitereignisseBuffer, aufgelöste in Zeitereignisse; ausschließlich Append, keine Zeitkorrektur oder Calc.

Wiederholung und Fehler

Keine SP-/Dateigesamttransaktion oder Dedup. Wiederholung der Sicherung kann doppelt anfügen. CStatus-Filter @PersonID=@PersonID ist tautologisch: alle gültigen aktiven Personen des Buchungstags können auf1/tsGETDATE gesetzt werden. Die Markierung ist keine fertige Zeitberechnung.

Innerer Catch beendet restliche Dateilesung und liefert False ohne Detailmeldung; davor geschriebene Zeilen bleiben. Keine Uhren→False nach bereits erfolgter Eingangslöschung. LEGACY statt BASE-Mail/API. Dokumentation beschreibt Löschung, führt sie nicht aus.

Einstellungen und gemeinsame Nebenwirkungen

Gemeinsames Profil: LEGACY (interne Referenz).

Beziehung Schlüssel / Variable Default Einflussweg Wirkung Beleg
7030-S001 CALC_ZE_KOSTENSTELLE_EINTRAGEN / CALCZEKostenstelleEintragen 0 SQL GetEinstellungZw bei Kennzeichen=NULL/0 Nicht0→Haupt-Pepgruppe dieser Person als Kennzeichen; SQL liest Rohwert ohne Validierungscheck SQL,GET,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
7030-D001 Uhren.ID SELECT Art8, numerische Adresse→Terminal, dann Terminal→Filiale Doppelte/ungültige Adressen im VB still ignoriert B,SQL
7030-D002 Uhren.FilialID SELECT Art8, numerische Adresse→Terminal, dann Terminal→Filiale Doppelte/ungültige Adressen im VB still ignoriert B,SQL
7030-D003 Uhren.Adresse SELECT Art8, numerische Adresse→Terminal, dann Terminal→Filiale Doppelte/ungültige Adressen im VB still ignoriert B,SQL
7030-D004 Uhren.Art SELECT Art8, numerische Adresse→Terminal, dann Terminal→Filiale Doppelte/ungültige Adressen im VB still ignoriert B,SQL
7030-D005 Personen.PersonID SELECT Eindeutige aktive Person/Eintritt-Austritt, gültige Geschichte Genau eine Joinzeile, sonst NULL; ZETage nur PersonID/Transponderpfad PID
7030-D006 Personen.ZETage SELECT Eindeutige aktive Person/Eintritt-Austritt, gültige Geschichte Genau eine Joinzeile, sonst NULL; ZETage nur PersonID/Transponderpfad PID
7030-D007 Personen.Eintritt SELECT Eindeutige aktive Person/Eintritt-Austritt, gültige Geschichte Genau eine Joinzeile, sonst NULL; ZETage nur PersonID/Transponderpfad PID
7030-D008 Personen.Austritt SELECT Eindeutige aktive Person/Eintritt-Austritt, gültige Geschichte Genau eine Joinzeile, sonst NULL; ZETage nur PersonID/Transponderpfad PID
7030-D009 Personen.InZw SELECT Eindeutige aktive Person/Eintritt-Austritt, gültige Geschichte Genau eine Joinzeile, sonst NULL; ZETage nur PersonID/Transponderpfad PID
7030-D010 Personen.aktiv SELECT Eindeutige aktive Person/Eintritt-Austritt, gültige Geschichte Genau eine Joinzeile, sonst NULL; ZETage nur PersonID/Transponderpfad PID
7030-D011 ITZeit.PersonenStammID SELECT Personenauflösung Gültige aktive Geschichte; überlappende Historien können Mehrdeutigkeit erzeugen PID
7030-D012 ITZeit.von SELECT Personenauflösung Gültige aktive Geschichte; überlappende Historien können Mehrdeutigkeit erzeugen PID
7030-D013 ITZeit.bis SELECT Personenauflösung Gültige aktive Geschichte; überlappende Historien können Mehrdeutigkeit erzeugen PID
7030-D014 ITZeit.IsAktiv SELECT Personenauflösung Gültige aktive Geschichte; überlappende Historien können Mehrdeutigkeit erzeugen PID
7030-D015 ITORGA.PersonenStammID SELECT Personenauflösung Gültige Geschichte PID
7030-D016 ITORGA.von SELECT Personenauflösung Gültige Geschichte PID
7030-D017 ITORGA.bis SELECT Personenauflösung Gültige Geschichte PID
7030-D018 ITUmbuchung.PersonID SELECT Konkrete Terminalfiliale, ersatzweise NULL-Altfiliale Person/Tag SQL
7030-D019 ITUmbuchung.FilialeAlt SELECT Konkrete Terminalfiliale, ersatzweise NULL-Altfiliale Person/Tag SQL
7030-D020 ITUmbuchung.FilialeNeu SELECT Konkrete Terminalfiliale, ersatzweise NULL-Altfiliale Person/Tag SQL
7030-D021 ITUmbuchung.von SELECT Konkrete Terminalfiliale, ersatzweise NULL-Altfiliale Person/Tag SQL
7030-D022 ITUmbuchung.bis2 SELECT Konkrete Terminalfiliale, ersatzweise NULL-Altfiliale Person/Tag SQL
7030-D023 Filialen.FilialID SELECT Aktivitätsprüfung nach Umbuchung Terminalfiliale aufgelöst SQL
7030-D024 Filialen.aktiv SELECT Aktivitätsprüfung nach Umbuchung Terminalfiliale aufgelöst SQL
7030-D025 EinstellungenZw.Einstellung SELECT CALC_ZE_KOSTENSTELLE_EINTRAGEN Kennzeichen NULL/0, ungeprüfte SQL-Auswertung GET,SQL
7030-D026 EinstellungenZw.Wert SELECT CALC_ZE_KOSTENSTELLE_EINTRAGEN Kennzeichen NULL/0, ungeprüfte SQL-Auswertung GET,SQL
7030-D027 ITPEP.PersonenStammID SELECT TOP1 gültige Hauptgruppe Keine ORDER-BY-Stabilität SQL
7030-D028 ITPEP.von SELECT TOP1 gültige Hauptgruppe Keine ORDER-BY-Stabilität SQL
7030-D029 ITPEP.bis SELECT TOP1 gültige Hauptgruppe Keine ORDER-BY-Stabilität SQL
7030-D030 ITPEP.HauptGruppe SELECT TOP1 gültige Hauptgruppe Keine ORDER-BY-Stabilität SQL
7030-D031 ITPEP.Pepgruppe SELECT TOP1 gültige Hauptgruppe Keine ORDER-BY-Stabilität SQL
7030-D032 Zeitereignisse.Datum INSERT Personnummer/Datum/Kennung aus Datei, Filiale perTerminal/Umbuchung Gültige Person und aktive Filiale; kein Dedup SQL
7030-D033 Zeitereignisse.PersonID INSERT Personnummer/Datum/Kennung aus Datei, Filiale perTerminal/Umbuchung Gültige Person und aktive Filiale; kein Dedup SQL
7030-D034 Zeitereignisse.Terminal INSERT Personnummer/Datum/Kennung aus Datei, Filiale perTerminal/Umbuchung Gültige Person und aktive Filiale; kein Dedup SQL
7030-D035 Zeitereignisse.Kennzeichen INSERT Personnummer/Datum/Kennung aus Datei, Filiale perTerminal/Umbuchung Gültige Person und aktive Filiale; kein Dedup SQL
7030-D036 Zeitereignisse.Kennung INSERT Personnummer/Datum/Kennung aus Datei, Filiale perTerminal/Umbuchung Gültige Person und aktive Filiale; kein Dedup SQL
7030-D037 Zeitereignisse.Filiale INSERT Personnummer/Datum/Kennung aus Datei, Filiale perTerminal/Umbuchung Gültige Person und aktive Filiale; kein Dedup SQL
7030-D038 ZeitereignisseBuffer.Datum INSERT Nicht aufgelöste Person/Filiale; QuelleP Keine Zeitausweisbefüllung; kein Dedup SQL
7030-D039 ZeitereignisseBuffer.Kennzeichen INSERT Nicht aufgelöste Person/Filiale; QuelleP Keine Zeitausweisbefüllung; kein Dedup SQL
7030-D040 ZeitereignisseBuffer.Kennung INSERT Nicht aufgelöste Person/Filiale; QuelleP Keine Zeitausweisbefüllung; kein Dedup SQL
7030-D041 ZeitereignisseBuffer.PersonenStammID INSERT Nicht aufgelöste Person/Filiale; QuelleP Keine Zeitausweisbefüllung; kein Dedup SQL
7030-D042 ZeitereignisseBuffer.Filiale INSERT Nicht aufgelöste Person/Filiale; QuelleP Keine Zeitausweisbefüllung; kein Dedup SQL
7030-D043 ZeitereignisseBuffer.Terminal INSERT Nicht aufgelöste Person/Filiale; QuelleP Keine Zeitausweisbefüllung; kein Dedup SQL
7030-D044 ZeitereignisseBuffer.Quelle INSERT Nicht aufgelöste Person/Filiale; QuelleP Keine Zeitausweisbefüllung; kein Dedup SQL
7030-D045 CStatus.PersonenStammID SELECT ITZeit-Join und Tagesfilter SQL enthält @PersonID=@PersonID statt Personen-Spaltenfilter SQL
7030-D046 CStatus.Datum SELECT ITZeit-Join und Tagesfilter SQL enthält @PersonID=@PersonID statt Personen-Spaltenfilter SQL
7030-D047 ITZeit.PersonenStammID SELECT Aktive Statuspersonen des Tages Markierung kann alle aktiven Personen am Tag betreffen SQL
7030-D048 ITZeit.von SELECT Aktive Statuspersonen des Tages Markierung kann alle aktiven Personen am Tag betreffen SQL
7030-D049 ITZeit.bis2 SELECT Aktive Statuspersonen des Tages Markierung kann alle aktiven Personen am Tag betreffen SQL
7030-D050 ITZeit.IsAktiv SELECT Aktive Statuspersonen des Tages Markierung kann alle aktiven Personen am Tag betreffen SQL
7030-D051 CStatus.CStatus UPDATE 1, ts=GETDATE Keine Berechnung; tautologischer Personenfilter SQL
7030-D052 CStatus.ts UPDATE 1, ts=GETDATE Keine Berechnung; tautologischer Personenfilter SQL

Teststatus und Pflege

Keine Laufzeit-/Live-Schema-/Lieferformat-Abnahme, keine Codekorrektur. Q02 gilt für kundenspezifische Trigger/Constraints/DLLs/Jobs; weitere Grenzen siehe oben und Fragen (interne Referenz). 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

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/7030.txt · Zuletzt geändert: von codex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki