Benutzer-Werkzeuge

Webseiten-Werkzeuge


schnittstellen:1222

Schnittstelle 1222: Aprocon-Istzeitdatei

Diese technische Referenz beschreibt die Eingänge, Ausgänge und aktiven Codepfade von Aprocon-Istzeitdatei. Sie ist keine Anleitung zur ungeprüften Ausführung.

Stand: 02.10.2026, Desktop-Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Statisch dokumentiert; Nutzerprüfung offen. Kein Import, Datenbank- oder HTTP-Test.

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

Identität und Quellenstand

eProgramm.ImpIstzeitenApc = 1222. Aktive feste Registrierung → cSchnittZeitenAproconFile.Ausführen; Projekteinschluss bestätigt (E,P,PRJ). Active=True, InAutomatik=True und ManuellerAufruf=True (Registrierung bzw. Klassendefault); NurAufServer=False (Default bzw. Registrierung). Keine Aussage über eingerichtete Automatik oder produktive Nutzung.

Zweck, Parameter und Dateivertrag

Aprocon-Personalzeiten-Datei → Zeitereignisse oder Buffer; kein direkter Istzeiten-INSERT. PFAD=FileImport (Dialog PERSONALZEITEN.CSV), FID=NumberLong default0. SetLongValue(FID,True) wird aufgerufen, dessen Rückgabewert ignoriert. Encoding.Default, Semikolon, Quotes/Trim, keine Kopfzeilen-/Feldzahlprüfung. Positionen ab1:1 externe Filiale,2 Personal-ApcID,3 Datum,4 Kommen,5 Gehen.

FID>0 bildet Mappingnummer=Dateifiliale*100+FID, sonst Dateifiliale. Filialen.ApcID>0→FilialID; unbekannte Filiale wird übersprungen, Dublette setzt Fehler und erste Zuordnung bleibt. Nur exakt '00:00:00' wird ausgelassen. StrToLng-Fehler→0; StrToDate-Fehler→31.12.2099, kein fachlicher Reject. K/G je eigener SP-Aufruf. VB ApcID-Parameter varchar15, SP bigint: Konvertierung beachten.

Betrieb und frühere Wiki-Hinweise

Keine Archivierung/Transaktion/Calc; Commands Standard30s. Verbindungs-/Mappingfehler liegen außerhalb Parser-Try und können BASE-Ende überspringen. Parserfehler setzt Stopp; inneres Import untypisiert, Shared liefert result als Boolean.

Bisherige Wiki nennt korrekt Filialen.ApcID, Personen.ApcID und Terminal Art allgemein(0). Die Empfehlung Terminal-ID=Filialnummer ist keine SQL-Pflicht: SP sucht per FilialID/Art0. Warnung vor paralleler Terminal-/Waagenversorgung wegen Doppelbuchungen bleibt als Betriebsregel erhalten; dieser Import enthält keine generelle Waagenverbotsprüfung.

Gemeinsame SQL-Kette und tatsächliche Wirkung

ZeitbuchungAddAprocon(@ApcID bigint,@Datum datetime,@FilialID bigint,@Kennung char1) → GetPersonIDFromApcID und GetEinstellungZw. Jede neue Kombination Datum/ApcID/Kennung wird vor Personen-/Filialprüfung in ZeitereignisseImportiert markiert; Filiale ist kein Teil des Dedupmatches. Keine Transaktion: scheitert der Folgeschritt, kann der Marker Wiederholung sperren.

GetPersonIDFromApcID reduziert Datum auf Tag und verlangt genau eine Joinzeile: Personen.ApcID, ZETage-Wochentagsbit (DATEFIRST-abhängig), Eintritt/Austritt, InZw=1/aktiv=1 sowie taggültige ITZeit.IsAktiv1 und ITORGA. Auch überlappende Historien können mehr als eine Zeile und deshalb NULL erzeugen.

Aktive Filiale bestimmen, Uhren TOP1 mit FilialID/Art0 laden (ohne Reihenfolge), dann ITUmbuchung (FilialeAlt passend, ersatzweise NULL) am Tag/Person. Terminal wird nach Umbuchung nicht neu ermittelt. Sind Person/Filiale bekannt: Kennzeichen aus SCHNITT_APC_ZE_KZStd, optional ITPEP.PepGruppe als Stammkostenstelle; Zeitereignisse INSERT. Sonst ZeitereignisseBuffer INSERT QuelleA mit ggf.NULL-Zuordnungen.

ZE-F01: Stammkostenstellen-SELECT fehlt Personenfilter (nur Datum/HauptGruppe1). ZE-F02: CStatus-UPDATE benutzt @PersonID=@PersonID statt Spaltenvergleich; es markiert alle aktiven ITZeit-Personen am Buchungstag (CStatus1/tsnow), nicht nur die buchende Person. Das ist Markierung, nicht ausgeführte Zeitberechnung.

