Benutzer-Werkzeuge

Webseiten-Werkzeuge


schnittstellen:7012

Schnittstelle 7012: Gantner-Stammdaten und Fingerprints übertragen

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

Identität und Quellenstand

eProgramm.TerminalStammdatenGantner = 7012. Aktive feste Registrierung → cSchnittGantner.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.

Terminalwahl und Verbindung

ID=NumberLong, -1 alle Auto1-Uhren.Art6, sonst konkreteID unabhängigAuto. Delegate verwendet ausschließlich Value; fehlend/nichtnumerisch→0. Registrierter DefaultValue ist kein im Delegate aufgelöster Fallback. Adresse ist FTP-/Ping-Ziel. Relative Arbeitsdateien teilen sich alle Geräte/Prozesse; kein Lock oder separate Task-Datei.

FTP nutzt hartcodierte Credentials (Werte nicht dokumentieren), nicht FTPS. Downloadtimeout10s, Upload20s; SQL_TIMEOUT wird hier nicht gesetzt. LEGACY-Meldungen, keine BASE-Mail/API. Keine Gerätekommunikation ausgeführt.

Biometrischer Eingang vor Stammdatenexport

Je Gerät FTP_Download FingerTemplates.exp, danach FingerPrintsToDB. Download hängt '###UHR###;TerminalID' und Rohtext an relative FingerTemplates.exp, wartet 5s und löscht die Gerätedatei. Weitere Lieferungen alle 3s bis kein positiver Inhalt. Return -1 wird in Download_FingerPrints nicht zuverlässig als False behandelt; nur Exceptions ergeben False.

UTF8-/Semikolonfile, Markerzeilen werden übersprungen. Andere Zeilen brauchen mindestens vier Felder: 0 unbenutzt, 1 PersonID, 2 Fingerindex '1'/'2', 3 Template. UPDATE Personen.FP1 bzw. FP2, keine INSERTs oder Personenanlage. Weitere Fingerindices werden nicht geschrieben, trotzdem gezählt. Danach Backup ApplicationDirectory/BACKUP/yyyyMMdd_HHmmss_ffff_FingerTemplates.exp und Löschen der lokalen Quelle. Keine Gesamttransaktion: Fehler kann bereits aktualisierte FP-Felder hinterlassen. Helferbool entspricht Zeilenanzahl (0→False); Ergebnis wird außen ignoriert. Keine biometrischen Inhalte in Doku oder Logbeispiele kopieren.

Ausgang down.dat

Nach Fingerprintphase relative down.dat löschen und Export_Stamm neu erzeugen (StandardUTF8, Semikolon, keine Quotes/Escapes). dbo.SaldenTerminal() liefert globalen Bestand, nicht pro Gerätefiliale. Beginn '1012;' (Gerätekommando; Bedeutung ohne Geräteunterlage nicht bestätigt). Je Person:

  • '1010;PersonID;PersonID;Nachname,Vorname;;Verifikation;Status;;;;;;;;;;'. Verifikation 1 bei V im Transponder, sonst 0; Status -1→2, 1→1, sonst 0.
  • Optional '1015;PersonID;1;' für AdminTerminal.
  • '1020;PersonID;Transponder;01;'; äußere '*'/'V' werden vom Transponder entfernt.
  • '1030;PersonID;ausgewählte Salden…;' gemäß Bitmaske: Stunden/Monat kulturabhängig 0.00, Urlaub/FS ganzzahlig.
  • '1040;PersonID;1;FP1' und '1040;PersonID;2;FP2', sofern nicht DBNull (auch leere Strings).

Am Ende 1010/1015 für synthetischen Admin ENROLLMENT, ID='987'+lokaler Tag. Keine filialspezifische Auswahl; Fingerprints und Personendaten gehen an alle gewählten Terminals. UDF wählt ITZeit mit 28 Tagen Vorlauf und Transponder>'0'/Transponder2>'0'/FP1 nichtleer; FP2 allein genügt nicht. Keine Personenaktiv-/Eintritt-/Austrittsprüfung in dieser UDF.

Fehler, Datenschutz und Wiederholung

Export_Stamm-Boolean wird ignoriert; danach FTP_Upload auf jedes Gerät. Download-/Uploadfehler werden aggregiert, FP-DB-/Exportfehler können dagegen verdeckt bleiben. UploadTrue→LastGet. SCHNITT_GanterLog schreibt komplettes down.dat einschließlich Fingerprints/Personendaten. Dateien und FTP sind unverschlüsselt; geschützter Betrieb ist erforderlich.

