====== 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. [[schnittstellen:schnittstellen|Schnittstellenübersicht]] ===== 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 | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/ZW/Allgemein.vb|PEP4/ZW/Allgemein.vb]] | | P | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cSchnittstellen/Programme/cProgramme.vb|PEP4/cSchnittstellen/Programme/cProgramme.vb]] | | PRJ | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cSchnittstellen/cSchnittstellen.vbproj|PEP4/cSchnittstellen/cSchnittstellen.vbproj]] | | SET | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/ZW/Einstellungen/cEinstellungenZw.vb|PEP4/ZW/Einstellungen/cEinstellungenZw.vb]] | | B | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/PEP4/cSchnittstellen/Programme/Schnittstellen/Generic/cSchnittPersonal.vb|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. [[schnittstellen:schnittstellen|Übersicht aller Schnittstellen]]