Diese technische Referenz beschreibt die Eingänge, Ausgänge und aktiven Codepfade von Personaldatei aus Aprocon. 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.
eProgramm.ImpPersonalApc = 1210. Aktive feste Registrierung → cSchnittPersonalAproconFile.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.
PFAD=FileImport, BASE-SetFile prüft Datei. Encoding.Default, Semikolon, Quotes/Trim, keine Kopfzeilenbehandlung/Feldzahlprüfung. Positionen ab1:1 PersonID (NzLong),2 Vorname,3 Nachname (NzStr). Leere/nichtnumerische ID wird übersprungen bzw.0. Staging SCHNITT_Namen global TRUNCATE → INSERT → dbo.SCHNITT_ApcPersonen.
Nur fehlende Personen anlegen, Nachname/Vorname und ApcID=PersonID. Bestehende Personen aus Staging löschen, deren Namen nicht aktualisieren. Neue Personen Eintritt/StartZW auf01.01.2020, ITZeit/ITORGA mit festen Basis-IDs1/von2020 erzeugen. Fehlende Basisstämme1 anlegen; RMCalc/RMPause nur wenn auch RM1 neu ist. Uhren für alle Filialen erzeugen, deren FilialID noch keine gleichnamige Uhren.ID besitzt.
Keine fachliche ZW-Einstellung zusätzlich zur Basis. Commands30s, keine SP-Timeoutüberschreibung/Transaktion/Archivierung/Calc. U463 bestätigt Namenstaging, weitere Ergänzungen sind Schemaabhängigkeit. Gefangener Importfehler setzt Fehlerstatus1; Abschluss/Fehlerfrei sind separat von Fachteilstand. 1210-F01: Die Bezeichnung Personalimport bedeutet nicht Personalaktualisierung; vorhandene Namen/IT-Sätze bleiben unverändert. 1210-F02: Feste 2020-Beginne/Basis-IDs und breite Uhrenanlage vor Test klären (Q13). Test: doppelte Datei, vorhandene Person mit geändertem Namen, fehlendes RMCalc bei bestehendem RM1, fremde Filialen.
Gemeinsames Profil: BASE (interne Referenz).
Keine zusätzliche fachliche ZW-Einstellung im lokalen Importpfad gelesen. Timeoutwerte stehen im Betriebsabschnitt, nicht automatisch SQL_TIMEOUT zuordnen.
Nur belegte Profilzuordnung; Fachdaten und Rückmeldung sind nicht atomar. Defaults sind keine Livewerte.
Unqualifizierte Fachobjekte in der Anmeldedatenbank; Import.dbo ausdrücklich Importdatenbank. Dateifelder stehen separat im Dateivertrag.
| Beziehung | Tabelle.Feld | Operation | Datenfluss / Verwendung | Bedingung | Beleg |
|---|---|---|---|---|---|
| 1210-D001 | SCHNITT_Namen.— Zeilen | TRUNCATE | Gesamtes Staging | Vor Dateilesen | B |
| 1210-D002 | SCHNITT_Namen.PersonID | INSERT | Pos1/3/2 aus Datei | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1210-D003 | SCHNITT_Namen.Nachname | INSERT | Pos1/3/2 aus Datei | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1210-D004 | SCHNITT_Namen.Vorname | INSERT | Pos1/3/2 aus Datei | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1210-D005 | SCHNITT_Namen.PersonID | SELECT | Nur neue Personen | SP-Pfad | SQL |
| 1210-D006 | SCHNITT_Namen.Nachname | SELECT | Nur neue Personen | SP-Pfad | SQL |
| 1210-D007 | SCHNITT_Namen.Vorname | SELECT | Nur neue Personen | SP-Pfad | SQL |
| 1210-D008 | SCHNITT_Namen.— Zeilen | DELETE | Bereits bestehende PersonIDs aus Staging entfernen | Nach Ausgabe neuer IDs | SQL |
| 1210-D009 | Personen.PersonID | SELECT/INSERT | Datei-ID; Neuanlage bei fehlender Person | SP-Pfad | SQL |
| 1210-D010 | Personen.Nachname | INSERT | Dateinamen und ApcID=PersonID | Nur neue Personen | SQL |
| 1210-D011 | Personen.Vorname | INSERT | Dateinamen und ApcID=PersonID | Nur neue Personen | SQL |
| 1210-D012 | Personen.ApcID | INSERT | Dateinamen und ApcID=PersonID | Nur neue Personen | SQL |
| 1210-D013 | Personen.Eintritt | UPDATE | 01.01.2020 | Nur im Lauf neu angelegte Personen | SQL |
| 1210-D014 | Personen.StartZW | UPDATE | 01.01.2020 | Nur im Lauf neu angelegte Personen | SQL |
| 1210-D015 | RMZuschlag.ID | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D016 | RMZuschlag.Bezeichnung | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D017 | RMRahmen.ID | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D018 | RMRahmen.Bezeichnung | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D019 | RM.ID | SELECT/INSERT | 1/Standard/getdate | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D020 | RM.Bezeichnung | SELECT/INSERT | 1/Standard/getdate | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D021 | RM.ts | SELECT/INSERT | 1/Standard/getdate | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D022 | RMCalc.RMID | SELECT/INSERT | 1/1.1.2000/1/1 (nur wenn RM1 fehlte) | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D023 | RMCalc.von | SELECT/INSERT | 1/1.1.2000/1/1 (nur wenn RM1 fehlte) | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D024 | RMCalc.RMZuschlagID | SELECT/INSERT | 1/1.1.2000/1/1 (nur wenn RM1 fehlte) | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D025 | RMCalc.RMRahmenID | SELECT/INSERT | 1/1.1.2000/1/1 (nur wenn RM1 fehlte) | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D026 | RMPause.RMID | SELECT/INSERT | 1/1.1.2000 (nur wenn RM1 fehlte) | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D027 | RMPause.von | SELECT/INSERT | 1/1.1.2000 (nur wenn RM1 fehlte) | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D028 | RMAZPlan.ID | SELECT/INSERT | 1/getdate | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D029 | RMAZPlan.ts | SELECT/INSERT | 1/getdate | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D030 | AuszahlungsGruppen.ID | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D031 | AuszahlungsGruppen.Bezeichnung | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D032 | Regionen.ID | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D033 | Regionen.Bezeichnung | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D034 | Filialen.FilialID | SELECT/INSERT | 1/BASIS/1 | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D035 | Filialen.Bezeichnung | SELECT/INSERT | 1/BASIS/1 | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D036 | Filialen.Region | SELECT/INSERT | 1/BASIS/1 | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D037 | Abteilungen.AbteilungID | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D038 | Abteilungen.Bezeichnung | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D039 | Hierarchiestufen.HiID | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D040 | Hierarchiestufen.HiBezeichnung | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D041 | Kostenstellen.ID | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D042 | Kostenstellen.Bezeichnung | SELECT/INSERT | 1/BASIS | Fehlende Basis; RMCalc/Pause nur RM-neu | SQL |
| 1210-D043 | ITZeit.PersonenStammID | INSERT | PersonID/1.1.2020/1/1/1 | Nur neue Personen | SQL |
| 1210-D044 | ITZeit.von | INSERT | PersonID/1.1.2020/1/1/1 | Nur neue Personen | SQL |
| 1210-D045 | ITZeit.RMID | INSERT | PersonID/1.1.2020/1/1/1 | Nur neue Personen | SQL |
| 1210-D046 | ITZeit.RMAZPlanID | INSERT | PersonID/1.1.2020/1/1/1 | Nur neue Personen | SQL |
| 1210-D047 | ITZeit.Auszahlung | INSERT | PersonID/1.1.2020/1/1/1 | Nur neue Personen | SQL |
| 1210-D048 | ITORGA.PersonenStammID | INSERT | PersonID/1.1.2020/1/1/1/1 | Nur neue Personen | SQL |
| 1210-D049 | ITORGA.von | INSERT | PersonID/1.1.2020/1/1/1/1 | Nur neue Personen | SQL |
| 1210-D050 | ITORGA.Filiale | INSERT | PersonID/1.1.2020/1/1/1/1 | Nur neue Personen | SQL |
| 1210-D051 | ITORGA.Abteilung | INSERT | PersonID/1.1.2020/1/1/1/1 | Nur neue Personen | SQL |
| 1210-D052 | ITORGA.Hierarchiestufe | INSERT | PersonID/1.1.2020/1/1/1/1 | Nur neue Personen | SQL |
| 1210-D053 | ITORGA.Kostenstelle | INSERT | PersonID/1.1.2020/1/1/1/1 | Nur neue Personen | SQL |
| 1210-D054 | Filialen.FilialID | SELECT | Uhrenanlage für alle Filialen | SP-Ende | SQL |
| 1210-D055 | Filialen.Bezeichnung | SELECT | Uhrenanlage für alle Filialen | SP-Ende | SQL |
| 1210-D056 | Uhren.ID | SELECT/INSERT | FilialID/Filialbezeichnung/FilialID/0; fehlt Uhren-ID | Alle Filialen, nicht nur Importfiliale | SQL |
| 1210-D057 | Uhren.Bezeichnung | SELECT/INSERT | FilialID/Filialbezeichnung/FilialID/0; fehlt Uhren-ID | Alle Filialen, nicht nur Importfiliale | SQL |
| 1210-D058 | Uhren.FilialID | SELECT/INSERT | FilialID/Filialbezeichnung/FilialID/0; fehlt Uhren-ID | Alle Filialen, nicht nur Importfiliale | SQL |
| 1210-D059 | Uhren.Art | SELECT/INSERT | FilialID/Filialbezeichnung/FilialID/0; fehlt Uhren-ID | Alle Filialen, nicht nur Importfiliale | SQL |
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.
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.
Repository: seegerstefan/pep4desktop, master, obiger Commit. Je Datei ein Quellenlink; Kürzel in den Tabellen. Private Git-Quellen setzen Zugriffsrechte voraus.
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.