Keine Calc-Ausführung; Fach-UDFs lesen nur, außer FP-/LastGet-Schreiben. IsAnwesend benutzt letztes Kalendertagsereignis ohne Gelöscht-/Zukunft-/Filialfilter; Status ist kein Zeitberechnungsbeleg. Wiederholung erneuert Stamm/FP, keine atomare Eingang-/Ausgangskopplung.

Einstellungen und gemeinsame Nebenwirkungen

Gemeinsames Profil: LEGACY (interne Referenz).

Beziehung Schlüssel / Variable Default Einflussweg Wirkung Beleg
7012-S001 SCHNITT_GantnerPing / SCHNITTGantnerPing True FTP-Helfer ICMP vor Zugriff Zusätzliche Erreichbarkeitsprüfung; kein Verfügbarkeitsbeleg für FTP B,ZW
7012-S002 SCHNITT_GanterLog / SCHNITTGanterLog False Vor FTP Upload Angefülltes GANTNER/yyyyMMdd_UPLOAD.log mit vollständigem Dateiinhalt; sensible Person-/FP-Daten möglich B,ZW
7012-S003 TERMINAL_SALDOART / Terminal_SaldoArt 0 Bitmaske1030 1 Stunden, 2 StundenMonat, 4 Urlaub, 8 FS; 0 keine Saldenausgabe 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
7012-D001 Uhren.ID SELECT GantnerArt6/ID-1Auto sonstkonkret Keine Filialdatenselektion B
7012-D002 Uhren.Adresse SELECT GantnerArt6/ID-1Auto sonstkonkret Keine Filialdatenselektion B
7012-D003 Uhren.Art SELECT GantnerArt6/ID-1Auto sonstkonkret Keine Filialdatenselektion B
7012-D004 Uhren.Auto SELECT GantnerArt6/ID-1Auto sonstkonkret Keine Filialdatenselektion B
7012-D005 Uhren.LastGet UPDATE GETDATEbeiUploadTrue Kein bestätigter Geräteeinspielbeleg B
7012-D006 Personen.PersonID SELECT UPDATE-FP-Ziel Eingangs-Personnummer B
7012-D007 Personen.FP1 UPDATE FingerTemplates.exp Felder1/2/3 bestimmen Person/Finger/Template Kein Neuanlegen Personen, kein Historien-/Gültigkeitsfilter B
7012-D008 Personen.FP2 UPDATE FingerTemplates.exp Felder1/2/3 bestimmen Person/Finger/Template Kein Neuanlegen Personen, kein Historien-/Gültigkeitsfilter B
7012-D009 Personen.PersonID SELECT SaldenTerminal-Resultat für Name,Ausweis,FP/Admin und Korrektursaldo SQL-Quelle global, nicht proUhr/Filiale eingeschränkt SALDO
7012-D010 Personen.Nachname SELECT SaldenTerminal-Resultat für Name,Ausweis,FP/Admin und Korrektursaldo SQL-Quelle global, nicht proUhr/Filiale eingeschränkt SALDO
7012-D011 Personen.Vorname SELECT SaldenTerminal-Resultat für Name,Ausweis,FP/Admin und Korrektursaldo SQL-Quelle global, nicht proUhr/Filiale eingeschränkt SALDO
7012-D012 Personen.FP1 SELECT SaldenTerminal-Resultat für Name,Ausweis,FP/Admin und Korrektursaldo SQL-Quelle global, nicht proUhr/Filiale eingeschränkt SALDO
7012-D013 Personen.FP2 SELECT SaldenTerminal-Resultat für Name,Ausweis,FP/Admin und Korrektursaldo SQL-Quelle global, nicht proUhr/Filiale eingeschränkt SALDO
7012-D014 Personen.Transponder SELECT SaldenTerminal-Resultat für Name,Ausweis,FP/Admin und Korrektursaldo SQL-Quelle global, nicht proUhr/Filiale eingeschränkt SALDO
7012-D015 Personen.Transponder2 SELECT SaldenTerminal-Resultat für Name,Ausweis,FP/Admin und Korrektursaldo SQL-Quelle global, nicht proUhr/Filiale eingeschränkt SALDO
7012-D016 Personen.AdminTerminal SELECT SaldenTerminal-Resultat für Name,Ausweis,FP/Admin und Korrektursaldo SQL-Quelle global, nicht proUhr/Filiale eingeschränkt SALDO
7012-D017 Personen.KorrekturSaldo SELECT SaldenTerminal-Resultat für Name,Ausweis,FP/Admin und Korrektursaldo SQL-Quelle global, nicht proUhr/Filiale eingeschränkt SALDO
7012-D018 ITZeit.PersonenStammID SELECT Auswahl bisHeute und bis28Tagevorlauf; LaufenderSaldo1 in TagesSaldoSumme Kein IsAktiv-Filter in dieser UDF SALDO
7012-D019 ITZeit.von SELECT Auswahl bisHeute und bis28Tagevorlauf; LaufenderSaldo1 in TagesSaldoSumme Kein IsAktiv-Filter in dieser UDF SALDO
7012-D020 ITZeit.bis2 SELECT Auswahl bisHeute und bis28Tagevorlauf; LaufenderSaldo1 in TagesSaldoSumme Kein IsAktiv-Filter in dieser UDF SALDO
7012-D021 ITZeit.LaufenderSaldo SELECT Auswahl bisHeute und bis28Tagevorlauf; LaufenderSaldo1 in TagesSaldoSumme Kein IsAktiv-Filter in dieser UDF SALDO
7012-D022 BerechneteZeiten.Person SELECT Summen vor SQLGETDATE; MonatssummeaktuellerMonat, FSaktuellesJahr Keine Neuberechnung; NULLsummen VB Nz SALDO
7012-D023 BerechneteZeiten.Datum SELECT Summen vor SQLGETDATE; MonatssummeaktuellerMonat, FSaktuellesJahr Keine Neuberechnung; NULLsummen VB Nz SALDO
7012-D024 BerechneteZeiten.TagesSaldo SELECT Summen vor SQLGETDATE; MonatssummeaktuellerMonat, FSaktuellesJahr Keine Neuberechnung; NULLsummen VB Nz SALDO
7012-D025 BerechneteZeiten.Urlaub SELECT Summen vor SQLGETDATE; MonatssummeaktuellerMonat, FSaktuellesJahr Keine Neuberechnung; NULLsummen VB Nz SALDO
7012-D026 BerechneteZeiten.SamstagFrei SELECT Summen vor SQLGETDATE; MonatssummeaktuellerMonat, FSaktuellesJahr Keine Neuberechnung; NULLsummen VB Nz SALDO
7012-D027 BerechneteZeiten.Angerechnet SELECT Summen vor SQLGETDATE; MonatssummeaktuellerMonat, FSaktuellesJahr Keine Neuberechnung; NULLsummen VB Nz SALDO
7012-D028 Urlaubsanspruch.Person SELECT Jahre⇐aktuellesJahr minus verbrauchterUrlaub Kein GültigBis-Feldfilter SALDO
7012-D029 Urlaubsanspruch.Anspruch SELECT Jahre⇐aktuellesJahr minus verbrauchterUrlaub Kein GültigBis-Feldfilter SALDO
7012-D030 Urlaubsanspruch.GültigVon SELECT Jahre⇐aktuellesJahr minus verbrauchterUrlaub Kein GültigBis-Feldfilter SALDO
7012-D031 CStatus.PersonenStammID SELECT Fehlerzählung zurückgeliefert, VB nicht serialisiert Datum<GETDATE und CStatus<>0 SALDO
7012-D032 CStatus.Datum SELECT Fehlerzählung zurückgeliefert, VB nicht serialisiert Datum<GETDATE und CStatus<>0 SALDO
7012-D033 CStatus.CStatus SELECT Fehlerzählung zurückgeliefert, VB nicht serialisiert Datum<GETDATE und CStatus<>0 SALDO
7012-D034 Zeitereignisse.PersonID SELECT IsAnwesend: letzterKalendertagsatz K/T→1,G→0;sonstParity,keineBuchung→-1 Kein geloescht/Datum⇐Now/Filialfilter; TOP1beiGleichzeitigkeitohneOrder ANW
7012-D035 Zeitereignisse.Datum SELECT IsAnwesend: letzterKalendertagsatz K/T→1,G→0;sonstParity,keineBuchung→-1 Kein geloescht/Datum⇐Now/Filialfilter; TOP1beiGleichzeitigkeitohneOrder ANW
7012-D036 Zeitereignisse.Kennung SELECT IsAnwesend: letzterKalendertagsatz K/T→1,G→0;sonstParity,keineBuchung→-1 Kein geloescht/Datum⇐Now/Filialfilter; TOP1beiGleichzeitigkeitohneOrder ANW

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki