Inhaltsverzeichnis
Schnittstelle 1200: Generischer Personalimport mit IT-Codes
Diese technische Referenz beschreibt die Eingänge, Ausgänge und aktiven Codepfade von Generischer Personalimport mit IT-Codes. 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.ImpPersonalBase = 1200. Aktive feste Registrierung → cSchnittPersonal.Ausführen; Projekteinschluss bestätigt (E,P,PRJ). Active=True, InAutomatik=False und ManuellerAufruf=True (Registrierung bzw. Klassendefault); NurAufServer=False (Default bzw. Registrierung). Keine Aussage über eingerichtete Automatik oder produktive Nutzung.
Zweck und Parameter
PFAD=FileImport, InAutomatik=False. Semikolondatei mit numerischen IT-Code-Kopfwerten, nicht Klartextüberschriften. Encoding.Default, Quotes/Trim. Header muss1000(PersonID) enthalten; fehlender Code wird nicht explizit abgefangen (-1-Index). Leere Datei liefert im inneren Import True. Datum1009 hat Vorrang; sonst zuerst gefundener1004/1008, ohne solche Spalte heute. Nichtleere Datenzellen werden einzeln verarbeitet; keine feste Spaltenposition, Headercode entscheidet.
IT-Code-Vertrag
| Code | Ziel / Regel |
|---|---|
| 1000 | Personen.PersonID |
| 1001 | Personen.Nachname |
| 1002 | Personen.Vorname |
| 1003 | Personen.GebDat |
| 1004 | Personen.Eintritt |
| 1005 | Personen.EndeProbe |
| 1006 | Personen.EndeBefristung |
| 1007 | Personen.Austritt |
| 1008 | Personen.StartZW |
| 1010 | Personen.Transponder |
| 1011 | Personen.PIN |
| 1012 | Personen.FP1 |
| 1013 | Personen.FP2 |
| 1014 | Personen.AbrKr |
| 1009 | Gültigkeitsdatum, keine eigene SQL-Schreibaktion |
| 1020 | ITOrga.Filiale |
| 1021 | ITOrga.Abteilung |
| 1022 | ITOrga.Hierarchiestufe |
| 1023 | ITPep.PepGruppe/Anteil: Gruppe@Ganzzahl-Anteil; ohne @ Anteil0 |
| 1030 | ITZeit.WAZ |
| 1031 | ITZeit.Faktor |
| 1032 | ITZeit.RMID |
| 1033 | ITZeit.WazBasis |
| 1034 | ITZeit.RMAZPlanID |
| 1035 | ITZeit.WazMin |
| 1036 | ITZeit.WazMax |
| 1037 | ITZeit.MazMin |
| 1038 | ITZeit.MazMax |
| 1039 | ITZeit.Auszahlung |
| 1040 | ITZeit.HatSollzeit |
| 1041 | ITZeit.HatUrlaubsAnspruch |
Ungültige Datumswerte/IDs⇐0 bei RM/Plan überspringen entsprechende Befüllung. Unbekannte Codes haben keinen SQL-Befehl. Leere Zellen verändern nichts; ungültige Konvertierungen werden als Fehler protokolliert.
SQL-Pfad und Befunde
Außen werden Filialen0/Abteilungen0/PepGruppen0 mit IMPORT erzeugt, sofern fehlend. 1200-F01: ImportItValue erzeugt je Zelle eine neue SqlConnection, ruft aber niemals cn.Open auf. Nicht übersprungene ExecuteNonQuery schlagen deshalb fehl. Personen-/IT-Beziehungen unten sind versuchte, nicht bestätigte Befüllungen; die äußeren Basisanlagen können dennoch stattfinden.
Beabsichtigtes Inline-SQL: Person anlegen/aktualisieren, IT-Satz im Gültigkeitsintervall ergänzen oder bestehenden Satz verändern; keine Intervallteilung und kein DELETE. 1200-F02: Shared Ausführen As Boolean enthält auf normalem Abschluss keinen Return→False trotz angezeigtem Erfolgsdialog. Standard30s, keine SP/Transaktion/Archivierung; LOG im Arbeitsverzeichnis. Test: Verbindung zuerst isoliert prüfen; keine funktionierende Personalversorgung aus Registrierung ableiten.
Systemeinstellungen und gemeinsame Nebenwirkungen
Gemeinsames Profil: LEGACY (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.
Feldbeziehungen
Unqualifizierte Fachobjekte in der Anmeldedatenbank; Import.dbo ausdrücklich Importdatenbank. Dateifelder stehen separat im Dateivertrag.
| Beziehung | Tabelle.Feld | Operation | Datenfluss / Verwendung | Bedingung | Beleg |
|---|---|---|---|---|---|
| 1200-D001 | Filialen.FilialID | SELECT/INSERT | ID0 anlegen falls fehlend | Geöffnete äußere SQL-Verbindung | B |
| 1200-D002 | Filialen.Bezeichnung | INSERT | IMPORT | ID0 fehlt | B |
| 1200-D003 | Abteilungen.AbteilungID | SELECT/INSERT | ID0 anlegen falls fehlend | Geöffnete äußere SQL-Verbindung | B |
| 1200-D004 | Abteilungen.Bezeichnung | INSERT | IMPORT | ID0 fehlt | B |
| 1200-D005 | PepGruppen.PepGruppenID | SELECT/INSERT | ID0 anlegen falls fehlend | Geöffnete äußere SQL-Verbindung | B |
| 1200-D006 | PepGruppen.PepGruppenBez | INSERT | IMPORT | ID0 fehlt | B |
| 1200-D007 | Personen.PersonID | Versuch SELECT/INSERT | ITCode1000; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D008 | Personen.Nachname | Versuch UPDATE | ITCode1001; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D009 | Personen.Vorname | Versuch UPDATE | ITCode1002; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D010 | Personen.GebDat | Versuch UPDATE | ITCode1003; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D011 | Personen.Eintritt | Versuch UPDATE | ITCode1004; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D012 | Personen.EndeProbe | Versuch UPDATE | ITCode1005; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D013 | Personen.EndeBefristung | Versuch UPDATE | ITCode1006; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D014 | Personen.Austritt | Versuch UPDATE | ITCode1007; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D015 | Personen.StartZW | Versuch UPDATE | ITCode1008; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D016 | Personen.Transponder | Versuch UPDATE | ITCode1010; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D017 | Personen.PIN | Versuch UPDATE | ITCode1011; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D018 | Personen.FP1 | Versuch UPDATE | ITCode1012; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D019 | Personen.FP2 | Versuch UPDATE | ITCode1013; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D020 | Personen.AbrKr | Versuch UPDATE | ITCode1014; ID-Anlage falls fehlend | ImportItValue-Verbindung bleibt geschlossen | B |
| 1200-D021 | ITOrga.PersonenStammID | Versuch SELECT | Person/Gültigkeitsintervall von⇐Datum und (bis>=Datum oder NULL) | Verbindung geschlossen | B |
| 1200-D022 | ITOrga.von | Versuch SELECT | Person/Gültigkeitsintervall von⇐Datum und (bis>=Datum oder NULL) | Verbindung geschlossen | B |
| 1200-D023 | ITOrga.bis | Versuch SELECT | Person/Gültigkeitsintervall von⇐Datum und (bis>=Datum oder NULL) | Verbindung geschlossen | B |
| 1200-D024 | ITPep.PersonenStammID | Versuch SELECT | Person/Gültigkeitsintervall von⇐Datum und (bis>=Datum oder NULL) | Verbindung geschlossen | B |
| 1200-D025 | ITPep.von | Versuch SELECT | Person/Gültigkeitsintervall von⇐Datum und (bis>=Datum oder NULL) | Verbindung geschlossen | B |
| 1200-D026 | ITPep.bis | Versuch SELECT | Person/Gültigkeitsintervall von⇐Datum und (bis>=Datum oder NULL) | Verbindung geschlossen | B |
| 1200-D027 | ITZeit.PersonenStammID | Versuch SELECT | Person/Gültigkeitsintervall von⇐Datum und (bis>=Datum oder NULL) | Verbindung geschlossen | B |
| 1200-D028 | ITZeit.von | Versuch SELECT | Person/Gültigkeitsintervall von⇐Datum und (bis>=Datum oder NULL) | Verbindung geschlossen | B |
| 1200-D029 | ITZeit.bis | Versuch SELECT | Person/Gültigkeitsintervall von⇐Datum und (bis>=Datum oder NULL) | Verbindung geschlossen | B |
| 1200-D030 | ITOrga.PersonenStammID | Versuch INSERT | PersonID/Datum, wenn kein gültiger Satz | Verbindung geschlossen | B |
| 1200-D031 | ITOrga.von | Versuch INSERT | PersonID/Datum, wenn kein gültiger Satz | Verbindung geschlossen | B |
| 1200-D032 | ITPep.PersonenStammID | Versuch INSERT | PersonID/Datum, wenn kein gültiger Satz | Verbindung geschlossen | B |
| 1200-D033 | ITPep.von | Versuch INSERT | PersonID/Datum, wenn kein gültiger Satz | Verbindung geschlossen | B |
| 1200-D034 | ITZeit.PersonenStammID | Versuch INSERT | PersonID/Datum, wenn kein gültiger Satz | Verbindung geschlossen | B |
| 1200-D035 | ITZeit.von | Versuch INSERT | PersonID/Datum, wenn kein gültiger Satz | Verbindung geschlossen | B |
| 1200-D036 | ITOrga.Filiale | Versuch INSERT/UPDATE | Code1020; INSERT Filiale/Abteilung0, UPDATE gewählten Wert | Verbindung geschlossen | B |
| 1200-D037 | ITOrga.Abteilung | Versuch INSERT/UPDATE | Code1021; INSERT Filiale/Abteilung0, UPDATE gewählten Wert | Verbindung geschlossen | B |
| 1200-D038 | ITOrga.Hierarchiestufe | Versuch INSERT/UPDATE | Code1022; INSERT Filiale/Abteilung0, UPDATE gewählten Wert | Verbindung geschlossen | B |
| 1200-D039 | ITPep.PepGruppe | Versuch UPDATE | Code1023: Wert vor @ oder ganzer Wert (CLng) | Verbindung geschlossen | B |
| 1200-D040 | ITPep.Anteil | Versuch UPDATE | Code1023: CLng nach @; fehlt @→0 | Verbindung geschlossen | B |
| 1200-D041 | ITZeit.WAZ | Versuch UPDATE | Code1030; Float/Long bzw. CBool; RM/Plan nur>0 | Verbindung geschlossen | B |
| 1200-D042 | ITZeit.Faktor | Versuch UPDATE | Code1031; Float/Long bzw. CBool; RM/Plan nur>0 | Verbindung geschlossen | B |
| 1200-D043 | ITZeit.RMID | Versuch UPDATE | Code1032; Float/Long bzw. CBool; RM/Plan nur>0 | Verbindung geschlossen | B |
| 1200-D044 | ITZeit.WazBasis | Versuch UPDATE | Code1033; Float/Long bzw. CBool; RM/Plan nur>0 | Verbindung geschlossen | B |
| 1200-D045 | ITZeit.RMAZPlanID | Versuch UPDATE | Code1034; Float/Long bzw. CBool; RM/Plan nur>0 | Verbindung geschlossen | B |
| 1200-D046 | ITZeit.WazMin | Versuch UPDATE | Code1035; Float/Long bzw. CBool; RM/Plan nur>0 | Verbindung geschlossen | B |
| 1200-D047 | ITZeit.WazMax | Versuch UPDATE | Code1036; Float/Long bzw. CBool; RM/Plan nur>0 | Verbindung geschlossen | B |
| 1200-D048 | ITZeit.MazMin | Versuch UPDATE | Code1037; Float/Long bzw. CBool; RM/Plan nur>0 | Verbindung geschlossen | B |
| 1200-D049 | ITZeit.MazMax | Versuch UPDATE | Code1038; Float/Long bzw. CBool; RM/Plan nur>0 | Verbindung geschlossen | B |
| 1200-D050 | ITZeit.Auszahlung | Versuch UPDATE | Code1039; Float/Long bzw. CBool; RM/Plan nur>0 | Verbindung geschlossen | B |
| 1200-D051 | ITZeit.HatSollzeit | Versuch UPDATE | Code1040; Float/Long bzw. CBool; RM/Plan nur>0 | Verbindung geschlossen | B |
| 1200-D052 | ITZeit.HatUrlaubsAnspruch | Versuch UPDATE | Code1041; Float/Long bzw. CBool; RM/Plan nur>0 | Verbindung geschlossen | B |
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.
Gemeinsame Rückmeldung
Direkte Dialog-/Info-/Logpfade, kein cSchnitt_Basis-Mail/API/Outbox. GLOBAL_LOGLEVEL (Default50) und GLOBAL_LOGLEVELEVLOG (Default0, VB GLOBAL_LOGLEVELEVENTLOG) steuern Datei-/DB-/Eventlogging; Details der Fachfehler stehen oben. Keine Livewerte dokumentiert.
Quellen je Datei
Repository: seegerstefan/pep4desktop, master, obiger Commit. Je Datei ein Quellenlink; Kürzel in den Tabellen. Private Git-Quellen setzen Zugriffsrechte voraus.
| Kürzel | Quelldatei am geprüften Commit |
|---|---|
| E | PEP4/ZW/Allgemein.vb |
| P | PEP4/cSchnittstellen/Programme/cProgramme.vb |
| PRJ | PEP4/cSchnittstellen/cSchnittstellen.vbproj |
| SET | PEP4/ZW/Einstellungen/cEinstellungenZw.vb |
| B | PEP4/cSchnittstellen/Programme/Schnittstellen/Generic/cSchnittPersonal.vb |
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.