PDF-Daten in einer Datenbank speichern
Schritt-für-Schritt-Anleitung: Rechnungsdaten automatisch in eine Datenbanktabelle schreiben
Diese Anleitung zeigt am Beispiel eines Rechnungseingangsbuchs, wie Automatic PDF Processor
für jede eingehende Rechnung automatisch einen Datensatz in eine Datenbank schreibt: Rechnungsnummer,
Rechnungsdatum, Betrag und der Ablageort der Datei landen ohne Handarbeit in einer Tabelle Ihrer
Buchhaltungsdatenbank.
Die Verbindung erfolgt über ODBC. Damit funktioniert die Aufgabe mit praktisch jeder
Datenbank, für die ein ODBC-Treiber existiert - Microsoft SQL Server, MySQL, MariaDB, PostgreSQL,
Oracle, Microsoft Access und viele weitere. SQL-Kenntnisse sind für den hier gezeigten Weg
nicht erforderlich: Sie wählen eine Tabelle und ordnen jeder Spalte einen Wert zu.
Auf einen Blick
- Schwierigkeit: Fortgeschritten
- Zeitbedarf: ca. 20 Minuten
- Voraussetzungen: Automatic PDF Processor ab Version 2.9.0, eine erreichbare Datenbank mit Zieltabelle (oder die Rechte, eine anzulegen)
- Ergebnis: Jede verarbeitete PDF-Datei erzeugt automatisch einen typgerechten Datensatz in Ihrer Datenbank
Hinweis: Diese Anleitung zeigt die Arbeitsweise "Tabelle befüllen" - den
einfachsten Weg ohne SQL-Kenntnisse. Wer INSERT/UPDATE-Befehle oder gespeicherte Prozeduren einsetzen
möchte, findet die Arbeitsweise "Eigener SQL-Befehl" am Ende der Anleitung sowie
ausführlich in der Programmhilfe.
Video-Tutorial: PDF-Daten automatisch in einer Datenbank speichern (mit Sprachausgabe und optionalen Untertiteln)
Schritt 1: Zieltabelle in der Datenbank vorbereiten
Legen Sie in Ihrer Datenbank eine Tabelle an (oder verwenden Sie eine vorhandene), die die gewünschten
Werte aufnimmt. Für das Rechnungseingangsbuch genügt zum Beispiel diese Tabelle
(hier für Microsoft SQL Server):
CREATE TABLE dbo.Rechnungseingang (
Id INT IDENTITY(1,1) PRIMARY KEY,
Nummer NVARCHAR(50) NOT NULL,
Datum DATE,
Betrag DECIMAL(18,2),
Ablage NVARCHAR(260),
Erfasst DATETIME DEFAULT GETDATE()
);
Zwei Spalten füllt die Datenbank später selbst: Id (automatische Nummerierung) und
Erfasst (Standardwert "aktuelles Datum"). Diese Spalten bleiben in der Aufgabe einfach
ohne Zuordnung.
Hinweis: Die Datentypen dürfen "echte" Datums- und Zahlenspalten sein.
Automatic PDF Processor übergibt die Werte typgerecht - ein extrahiertes Datum als Datum, ein Betrag
als Dezimalzahl - unabhängig davon, in welchem Format sie im PDF-Dokument stehen.
Schritt 2: Neues Profil erstellen
Erstellen Sie in Automatic PDF Processor ein neues Profil mit einem aussagekräftigen Namen wie
"Rechnungseingangsbuch" und legen Sie den Ordner fest, in dem die eingehenden Rechnungen
ankommen (z. B. C:\Dokumente\Eingang\Rechnungen).
Schritt 3: Extrahierungsregeln für die Werte anlegen
Legen Sie für jeden Wert, der in die Datenbank soll, eine Datenextrahierungsregel an. Für das
Rechnungseingangsbuch sind das drei Regeln:
| Regel |
Datentyp |
Beispiel-Ermittlung |
| Rechnungsnummer |
Text |
Schlüsselwort "Rechnungsnummer:", Daten rechts daneben |
| Rechnungsdatum |
Datum |
Schlüsselwort "Rechnungsdatum:", Daten rechts daneben |
| Betrag |
Zahl |
Schlüsselwort "Gesamt:", Daten rechts daneben |
Wichtig: Stellen Sie bei den Regeln den passenden Datentyp ein
("Datum" bzw. "Zahl"). Nur dann werden die Werte als Datum bzw. Dezimalzahl an die
Datenbank übergeben - andernfalls kommen sie als Text an und passen nicht in Datums- oder Zahlenspalten.
Tipp: Fügen Sie dem Profil einige Beispieldateien hinzu. Die
Live-Vorschau im Regeleditor zeigt sofort, ob die Regeln die richtigen Werte treffen - und die spätere
Vorschau der Datenbank-Aufgabe nutzt dieselben Dateien.
Schritt 4: Aufgabe "In Datenbank speichern" hinzufügen und Verbindung einrichten
Wechseln Sie zur Seite Aufgaben und fügen Sie die Aufgabe
"In Datenbank speichern" hinzu. Richten Sie zunächst die
Datenbankverbindung ein:
| Verbindungsart |
Wann verwenden |
| SQL Server |
Für Microsoft SQL Server: Server (z. B. SRV-SQL01 oder
RECHNER\SQLEXPRESS) und Datenbank als Felder eingeben - den passenden ODBC-Treiber
wählt das Programm automatisch. |
| ODBC-Datenquelle (DSN) |
Für eine in der Windows-ODBC-Verwaltung eingerichtete Datenquelle - die Auswahlliste zeigt
die vorhandenen Datenquellen. |
| Verbindungszeichenfolge (ODBC) |
Für alle anderen Datenbanken, z. B.
Driver={MySQL ODBC 8.0 Unicode Driver};Server=db01;Database=belege;UID=app;PWD=...; |
Für das Beispiel genügt die Verbindungsart SQL Server mit Servername, Datenbank
Buchhaltung und Windows-Anmeldung. Klicken Sie anschließend auf
"Verbindung testen" - bei Erfolg werden Server, Version und Datenbank angezeigt.
Hinweis zu 64-Bit: Automatic PDF Processor ist ein 64-Bit-Programm und kann nur
64-Bit-ODBC-Treiber und -Datenquellen verwenden. Eine Datenquelle, die in der 32-Bit-ODBC-Verwaltung
angelegt wurde, erscheint nicht in der Liste - legen Sie sie in der 64-Bit-Verwaltung
(odbcad32.exe aus C:\Windows\System32) neu an.
Windows-Anmeldung und Windows-Dienst: Die Verbindung wird mit dem Konto aufgebaut, unter dem
die Verarbeitung läuft. Läuft die Hintergrundverarbeitung als Windows-Dienst, muss das
Dienstkonto Zugriff auf die Datenbank haben - sonst schlägt die Verbindung fehl, obwohl
der Test in der Oberfläche erfolgreich war.
Schritt 5: Tabelle wählen und Spalten zuordnen
Im Bereich Datenbankziel ist die Arbeitsweise "Tabelle befüllen"
bereits vorgewählt. Gehen Sie so vor:
- Tabelle: Klicken Sie auf "Tabellen laden" und wählen Sie
dbo.Rechnungseingang aus der Liste.
- "Spalten aus Tabelle laden": Die Spalten erscheinen mit ihren Datentypen in der
Liste. Pflichtspalten sind mit
* markiert; automatisch vergebene Spalten wie Id
erscheinen grau und bleiben ohne Zuordnung.
- Werte zuordnen: Wählen Sie eine Spalte, tragen Sie unter Wert den
gewünschten Platzhalter ein (Schaltfläche "Platzhalter einfügen") und klicken Sie
auf Übernehmen.
| Spalte |
Wert |
Nummer |
<RuleId:1(Rechnungsnummer)> |
Datum |
<RuleId:2(Rechnungsdatum)> |
Betrag |
<RuleId:3(Betrag)> |
Ablage |
<ParentDirectory>\<FileName> (Ablageordner + Dateiname) |
Tipp - automatische Zuordnung: Die Schaltfläche
"Automatisch zuordnen" belegt alle noch leeren Spalten, deren Name dem Namen einer
Extrahierungsregel entspricht - Groß-/Kleinschreibung, Präfixe wie fld_ und
Umlaut-Schreibweisen spielen dabei keine Rolle. Bei vielen Regeln erspart das die Handarbeit.
Duplikatschutz: Markieren Sie die Spalte Nummer als
Schlüsselspalte (Häkchen in der Spaltenliste) und wählen Sie als Verhalten
"Überspringen". Wird dieselbe Rechnung ein zweites Mal verarbeitet - etwa durch
die Wiederholungslogik nach einem Fehler -, entsteht so kein doppelter Datensatz.
Soll auch der endgültige Ablageort in der Datenbank stehen, fügen Sie dem Profil zusätzlich die
Aufgabe "Verschieben" hinzu und platzieren Sie sie vor der
Datenbank-Aufgabe. Die Platzhalter <ParentDirectory> und <FileName>
liefern dann bereits den Ordner und Namen nach dem Verschieben.
Schritt 6: Vorschau prüfen und Testlauf starten
Klicken Sie auf "Vorschau mit Beispieldatei": Das Programm zeigt den fertigen
Befehl mit den Werten einer Beispieldatei des Profils - inklusive Datentyp je Parameter (Text, Datum, Zahl
oder NULL). Für die Vorschau wird nichts in die Datenbank geschrieben, Sie sehen aber
exakt, was bei der Verarbeitung ankommen wird.
Speichern Sie das Profil und legen Sie eine Test-Rechnung in den überwachten Ordner. Nach der
Verarbeitung finden Sie den neuen Datensatz in der Tabelle - mit echtem Datum in der Datumsspalte und echtem
Dezimalbetrag in der Betragsspalte:
Id Nummer Datum Betrag Ablage Erfasst
1 RE-2026-00147 2026-01-15 1425.62 C:\Dokumente\Archiv\2026\RE-Eingang.pdf 2026-09-02 14:31:07
Alternative: Eigener SQL-Befehl
Anwender mit SQL-Kenntnissen können statt der Tabellenzuordnung die Arbeitsweise
"Eigener SQL-Befehl" wählen - etwa für UPDATE/MERGE-Befehle oder den
Aufruf gespeicherter Prozeduren. Platzhalter werden direkt in den Befehl geschrieben,
ohne Anführungszeichen:
INSERT INTO Rechnungseingang (Nummer, Datum, Betrag)
VALUES (<RuleId:1(Rechnungsnummer)>, <RuleId:2(Rechnungsdatum)>, <RuleId:3(Betrag)>)
Die Platzhalter werden dabei nicht als Text eingesetzt, sondern bei der Ausführung als
typisierte Parameter übergeben. Apostrophe oder Sonderzeichen in den Werten sind dadurch unproblematisch,
und der Befehl bleibt gegen SQL-Injection geschützt.
Häufige Probleme
| Problem |
Lösung |
| Die ODBC-Datenquelle erscheint nicht in der Auswahlliste |
Sie wurde vermutlich in der 32-Bit-ODBC-Verwaltung angelegt. In der
64-Bit-Verwaltung (C:\Windows\System32\odbcad32.exe) neu anlegen. |
| Verbindungstest klappt, aber die Verarbeitung im Windows-Dienst meldet einen Verbindungsfehler |
Bei Windows-Anmeldung zählt das Konto der Verarbeitung: Dem Dienstkonto in der
Datenbank Zugriff geben (oder Benutzername/Passwort in der Aufgabe hinterlegen). |
| "Tabellen laden" findet die Tabelle nicht |
Tabellenname mit Schema eingeben (z. B. dbo.Rechnungseingang) und prüfen, ob
das verwendete Konto Leserechte auf die Tabelle hat. |
| Es entstehen doppelte Datensätze |
Eine oder mehrere Schlüsselspalten markieren (z. B. die Rechnungsnummer)
und als Verhalten "Überspringen" oder "Vorhandenen Datensatz aktualisieren"
wählen (siehe Schritt 5). |
| Datum oder Betrag kommt als Text an bzw. wird abgelehnt |
Bei der Extrahierungsregel den Datentyp auf "Datum" bzw. "Zahl"
stellen - nur dann erfolgt die typgerechte Übergabe. |
| Der Datenbankserver ist nachts nicht erreichbar |
Kein Handlungsbedarf: Die Aufgabe meldet einen Fehler und die Wiederholungslogik des
Profils verarbeitet die Datei zu den eingestellten Zeitpunkten erneut. |
Weitere Schritt-für-Schritt-Anleitungen
Erste Schritte
Grundlegende Aufgaben
PDF-Bearbeitung
E-Rechnung & Archivierung
Betrieb & Server
Praxisbeispiele
Zur Automatic PDF Processor-Übersichtsseite
Automatic PDF Processor jetzt unverbindlich 30 Tage testen ...
Zum Download