====== Schnittstelle 2011 – Kostenkonten aus Datei importieren ====== Die Schnittstelle **2011** legt Kostenkonten an oder ändert vorhandene Einträge in ''KRKostenKonten''. Der Abgleichschlüssel besteht aus ''ID'' und ''KRDatenQuelle''. ''Umsätze'' wird nicht direkt geändert. ===== Eingabedatei ===== ''PFAD'' verlangt eine vorhandene Datei. Der Parser nutzt den Windows-Systemzeichensatz, Semikolon, Rand-Leerraumkürzung und Anführungszeichen für eingeschlossene Felder. Eine Kopfzeile wird nicht ausdrücklich übersprungen; nichtnumerische erste Felder werden still ausgelassen. Mindestens zwei Felder passieren die äußere Prüfung, für einen normalen erfolgreichen INSERT wird aber eine gültige Datenquelle benötigt. Felder ab Position 5 werden ignoriert; kein Archiv. ^ Position ^ Zielfeld ^ Verarbeitung ^ | 1 | ''ID'' | ''CLng''; Teil des Schlüssels. | | 2 | ''Bezeichnung'' | Maximal 50 Zeichen; leer bleibt Leerstring. | | 3 | ''KRKostenArt'' | Optional; fehlend, leer oder nichtnumerisch → SQL-NULL. | | 4 | ''KRDatenQuelle'' | Teil des Schlüssels; fehlend, leer oder nichtnumerisch → SQL-NULL und bei Neuanlage regelmäßig Fehler wegen NOT NULL. | Ein aufrufender Programmteil könnte ''KRDatenQuelle'' und ''KRKostenArt'' zusätzlich über Dictionary-Parameter für **alle** Dateizeilen überschreiben. Diese beiden Parameter sind bei 2011 aber nicht in der normalen Programmregistrierung angelegt. Sie sind keine Systemeinstellungen. ===== Datenfluss und Ergebnis ===== Je akzeptierter Zeile prüft direktes SQL ''IF EXISTS'' für ''(ID, KRDatenQuelle)''. Bei Treffer werden ''Bezeichnung'' und gegebenenfalls ''KRKostenArt'' aktualisiert. Ein leerer oder ungültiger Kostenartwert lässt die bestehende ''KRKostenArt'' beim UPDATE unverändert; er löscht sie nicht. Fehlt der Schlüssel, werden ''ID'', ''KRDatenQuelle'', ''Bezeichnung'' und ''KRKostenArt'' eingefügt; ''KRKostenArt'' kann dann NULL sein. Dieselbe ID mit anderer Datenquelle ist ein anderer Datensatz. Weitere Stammdatenspalten werden bei UPDATE nicht geändert. Es gibt keine fachliche Stored Procedure, keinen DELETE und keine Gesamttransaktion. Eine spätere fehlerhafte Zeile rollt frühere Änderungen nicht zurück. Die Fremdschlüssel auf Datenquelle und nichtleere Kostenart prüft der SQL Server. Wiederholte Dateischlüssel können spätere erfolgreiche Werte in den tatsächlich aktualisierten Spalten durchsetzen. ===== Einstellungen und Fehlergrenzen ===== Keine direkte fachliche ZW-Einstellung; ''SQL_TIMEOUT'' wird für den Fachbefehl nicht ausdrücklich gesetzt. Die gemeinsame Basis verwendet bedingt ''GLOBAL_LOGLEVEL'', ''GLOBAL_LOGLEVELEVLOG'', ''MAIL_SCHNITTSTELLEONSUCCESS'', ''MAIL_SCHNITTSTELLEONERROR'', ''SCHNITT_MELDUNG_SchnittstelleOnSuccess'', ''SCHNITT_MELDUNG_SchnittstelleOnError'' und beim Versand ''MAIL_SCHNITTSTELLETO'', ''MAIL_SMTP_SERVER'', ''MAIL_USER'', ''MAIL_PASS'', ''MAIL_USEDEFAULTCREDENTIALS'', ''MAIL_SSL'', ''MAIL_TESTADRESSE'', ''MAIL_FROM'' und ''MAIL_FROM_NAME''. ''MANUELL'', ''SILENT'' und ''MAILTO'' sind Laufparameter. Zeilenfehler werden protokolliert und der Import kann mit weiteren Zeilen fortfahren. Ein Parser- oder Verbindungsfehler stoppt die Verarbeitung; bereits geschriebene Zeilen bleiben. Prüfe den tatsächlichen Tabellenstand und den Datenquellenschlüssel. ===== Technische Referenz ===== ^ Merkmal ^ Wert ^ | Programmkennung | ''2011'' / ''ImpKRKostenKonten'' | | Einstieg | ''cSchnittKRKostenKonten.Import'' | | Fachlicher Ausgang | ''KRKostenKonten'': UPDATE oder INSERT nach ''(ID, KRDatenQuelle)'' | | Fachliches SQL | Parametriertes Inline-SQL; keine fachliche SP | ===== Siehe auch ===== * [[schnittstellen:1058|Kostenkonten-Anteile importieren (1058)]] * [[schnittstellen:schnittstellen|Übersicht der dokumentierten Schnittstellen]] ===== Prüfstand ===== Am 25.09.2026 aus der statischen Analyse des Quellcommits ''f1d82a003b62f2658f06eaa943dc685ab219bdf3'' übernommen. Analyse vom 18.09.2026; kein Importlauf oder produktiver Schemaabgleich bestätigt.