1. Vom CAMT-File zum Buchungssatz
Stell dir vor, du hast ein sehr spezifisches IT-Problem in deiner Buchhaltung. Ein Datenformat passt nicht zum Import in Deine Buchhaltungs-Software. Früher bedeutete das eine manuelle Transformation in Excel oder ein Ticket für die IT, wochenlange Wartezeiten oder teure externe Berater. Heute? Vielleicht bald chatten mit einer KI.
2. Problem-Darstellung
Die KI wird exponentiell besser im Coden. Das heisst für uns im Finance-Bereich: Viele kleinere Probleme, für die man früher richtig investieren musste, könnten wir heute mit Python und KI selbst lösen.
Mein konkretes Thema: Ich führe meine Buchhaltung (FIBU) über eine eigene Datenbank und habe dafür eine spezifische Schnittstelle für den CSV-Import gebaut. Diese Schnittstelle ist für den Import klar strukturiert, sie erwartet über 40 Spalten in einem fixen Format.
Der Schmerzpunkt: Die Bank liefert für die Verbuchung der Bank die Transaktionen natürlich als CAMT-File (XML). Diese manuell in mein CSV-Format zu überführen, ist mühsam und fehleranfällig.
Das Experiment: Kann ich Claude (in diesem Fall Sonnet 4.5) dazu bringen, ein Python-Programm zu schreiben, das…
- Ein Schweizer CAMT-File von einem Laufwerk einliest.
- Jede einzelne Bank-Transaktion verarbeitet.
- Sie in mein 40-Spalten-CSV-Format umstrukturiert.
- Für jede Transaktion automatisch eine Soll- und eine Haben-Buchung generiert.
- Die Beträge korrekt als Plus- und Minus-Werte einträgt.
- Den Banktext und das korrekte FIBU-Konto der Bank einfügt.
Das Ganze war als “Vorstufe” gedacht – ein erster Baustein für eine spätere, vollautomatische Verarbeitung via n8n und eine angebundene Kontierungs-KI.
Das Ergebnis? Ich war verblüfft. Nach wenigen Minuten und zwei kurzen Korrektur-Prompts lief der Python-Code einwandfrei.
3. Hauptteil: Der Weg zum Code – Ein iterativer Dialog
Der Schlüssel zum Erfolg war nicht der erste Prompt. Der Schlüssel war der Dialog – ein iterativer Prozess aus Anforderung, Code-Vorschlag, Test und fachlichem Feedback.
Hier ist der nachvollzogene Chat-Verlauf, der zeigt, wie Fachexpertise und KI-Codierfähigkeit ineinandergreifen.
Schritt 1: Die (sehr spezifische) Erstanforderung
Ich habe der KI nicht einfach gesagt “Wandle CAMT in Excel”. Ich habe ihr die gesamte, 40-spaltige Zielstruktur meines CSVs gegeben und die Logik erklärt:
SourceFilenamesoll den Dateinamen enthalten.TrxIDsoll eine laufende Nummer sein.DocumentDateundBookingDatesollen das Transaktionsdatum bekommen.AccountingDocumentText1soll den Banktext enthalten.- WICHTIG: Jede Bewegung soll zwei Zeilen ergeben (Soll/Haben), mit dem Betrag einmal im Plus und einmal im Minus.
FinancialDimensionIDundFinancialMetricsIDsollen immer1sein.
Die KI lieferte ein erstes Script, das xml.etree.ElementTree und openpyxl nutzte. Es war ein guter Start, basierte aber auf einer Annahme über die CAMT-Struktur.
Schritt 2: Der Realitäts-Check (Input-Datei)
Damit die KI nicht rät, habe ich ein echtes Schweizer CAMT-File (camt.053.001.04) hochgeladen. Erkenntnis der KI: “Perfekt! Jetzt sehe ich die tatsächliche Struktur.” Die KI passte sofort den XML-Namespace und die Pfade (Tags) im Code an, um die echten Daten (<Amt>, <CdtDbtInd>, <AddtlNtryInf>) korrekt auszulesen. Das Script funktionierte auf Anhieb und fand im Testfile 35 Transaktionen, was 70 Buchungszeilen ergab.
Schritt 3: Technische Hürden (Pfad & Encoding)
Problem 1: Ich wollte den Dateipfad nicht im Code suchen müssen. Lösung: “Kannst du das direkt im Programm abbilden, damit ich nur den Pfad anpassen muss?” – Die KI baute sofort einen sauberen Konfigurations-Block am Anfang des Scripts ein.
Problem 2: Beim Ausführen in meiner “Spyder” (einer Python-Umgebung) bekam ich einen SyntaxError: invalid character '·' (U+00B7). Lösung: Ein klassisches Encoding-Problem. Die KI erkannte das und lieferte eine “saubere” Version der Datei, die sofort funktionierte.
Schritt 4: Das entscheidende Fach-Feedback (Domain Expertise)
Jetzt kam der wichtigste Teil. Der Code lief, aber der Output war fachlich noch nicht 100% korrekt für meine FIBU.
Mein Feedback an die KI:
- “Hinten baut das Programm eine Spalte
Bank_CSrein, die muss weg.” - “Folgende Felder müssen leer sein:
DebitCredit,VATCodeID,VATpercentage,InsertTimestamp.” - “Folgende Felder müssen den Integer-Wert
1haben:FinancialDimensionID,FinancialMetricsID.” - Die Kernlogik: “Bei
FinancialAccountingAccountIDmuss eine Logik rein: Bei einem Bankeingang (Kredit) soll das Bankkonto (z.B.1024) in der Zeile mit dem Plus-Betrag stehen. Bei einer Auszahlung (Debit) soll das Bankkonto1024in der Zeile mit dem Minus-Betrag stehen.”
Das ist reines Fachwissen. Die KI kann das nicht erraten. Sie muss es gesagt bekommen.
Schritt 5: Die finale Korrektur (Feintuning)
Die KI (Claude) setzte alles perfekt um. Sie baute die Logik mit dem CdtDbtInd (Credit/Debit) Tag aus dem CAMT-File.
Ein letztes Detail fiel mir im Excel-Export auf: Die Kontonummer 1024 wurde als 1'024.00 formatiert. Mein Feedback: “Die Felder TrxID, FinancialAccountingAccountID, etc. dürfen keine Kommas haben, nur absolute Werte.” Lösung: Die KI passte die letzte Code-Zeile an, sodass die Zahlenformatierung nur auf das Feld AmountInMainCurrency angewendet wird.
Ergebnis: Ein perfektes Python-Script, das exakt mein Problem löst.
4. Praxis-Tipps: Was wir daraus lernen
Dieser Dialog mit Claude (der in der Realität über ein paar Iterationen ging) zeigt die neue Arbeitsweise:
- Du bist der Fachexperte, KI der Coder: Die KI kannte mein 40-Spalten-Format nicht. Sie wusste nicht, wie ich mein Bankkonto (
1024) logisch zuweise. Ich war der Architekt, die KI war der extrem schnelle Programmierer. - Iteration ist der Schlüssel: Der erste Prompt ist selten die finale Lösung. Der wahre Wert liegt im Dialog, im Testen und im schrittweisen Verfeinern. Gib der KI Feedback, als wäre sie ein Junior-Entwickler.
- “Micro-Lösungen” sind Gold wert: Wir müssen nicht immer auf das grosse, teure IT-Projekt warten. Mit Tools wie Python und KI können wir “Micro-Lösungen” für Nischenprobleme (wie ein spezifischer Import) selbst bauen, die uns sofort Zeit sparen.
