Die Standard-Exporte der JTL-Ameise decken viel ab – aber nicht alles. Spätestens wenn Daten aus mehreren Bereichen in einer Datei landen sollen, etwa Artikel mit Lagerbestand je Lager, Auftragsdaten in einem bestimmten Zuschnitt oder eine Liste für den Steuerberater, stößt man an Grenzen. Dafür gibt es in der Ameise eigene Exporte: Sie schreiben eine SQL-Abfrage, die Ameise führt sie aus und speichert das Ergebnis als Datei.
Wofür sich eigene Exporte eignen
Laut JTL-Guide lassen sich mit eigenen Exporten alle in der JTL-Wawi hinterlegten Daten aus der Datenbank filtern und exportieren. Typische Einsätze:
- Auswertungen, die es in der Oberfläche nicht gibt, zum Beispiel ein Lagerbestand zu einem Stichtag
- Listen für Lieferanten, Marktplätze oder die Buchhaltung in einem festen Spaltenaufbau
- regelmäßige Dateien, die per Kommandozeile automatisch erzeugt werden
Wer die Daten dagegen live in der Wawi sehen will, ist mit den Eigenen Übersichten besser bedient. Das ist eine eigene Funktion mit eigenen Regeln und nicht Thema dieses Artikels.
Schritt für Schritt: eigenen Export anlegen
JTL beschreibt das Anlegen im Guide so:
- Öffnen Sie in der JTL-Wawi Start → JTL-Ameise.
- Wählen Sie in der Menüleiste Export.
- Wählen Sie unter Daten exportieren den Punkt Eigener Export → Eigener Export.
- Klicken Sie auf Neuer Export und tragen Sie im Feld Exportname einen sprechenden Namen ein.
- Klicken Sie in das Textfeld und geben Sie Ihr SQL ein.
- Speichern Sie mit Export speichern.
Zum Ausführen klicken Sie auf Export starten. Im Dialog Exportvorgang klicken Sie erneut auf Export starten, wählen im Dialog Speichern unter Ordner und Dateinamen und bestätigen mit Speichern. Nach dem Lauf schließen Sie den Dialog mit Zurück.
Das Minimalbeispiel aus dem JTL-Guide liefert eine Liste aller Artikelnummern:
SELECT cArtNr AS Artikelnummer
FROM tArtikel
JTL weist ausdrücklich darauf hin, dass die Ameise ein sehr mächtiges Werkzeug ist und solide Vorkenntnisse voraussetzt. Sichern Sie vor der Arbeit mit der Ameise immer Ihre Daten.
Regeln für das SQL
Der JTL-Guide dokumentiert keine vollständige Liste erlaubter oder verbotener SQL-Befehle. Aus der Praxis haben sich diese Regeln bewährt:
Nur lesen. Ein Export besteht aus einer SELECT-Abfrage. UPDATE, INSERT, DELETE oder das Ausführen von Prozeduren gehören nicht in einen Export.
Eine Abfrage, möglichst ohne Variablen. In SQL Server Management Studio schreibt man gern DECLARE @Stichtag ... an den Anfang. Für die Ameise schreiben wir Werte wie ein Datum direkt in die Abfrage. Das hält den Export einfach und vermeidet Überraschungen zwischen Versionen. Im JTL-Forum wurde außerdem berichtet, dass in Ameise 1.6 ein UNION SELECT nicht funktionierte – testen Sie solche Konstrukte also vorab in Ihrer Version.
Spaltennamen per Alias. Vergeben Sie mit AS lesbare Namen wie im Beispiel oben (AS Artikelnummer). Interne Namen wie cArtNr oder fVKNetto versteht außerhalb der Datenbank niemand.
Tabellen- und Spaltennamen prüfen. Die Struktur der Datenbank eazybusiness ist in der JTL-Datenbankdokumentation (wawi-db.jtl-software.de) beschrieben. Ein häufiger Fehler im Forum ist „ungültiger Spaltenname“ – fast immer ein Tippfehler oder eine Spalte, die in der eigenen Wawi-Version anders heißt.
Datum im ISO-Format. Datumswerte in Bedingungen schreiben Sie als 'JJJJ-MM-TTThh:mm:ss', zum Beispiel '2026-12-31T23:59:59'. Andere Schreibweisen hängen von den Spracheinstellungen des SQL Servers ab und führen schnell zu Konvertierungsfehlern. Soll das Datum in der Ausgabe deutsch formatiert erscheinen, hilft CONVERT(VARCHAR(10), dErstellt, 104) (Format TT.MM.JJJJ).
Beispiel: Lagerbestand zum Stichtag als Ameise-Export
In unserem Artikel Lagerbestand zu jedem Zeitpunkt ermitteln steht eine Abfrage, die den Bestand je Artikel und Warenlager zu einem beliebigen Zeitpunkt aus den Lagerbewegungen zurückrechnet. Dort finden Sie auch eine Ameise-taugliche Fassung ohne DECLARE. Das Prinzip in Kurzform:
;WITH Bewegungen AS (
SELECT e.kArtikel, wp.kWarenLager, e.fAnzahl AS Menge
FROM dbo.tWarenLagerEingang e
JOIN dbo.tWarenLagerPlatz wp ON wp.kWarenLagerPlatz = e.kWarenLagerPlatz
WHERE e.dErstellt <= '2026-12-31T23:59:59'
UNION ALL
SELECT x.kArtikel, wp.kWarenLager, -x.fAnzahl
FROM dbo.tWarenLagerAusgang x
JOIN dbo.tWarenLagerPlatz wp ON wp.kWarenLagerPlatz = x.kWarenLagerPlatz
WHERE x.dErstellt <= '2026-12-31T23:59:59'
)
SELECT ... -- Artikelnummer, Warenlager, Bestand: siehe Artikel
Statt einer Variablen steht der Stichtag direkt im Text – und zwar zweimal. Wer den Zeitpunkt ändert, muss beide Stellen anpassen. Die vollständige Abfrage mit Artikelname und Gruppierung finden Sie im verlinkten Artikel.
Format der Exportdatei
Der JTL-Guide zum eigenen Export beschreibt keine Einstellungen für Trennzeichen oder Zeichensatz; er nennt nur, dass sich die Datei zum Beispiel in Microsoft Excel öffnen lässt. Für die Standard-Exporte der Ameise dokumentiert JTL CSV als Format mit Einstellungen für Kopfzeile, Spaltenbegrenzer, Quote-Zeichen, Escape-Zeichen, Dezimal- und Tausendertrenner sowie Nachkommastellen.
Prüfen Sie deshalb die erste erzeugte Datei in einem Texteditor: Welches Trennzeichen wird verwendet, werden Umlaute korrekt dargestellt, wie sehen Dezimalzahlen aus? Erst wenn das passt, lohnt sich die Automatisierung. Zahlen runden Sie am besten schon im SQL, etwa mit CAST(... AS DECIMAL(18,2)).
Automatisierung per Kommandozeile
Für wiederkehrende Exporte gibt es die CMD-Line-Version der Ameise, JTL-wawi-ameise.exe. Sie arbeitet laut JTL-Guide mit Vorlagen, die vorher in der grafischen Oberfläche angelegt wurden. Jede Vorlage hat eine eindeutige ID, die beim Laden und Speichern angezeigt wird. Export-IDs beginnen mit EXP, Import-IDs mit IMP.
Die Kommandozeile ist nicht in jeder JTL-Edition enthalten. Laut JTL-Guide steht die CMD-Line-Version je nach gebuchter Edition bzw. Paketkonfiguration möglicherweise nicht zur Verfügung. In der Funktionsübersicht auf der JTL-Preisseite (Stand Oktober 2026) ist „Data Transfer Batch Verarbeitung“ erst ab JTL Advanced enthalten, in JTL Start nicht; „Data Transfer Import und Export“, also das Arbeiten mit der Ameise in der Oberfläche, gibt es in allen Editionen. Prüfen Sie Ihre Edition im JTL-Kundencenter, bevor Sie die Automatisierung planen.
Für einen Export braucht die Ameise:
| Parameter | Bedeutung |
|---|---|
-s |
Datenbankserver, z. B. (local)\JTLWAWI |
-d |
Datenbank, z. B. eazybusiness oder die Datenbank eines weiteren Mandanten |
-u / -p |
Benutzer und Passwort des SQL Servers |
-t |
Vorlagen-ID des Exports, z. B. EXP3 |
-o |
Dateiname der Exportdatei |
Optional nennt der Guide unter anderem --log (Protokolldatei), --loglevel und --nostdout (keine Ausgabe in der Konsole). Im Dateinamen sind Platzhalter für Datum und Uhrzeit möglich. Ein Aufruf in einer .bat-Datei:
"C:\Program Files (x86)\JTL-Software\JTL-wawi-ameise.exe" -s (local)\JTLWAWI -d eazybusiness -u sa -p IhrPasswort -t EXP3 -o "C:\Export\Bestand_%%y-%%m-%%d.csv" --log "C:\Export\ameise.log"
In einer Batch-Datei muss jedes % verdoppelt werden (%%y statt %y). Den Programmpfad prüfen Sie bitte auf Ihrem System. Die .bat-Datei starten Sie dann zeitgesteuert über die Windows-Aufgabenplanung.
Das Passwort steht im Klartext in der Batch-Datei. Legen Sie die Datei so ab, dass nur berechtigte Benutzer sie lesen können, und verwenden Sie nach Möglichkeit einen SQL-Benutzer, der nur lesen darf, statt sa.
Typische Fehler
| Symptom | Ursache | Lösung |
|---|---|---|
| „ungültiger Spaltenname“ beim Export | Tippfehler oder Spalte existiert in der Version nicht | Namen in der JTL-Datenbankdokumentation prüfen, Abfrage zuerst in SSMS testen |
| Konvertierungsfehler beim Datum | Datum nicht im ISO-Format | 'JJJJ-MM-TTThh:mm:ss' verwenden |
| Abfrage läuft in SSMS, in der Ameise nicht | Mehrere Anweisungen, Variablen oder Konstrukte wie UNION |
Auf eine einzelne SELECT-Abfrage reduzieren, Werte direkt eintragen |
| Per Kommandozeile läuft der falsche Export | Falsche Vorlagen-ID in -t |
Export laden, angezeigte ID prüfen und übernehmen |
| Umbenannter Export erscheint doppelt | Speichern nach Umbenennen legt einen neuen Export an (berichtet für Ameise 1.6) | Neue ID verwenden; alten Eintrag nicht mehr per Kommandozeile aufrufen |
| Konsolenfenster schließt sich sofort, keine Datei | Fehler im Aufruf, oft Wawi-Login statt SQL-Benutzer | -u/-p mit SQL-Benutzer, Batch aus offener Eingabeaufforderung starten, --log setzen |
Keine Exportdatei, -o zeigt auf einen Ordner |
-o erwartet eine Datei (Ordner nur bei Artikelbildern und DATEV) |
Vollständigen Dateinamen angeben, z. B. C:\Export\Bestand.csv |
Dateiname enthält y-m-d statt Datum |
% in der Batch-Datei nicht verdoppelt |
%%y, %%m, %%d schreiben |
-i statt -o im Aufruf, keine Exportdatei |
-i ist die Eingabedatei für Importe |
Für Exporte immer -o verwenden |
Fazit
Eigene Exporte machen die Ameise zu einem flexiblen Auswertungswerkzeug: einmal sauber als SELECT formuliert, als Vorlage gespeichert und per Kommandozeile eingeplant, liefert sie jede gewünschte Liste ohne Handarbeit. Die meisten Probleme entstehen nicht im SQL selbst, sondern bei Vorlagen-ID, Benutzerdaten und Dateipfad im Aufruf.
Wenn Sie eine bestimmte Auswertung brauchen oder ein bestehender Export nicht zuverlässig läuft, unterstützt PC-Mixx als JTL-Servicepartner bei Abfrage und Einrichtung.
Häufige Fragen
Wo lege ich in der JTL-Ameise einen eigenen SQL-Export an?
In der JTL-Ameise über Export → Daten exportieren → Eigener Export → Eigener Export und dann Neuer Export. Dort vergeben Sie einen Exportnamen, tragen das SQL in das Textfeld ein und klicken auf Export speichern.
Kann ein eigener Export Daten in der Wawi verändern?
Ein Export soll nur lesen. Verwenden Sie ausschließlich SELECT-Abfragen. Befehle wie UPDATE, INSERT oder DELETE haben in einem Export nichts zu suchen – und vor jeder Arbeit mit der Ameise gehört eine Datensicherung dazu.
Wie starte ich einen eigenen Export automatisch?
Über die Kommandozeilenversion JTL-wawi-ameise.exe mit Datenbankverbindung (-s, -d, -u, -p), der Vorlagen-ID des Exports (-t, z. B. EXP3) und der Zieldatei (-o). Den Aufruf legen Sie in eine .bat-Datei und starten sie über die Windows-Aufgabenplanung.
In welcher JTL-Edition funktioniert die Ameise per Kommandozeile?
Laut Funktionsübersicht auf der JTL-Preisseite (Stand Oktober 2026) ist die Batch-Verarbeitung von Data Transfer ab JTL Advanced enthalten, in JTL Start nicht. Import und Export in der Oberfläche der Ameise gibt es in allen Editionen. Maßgeblich ist der gebuchte Umfang im JTL-Kundencenter.
Welcher Benutzer gehört in die Parameter -u und -p?
Der Benutzer des Microsoft SQL Servers mit seinem Passwort – nicht der Benutzername, mit dem Sie sich an der JTL-Wawi anmelden.
Warum wird per Kommandozeile der falsche Export ausgeführt?
Meist stimmt die Vorlagen-ID nicht. Jeder gespeicherte Export hat eine eigene ID, die beim Laden und Speichern angezeigt wird. Prüfen Sie diese ID und tragen Sie genau sie im Parameter -t ein.
Quellen
- JTL-Guide: Eigene SQLs exportieren mit JTL-Ameise
- JTL-Guide: CMD-Line-Version von JTL-Ameise
- JTL: Preise und Editionen – Funktionsübersicht „Automation & Customizing“ (abgerufen am 14.10.2026)
- JTL-Guide: Aufbau der Export-Funktion
- JTL-Forum: Ameise 1.6 – Eigene Exporte
- JTL-Forum: JTL Ameise Eigener SQL Export via Batch Datei
- JTL-Forum: JTL Ameise Export Automatisch via Batch
- JTL-Forum: Fehlermeldung eigener Export JTL Ameise
- JTL-Datenbankdokumentation: wawi-db.jtl-software.de