SQLGetEinstellungZw liest EinstellungenZw.Wert nach Schlüssel; fehlender Schlüssel ergibtNULL, numerische Konvertierung kann scheitern. Keine eigene Fachtransaktion. Test: Dedup nach Teilfehler, unaufgelöste/mehrdeutige Person, Umbuchungsterminal, fremde Hauptgruppe, breite CStatus-Markierung.

Systemeinstellungen und gemeinsame Nebenwirkungen

Gemeinsames Profil: BASE (interne Referenz).

Beziehung Schlüssel / Variable Default Einflussweg Wirkung Beleg
1222-S001 SCHNITT_APC_ZE_KZStd / kein VB-Feld; SQL-Lesen Kein VB-Default im Einstellungsinitialisierer gefunden SQL GetEinstellungZw Standardkennzeichen; fehlender Wert→NULL SQL,EST,SET
1222-S002 CALC_ZE_KOSTENSTELLE_EINTRAGEN / CALCZEKostenstelleEintragen 0 SQL GetEinstellungZw !=0 nutzt ungefilterte ITPEP-Hauptgruppe als Kennzeichen SQL,EST,SET

Nur belegte Profilzuordnung; Fachdaten und Rückmeldung sind nicht atomar. Defaults sind keine Livewerte.

Feldbeziehungen

Unqualifizierte Fachobjekte in der Anmeldedatenbank; Import.dbo ausdrücklich Importdatenbank. Dateifelder stehen separat im Dateivertrag.

Beziehung Tabelle.Feld Operation Datenfluss / Verwendung Bedingung Beleg
1222-D001 Filialen.FilialID SELECT ApcID>0; erste Zuordnung, Dublette setzt Fehler Aktiver Pfad; kein Laufzeitnachweis B
1222-D002 Filialen.ApcID SELECT ApcID>0; erste Zuordnung, Dublette setzt Fehler Aktiver Pfad; kein Laufzeitnachweis B
1222-D003 ZeitereignisseImportiert.Datum SELECT/INSERT Dedup und Marker: Datum/ApcID/Kennung, kein Filialschlüssel SP erreicht SQL
1222-D004 ZeitereignisseImportiert.Person SELECT/INSERT Dedup und Marker: Datum/ApcID/Kennung, kein Filialschlüssel SP erreicht SQL
1222-D005 ZeitereignisseImportiert.Kennung SELECT/INSERT Dedup und Marker: Datum/ApcID/Kennung, kein Filialschlüssel SP erreicht SQL
1222-D006 Personen.PersonID SELECT Genau eine gültige APC-Personjoinzeile; Wochentagsbit UDF PID
1222-D007 Personen.ApcID SELECT Genau eine gültige APC-Personjoinzeile; Wochentagsbit UDF PID
1222-D008 Personen.ZETage SELECT Genau eine gültige APC-Personjoinzeile; Wochentagsbit UDF PID
1222-D009 Personen.Eintritt SELECT Genau eine gültige APC-Personjoinzeile; Wochentagsbit UDF PID
1222-D010 Personen.Austritt SELECT Genau eine gültige APC-Personjoinzeile; Wochentagsbit UDF PID
1222-D011 Personen.InZw SELECT Genau eine gültige APC-Personjoinzeile; Wochentagsbit UDF PID
1222-D012 Personen.aktiv SELECT Genau eine gültige APC-Personjoinzeile; Wochentagsbit UDF PID
1222-D013 ITZeit.PersonenStammID SELECT Gültige aktive Zeitregel UDF PID
1222-D014 ITZeit.von SELECT Gültige aktive Zeitregel UDF PID
1222-D015 ITZeit.bis SELECT Gültige aktive Zeitregel UDF PID
1222-D016 ITZeit.IsAktiv SELECT Gültige aktive Zeitregel UDF PID
1222-D017 ITORGA.PersonenStammID SELECT Gültiger Organisationssatz UDF PID
1222-D018 ITORGA.von SELECT Gültiger Organisationssatz UDF PID
1222-D019 ITORGA.bis SELECT Gültiger Organisationssatz UDF PID
1222-D020 Filialen.FilialID SELECT Aktive Zielfiliale SP SQL
1222-D021 Filialen.aktiv SELECT Aktive Zielfiliale SP SQL
1222-D022 Uhren.ID SELECT TOP1 Art0 vor Umbuchung SP SQL
1222-D023 Uhren.FilialID SELECT TOP1 Art0 vor Umbuchung SP SQL
1222-D024 Uhren.Art SELECT TOP1 Art0 vor Umbuchung SP SQL
1222-D025 ITUmbuchung.FilialeAlt SELECT Person/Tag; erst passende Altfiliale, sonst NULL SP SQL
1222-D026 ITUmbuchung.FilialeNeu SELECT Person/Tag; erst passende Altfiliale, sonst NULL SP SQL
1222-D027 ITUmbuchung.von SELECT Person/Tag; erst passende Altfiliale, sonst NULL SP SQL
1222-D028 ITUmbuchung.bis2 SELECT Person/Tag; erst passende Altfiliale, sonst NULL SP SQL
1222-D029 ITUmbuchung.PersonID SELECT Person/Tag; erst passende Altfiliale, sonst NULL SP SQL
1222-D030 EinstellungenZw.Einstellung SELECT SCHNITT_APC_ZE_KZStd/CALC_ZE_KOSTENSTELLE_EINTRAGEN SQL-UDF EST
1222-D031 EinstellungenZw.Wert SELECT SCHNITT_APC_ZE_KZStd/CALC_ZE_KOSTENSTELLE_EINTRAGEN SQL-UDF EST
1222-D032 ITPEP.PepGruppe SELECT TOP1 gültige Hauptgruppe ohne Personenfilter Stammkostenstelle-Schalter<>0 SQL
1222-D033 ITPEP.von SELECT TOP1 gültige Hauptgruppe ohne Personenfilter Stammkostenstelle-Schalter<>0 SQL
1222-D034 ITPEP.bis SELECT TOP1 gültige Hauptgruppe ohne Personenfilter Stammkostenstelle-Schalter<>0 SQL
1222-D035 ITPEP.HauptGruppe SELECT TOP1 gültige Hauptgruppe ohne Personenfilter Stammkostenstelle-Schalter<>0 SQL
1222-D036 Zeitereignisse.Datum INSERT @Datum Person und Filiale bekannt SQL
1222-D037 Zeitereignisse.PersonID INSERT aufgelöste Person Person und Filiale bekannt SQL
1222-D038 Zeitereignisse.Terminal INSERT Uhren-ID vor Umbuchung Person und Filiale bekannt SQL
1222-D039 Zeitereignisse.Kennzeichen INSERT Standard/ungefilterte Hauptgruppe Person und Filiale bekannt SQL
1222-D040 Zeitereignisse.Kennung INSERT @Kennung Person und Filiale bekannt SQL
1222-D041 Zeitereignisse.Filiale INSERT aufgelöste/umgebuchte Filiale Person und Filiale bekannt SQL
1222-D042 ZeitereignisseBuffer.Datum INSERT @Datum Person oder Filiale nicht bekannt SQL
1222-D043 ZeitereignisseBuffer.ApcID INSERT @ApcID Person oder Filiale nicht bekannt SQL
1222-D044 ZeitereignisseBuffer.Kennzeichen INSERT ggf.NULL Person oder Filiale nicht bekannt SQL
1222-D045 ZeitereignisseBuffer.Kennung INSERT @Kennung Person oder Filiale nicht bekannt SQL
1222-D046 ZeitereignisseBuffer.PersonenStammID INSERT Person oder NULL Person oder Filiale nicht bekannt SQL
1222-D047 ZeitereignisseBuffer.Filiale INSERT Filiale oder NULL Person oder Filiale nicht bekannt SQL
1222-D048 ZeitereignisseBuffer.Terminal INSERT Terminal oder NULL Person oder Filiale nicht bekannt SQL
1222-D049 ZeitereignisseBuffer.Quelle INSERT A Person oder Filiale nicht bekannt SQL
1222-D050 CStatus.PersonenStammID SELECT Join ITZeit/Datum; @PersonID=@PersonID tautologisch Alle aktiven Personen am Buchungstag SQL
1222-D051 CStatus.Datum SELECT Join ITZeit/Datum; @PersonID=@PersonID tautologisch Alle aktiven Personen am Buchungstag SQL
1222-D052 ITZeit.bis2 SELECT Gültigkeitsende CStatus-Markierung CStatus-Pfad SQL
1222-D053 CStatus.CStatus UPDATE 1 Alle aktiven Personen am Buchungstag SQL
1222-D054 CStatus.ts UPDATE getdate() Alle aktiven Personen am Buchungstag SQL

