====== Schnittstelle 1150: Erfa-Basisdaten aus pep4us ====== Diese technische Referenz beschreibt die Eingänge, Ausgänge und aktiven Codepfade von **Erfa-Basisdaten aus pep4us**. 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.ImpErfa = 1150''. Aktive feste Registrierung → ''cSchnittKRErfa.Download''; 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 und API-Vertrag ===== Drei HTTP-GET-Listen → lokale Erfa-Basisstämme. Keine Parameter/Datei/SP. URL=KR_US_SERVER.Trim.TrimEnd('/')+'/api/v1/'+Endpunkt; Bearer KR_US_KEY, Accept application/json. Nacheinander basisartikel→KRErfaKostenträger, basiskostenarten→KRErfaKostenArten, basisfilialen→KRErfaFilialArten. Eine fehlgeschlagene Liste verhindert die nächste nicht. JSON-Array: id(Long), bezeichnung(String), warengruppe(String; nur Artikel verwendet), aktiv(Boolean). Aktiv→UPDATE nach ID/INSERT fehlend; inaktiv→DELETE ID. In Antwort fehlende lokale IDs bleiben bestehen; leere Liste löscht nichts. Warengruppe>50 abgeschnitten/NULL erlaubt; Bezeichnung nur SQL-Parameter50, keine explizite VB-Kürzung. ===== Befunde und Betrieb ===== **1150-F01:** Vorprüfung verlangt WebZerf_ZerfKey (TERMINAL_Zerf_Key), sendet aber KR_US_KEY. Ein gültiger KR-Key allein reicht nicht durch die Vorprüfung; leerer KR-Key wird dort nicht erkannt. **1150-F02:** Fehlendes JSON-aktiv wird False und kann Löschung auslösen. NO-ACTION-FKs U892 können DELETE verhindern; keine Kaskaden behaupten. Keine Transaktion über Zeilen/Listen; lokale SQL-Standard30s. HttpClient-Timeout wird hier nicht gesetzt; dessen laufender Kontext ist kein geprüftes API-Liveverhalten. API-Fehlerresponse wird protokolliert; keine echten Responses/Tokens gespeichert. Rückgabe Fehlerfrei nach BASE. Q13: Serververtrag/Versionsstand und JSON-Pflichtfelder, Q02 Schema. Test: fehlender Token, deaktivierte referenzierte ID, unvollständiges JSON, Ausfall einer Liste. ===== Systemeinstellungen und gemeinsame Nebenwirkungen ===== Gemeinsames Profil: BASE (interne Referenz). ^ Beziehung ^ Schlüssel / Variable ^ Default ^ Einflussweg ^ Wirkung ^ Beleg ^ | 1150-S001 | ''KR_US_SERVER'' / ''KR_US_SERVER'' | leer | HTTP | Basis-URL der drei Listen | B,SET | | 1150-S002 | ''KR_US_KEY'' / ''KR_US_KEY'' | leer | HTTP Authorization | Bearer-Token; kein Wert dokumentiert | B,SET | | 1150-S003 | ''TERMINAL_Zerf_Key'' / ''WebZerf_ZerfKey'' | leer | Fehlerhafte Vorprüfung | Muss nichtleer sein, obwohl ein anderer Key gesendet wird | B,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 ^ | 1150-D001 | ''KRErfaKostenträger.ID'' | SELECT/INSERT | API id; UPDATE-Match und Insert-ID | aktiv=True | B | | 1150-D002 | ''KRErfaKostenträger.Bezeichnung'' | INSERT/UPDATE | API bezeichnung; VarChar-Parameter50 | aktiv=True | B | | 1150-D003 | ''KRErfaKostenträger.— Zeilen'' | DELETE | API id entfernen, kein Abgleich fehlender IDs | aktiv=False (auch JSON-Default bei fehlender Eigenschaft) | B | | 1150-D004 | ''KRErfaKostenArten.ID'' | SELECT/INSERT | API id; UPDATE-Match und Insert-ID | aktiv=True | B | | 1150-D005 | ''KRErfaKostenArten.Bezeichnung'' | INSERT/UPDATE | API bezeichnung; VarChar-Parameter50 | aktiv=True | B | | 1150-D006 | ''KRErfaKostenArten.— Zeilen'' | DELETE | API id entfernen, kein Abgleich fehlender IDs | aktiv=False (auch JSON-Default bei fehlender Eigenschaft) | B | | 1150-D007 | ''KRErfaFilialArten.ID'' | SELECT/INSERT | API id; UPDATE-Match und Insert-ID | aktiv=True | B | | 1150-D008 | ''KRErfaFilialArten.Bezeichnung'' | INSERT/UPDATE | API bezeichnung; VarChar-Parameter50 | aktiv=True | B | | 1150-D009 | ''KRErfaFilialArten.— Zeilen'' | DELETE | API id entfernen, kein Abgleich fehlender IDs | aktiv=False (auch JSON-Default bei fehlender Eigenschaft) | B | | 1150-D010 | ''KRErfaKostenträger.Warengruppe'' | INSERT/UPDATE | API warengruppe; >50 gekürzt, Nothing→DBNull | Aktive Artikel | B | | 1150-D011 | ''Filialen.KRErfaFilialArt'' | CONSTRAINT | NO ACTION-FK kann Löschen der Filialart verhindern | DELETE referenzierter Art | U892 | | 1150-D012 | ''KRKostenTräger.KRErfaKostenträger'' | CONSTRAINT | NO ACTION-FK kann Löschen des Basisartikels verhindern | DELETE referenzierter ID | U892 | | 1150-D013 | ''KRKostenArten.KRErfaKostenArt'' | CONSTRAINT | NO ACTION-FK kann Löschen der Basis-Kostenart verhindern | DELETE referenzierter ID | U892 | ===== 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 ===== 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 ===== 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/Kostenrechnung/cSchnittKRErfa.vb|PEP4/cSchnittstellen/Programme/Schnittstellen/Kostenrechnung/cSchnittKRErfa.vb]] | | U892 | [[https://github.com/seegerstefan/pep4desktop/blob/f1d82a003b62f2658f06eaa943dc685ab219bdf3/Sqlfiles/PEP4Update/update_0892.sql|Sqlfiles/PEP4Update/update_0892.sql]] | ===== 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]]