====== Schnittstelle 1058 – Anteile für Kostenkonten importieren ====== Die Schnittstelle **1058** liest Anteile aus einer Datei und fügt neue Kombinationen in ''KRKostenKontenAnteil'' ein. Vorhandene Kombinationen und deren ''Anteil'' bleiben unverändert. ''Umsätze'' wird nicht direkt geändert. ===== Eingabedatei ===== ''PFAD'' verlangt eine vorhandene Datei. Der Parser nutzt UTF-8, Semikolon, Rand-Leerraumkürzung und Anführungszeichen für eingeschlossene Felder. Es gibt keinen ausdrücklichen Header-Skip. Außen prüft der Code nur mindestens zwei Felder, verwendet tatsächlich aber **vier**. Eine zu kurze Zeile kann einen Zeilenfehler auslösen. Weitere Felder werden ignoriert; kein Archiv. ^ Position ^ Zielfeld ^ Verarbeitung ^ | 1 | ''KRKostenKonto'' | Konto-ID; numerische Vorprüfung nur für dieses Feld. | | 2 | ''KRDatenquelle'' | Datenquellen-ID. | | 3 | ''KRKostenstelle'' | Kostenstellen-ID. | | 4 | ''Anteil'' | Wert unverändert; keine Division durch 100 oder Summenprüfung. | Die SQL-Parameter sind als ''Float'' angelegt, obwohl die drei Schlüsselspalten ''bigint'' sind. Kultur und Zahlenbereich können die Umwandlung beeinflussen. Der Datenbank-Default 0 für ''Anteil'' ersetzt kein fehlendes Dateifeld, weil die Routine den Parameter ausdrücklich bindet. ===== Datenfluss und Ergebnis ===== Eine direkte ''IF NOT EXISTS''-Prüfung vergleicht ''KRKostenKonto'', ''KRDatenquelle'' und ''KRKostenstelle''. Fehlt die Kombination, folgt ein INSERT dieser Felder und von ''Anteil''. Es gibt keinen UPDATE, DELETE oder fachlichen SP-Aufruf. Konto und Datenquelle bilden im untersuchten Schema eine zusammengesetzte Referenz; die Kostenstelle muss ebenfalls existieren. Das prüft der SQL Server über Fremdschlüssel, nicht ein eigener Leseaufruf der Anwendung. Wiederholung ändert bestehende Anteile nicht. Bei Dateiduplikaten bleibt der erste erfolgreich eingefügte Wert. Es gibt keine Gesamttransaktion oder parallele atomare Upsert-Sicherung; ein späterer Fehler lässt frühere Inserts bestehen. ===== Einstellungen ===== Keine direkte fachliche ZW-Einstellung; ''SQL_TIMEOUT'' wird 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. ===== Technische Referenz ===== ^ Merkmal ^ Wert ^ | Programmkennung | ''1058'' / ''ImpKRAnteilKostenKonto'' | | Einstieg | ''cSchnittKRAnteil.Import_AnteilKostenKonto'' | | Fachlicher Ausgang | ''KRKostenKontenAnteil''; nur INSERT neuer Vier-Feld-Sätze | | Fachliches SQL | Direkte Existenzprüfung und INSERT; keine fachliche SP | ===== Siehe auch ===== * [[schnittstellen:1059|Kostenstellenobjekt-Anteile (1059)]] * [[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.