====== Schnittstelle 2045 – Preise nach Aprocon exportieren ====== **2045** (''ExpKRPreisAprocon'') schreibt Preise über eine ODBC-DSN in die **externe Aprocon-Datenbank**, nicht in PEP4-''Umsätze''. Einstieg: ''cSchnittKRApc.Export_Preise''. Keine Fachdatei, keine fachliche SP. ===== Eingang: PARAM-Text ===== Erste Zeile ''PKID@Preiskategorie''; danach je Zeile ''Artikelnummer@Preis''. Die Routine teilt mit ''Split("@")'', ohne Quote-/Escape-Regeln und ohne vollständige Validierung. Der erste Header-Token wird nicht geprüft. Datum ist ''Now.Date'', nicht ein Eingabedatum. Fehlende Folgezeilen bedeuten: Kategorie wird für heute geleert, ohne neue Preise. ===== Datenfluss ===== ^ Quelle / Ziel ^ Operation ^ | ''PARAM'' | Preiskategorie, Artikelnummer und Preis lesen. | | Extern ''Preise'' | DELETE aller heutigen Zeilen der Kategorie; danach je Artikel ''MAX(Nummer)+1'' und INSERT in ''Nummer'', ''Artikel'', ''Preiskategorie'', ''Preis'', ''GueltigAb''. | | Extern ''Artikel'' → ''Preise'' | UPDATE von ''PLU'', ''Warengruppe'' und ''Bezeichnung'' (höchstens 10 Zeichen) für passende Artikel. | Keine PEP4-Fachtabelle wird durch diese Methode geschrieben. ''SCHNITT_APC_DSN'' wählt das externe Ziel; ''SQL_TIMEOUT'' steuert Fach-SQL. ''SCHNITT_APC_UseServer'' beeinflusst den vorgelagerten UI-Aufruf (lokaler Link oder Worker), nicht die Exportmethode selbst. Gemeinsame Basis: Log-/Mail-/Meldungsschalter. DELETE, INSERT und UPDATE laufen ohne gemeinsame Transaktion. INSERT-Fehler werden bis zu neunmal leer gefangen; nach neun Fehlschlägen kann die Routine weiterlaufen und sogar Erfolg melden, obwohl Preise fehlen. ''MAX(Nummer)+1'' ist bei parallelen Läufen nicht atomar. Externe DDL, Constraints und Trigger sind nicht geprüft. Detailanalyse: Git-Nexus ''pep4desktop/interfaces/by-id/2045.md''. Quellcommit ''f1d82a003b62f2658f06eaa943dc685ab219bdf3'', statische Analyse 18.09.2026; Wiki-Übernahme 25.09.2026. **Kein Exportlauf oder produktiver Abgleich.** [[schnittstellen:schnittstellen|Zur Übersicht]]