Teststatus und Pflege

Keine Laufzeit-/Live-Schema-/Lieferformat-Abnahme. Fachbefunde und Grenzen siehe oben und Fragen (interne Referenz); kundenspezifische Trigger/Constraints, DLLs und Jobs bleiben Q02. Nutzerprüfung offen.

Schnittstellenübersicht

Gemeinsame Rückmeldung

Die Basis kann abhängig von MAIL_SCHNITTSTELLEONSUCCESS/ONERROR, MAIL_SCHNITTSTELLETO und SMTP-Einstellungen Mail speichern/versenden (Dokumente/Outbox). SCHNITT_MELDUNG_SchnittstelleOnSuccess/OnError steuert sendmail der Rückmeldungs-API, nicht deren gesamten Aufruf. MANUELL unterdrückt Mail, SILENT beendet den Abschluss früh. GLOBAL_LOGLEVEL/GLOBAL_LOGLEVELEVLOG steuert Logging (Pep3Log/Eventlog). Keine Fachimporttransaktion und kein API-Erfolgsnachweis; Serverwirkung bleibt ungeprüft.

Quellen je Datei

Offene Abnahme

Externe Liefer-/API-Verträge und installierte Migrationen sind nicht bestätigt. Vor einem Test die beschriebenen Datenrisiken in einer isolierten Umgebung klären. Bei1214/1215 sind weitere Calc-/CalcPep-Feldwirkungen ausdrücklich noch nicht vollständig analysiert.

Übersicht aller Schnittstellen

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki