PDF-Dokumente eindeutig mit fortlaufender Nummer benennen
Hallo zusammen,
zuallererst hoffe ich, dass ich im richtigen Forumsbereich bin.
Mit meinem begrenzten Wissen würde ich das Thema aber am ehesten mit einer Batch-Datei versuchen.
Aber zuerst versuche ich die Rahmenbedingung zu umreissen:
Für unser ERP-System werden Eingangsrechnungen unter einer fortlaufenden Nummer abgelegt.
Heute werden hierfür Etikettenbögen mit den fortlaufenden Nummern mit Barcode (z.B. ER0003259, ER0003260, usw.) ausgedruckt. Jede Rechnung wird dann mit einem solchen Aufkleber versehen und gescannt. Über eine Zusatzsoftware auf dem Server wird die Datei über den Barcode mit der Nummer benannt, also z.B. ER0003259.pdf, und in einem Scan-Ordner Eingangsrechnungen abgelegt.
Im ERP-System wird der entsprechenden Bestellung die zugehörige PDF-Datei zugeordnet und abgelegt.
Der Vorteil mit den Etiketten ist, dass eine Falschbenennung oder doppelte Nummernvergabe nahezu ausgeschlossen ist. Mich stört aber, dass ich hierfür die Rechnung in Papierform brauche.
Unsere Sachbearbeiter drucken deshalb Rechnungen, die schon per PDF kommen, aus, versehen sie mit dem Barcodeetikette und scannen sie dann wieder ein.
Abgesehen davon, ob dieser Ablauf überhaupt rechtlich zulässig ist, stört es mich enorm, wenn ich was ausdrucke und dann wieder scanne.
Ich selbst behelfe mir aktuell so, dass ich die PDF-Rechnungen manuell ablege und mit der nächsten freien Nummer benenne, das zugehörige Etikett streiche ich durch, damit klar ist, dass diese Nummer gesperrt ist.
Nach der etwas längeren Erläuterung nun meine Idee, wie ich das optimieren könnte:
Ein Ordner fungiert als Inbox: Wenn dorthin eine PDF-Dateien gespeichert werden, z.B. vom Scanner oder halt aus einem E-Mail-Anhang, sollen diese Dateien mit eindeutigen fortlaufenden Nummernbenannt und in den eigentlichen Eingangsrechnungsordner der ERP-Software verschoben werden. Das müsste nicht einmal automatisiert geschehen, es würde für mich auch passen, wenn ich manuell anstoßen könnte, dass alle PDF-Dateien in der Inbox verarbeitet werden.
Wichtig ist, dass jede Nummer nur einmal vergeben werden wird.
Kann mir jemand einen Tipp geben, wie ich das angehen könnte, bin ich da mit einer Batch richtig?
Gruß Marco
zuallererst hoffe ich, dass ich im richtigen Forumsbereich bin.
Mit meinem begrenzten Wissen würde ich das Thema aber am ehesten mit einer Batch-Datei versuchen.
Aber zuerst versuche ich die Rahmenbedingung zu umreissen:
Für unser ERP-System werden Eingangsrechnungen unter einer fortlaufenden Nummer abgelegt.
Heute werden hierfür Etikettenbögen mit den fortlaufenden Nummern mit Barcode (z.B. ER0003259, ER0003260, usw.) ausgedruckt. Jede Rechnung wird dann mit einem solchen Aufkleber versehen und gescannt. Über eine Zusatzsoftware auf dem Server wird die Datei über den Barcode mit der Nummer benannt, also z.B. ER0003259.pdf, und in einem Scan-Ordner Eingangsrechnungen abgelegt.
Im ERP-System wird der entsprechenden Bestellung die zugehörige PDF-Datei zugeordnet und abgelegt.
Der Vorteil mit den Etiketten ist, dass eine Falschbenennung oder doppelte Nummernvergabe nahezu ausgeschlossen ist. Mich stört aber, dass ich hierfür die Rechnung in Papierform brauche.
Unsere Sachbearbeiter drucken deshalb Rechnungen, die schon per PDF kommen, aus, versehen sie mit dem Barcodeetikette und scannen sie dann wieder ein.
Abgesehen davon, ob dieser Ablauf überhaupt rechtlich zulässig ist, stört es mich enorm, wenn ich was ausdrucke und dann wieder scanne.
Ich selbst behelfe mir aktuell so, dass ich die PDF-Rechnungen manuell ablege und mit der nächsten freien Nummer benenne, das zugehörige Etikett streiche ich durch, damit klar ist, dass diese Nummer gesperrt ist.
Nach der etwas längeren Erläuterung nun meine Idee, wie ich das optimieren könnte:
Ein Ordner fungiert als Inbox: Wenn dorthin eine PDF-Dateien gespeichert werden, z.B. vom Scanner oder halt aus einem E-Mail-Anhang, sollen diese Dateien mit eindeutigen fortlaufenden Nummernbenannt und in den eigentlichen Eingangsrechnungsordner der ERP-Software verschoben werden. Das müsste nicht einmal automatisiert geschehen, es würde für mich auch passen, wenn ich manuell anstoßen könnte, dass alle PDF-Dateien in der Inbox verarbeitet werden.
Wichtig ist, dass jede Nummer nur einmal vergeben werden wird.
Kann mir jemand einen Tipp geben, wie ich das angehen könnte, bin ich da mit einer Batch richtig?
Gruß Marco
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 566639
Url: https://administrator.de/forum/pdf-dokumente-eindeutig-mit-fortlaufender-nummer-benennen-566639.html
Ausgedruckt am: 19.04.2025 um 12:04 Uhr
9 Kommentare
Neuester Kommentar
Hi,
nein. Das ist mit einer Batch aus meiner Sicht nicht zu machen. Du müsstest nämlich eine passende Quelle haben, die den Zielnamen der Datei mit der richtigen Datei assoziiert und die muss von Batch auslesbar sein.
Was mich eigentlich mehr wundert:
Ein pfiffiges ERP sollte eigentlich eine geeignete Barcodefunktion implementieren oder im Stande sein, die Dateinamensvergabe nach einem wählbaren Schema durchzuführen.
nein. Das ist mit einer Batch aus meiner Sicht nicht zu machen. Du müsstest nämlich eine passende Quelle haben, die den Zielnamen der Datei mit der richtigen Datei assoziiert und die muss von Batch auslesbar sein.
Was mich eigentlich mehr wundert:
Ein pfiffiges ERP sollte eigentlich eine geeignete Barcodefunktion implementieren oder im Stande sein, die Dateinamensvergabe nach einem wählbaren Schema durchzuführen.
Zitat von @Schoenle:
Abgesehen davon, ob dieser Ablauf überhaupt rechtlich zulässig ist, stört es mich enorm, wenn ich was ausdrucke und dann wieder scanne.
Ist rein rechtlich auf jedem Fall sehr bedenklich! Ein Beleg, den Ihr auf elektronischem WegAbgesehen davon, ob dieser Ablauf überhaupt rechtlich zulässig ist, stört es mich enorm, wenn ich was ausdrucke und dann wieder scanne.
Nach der etwas längeren Erläuterung nun meine Idee, wie ich das optimieren könnte:
Ein Ordner fungiert als Inbox: Wenn dorthin eine PDF-Dateien gespeichert werden, z.B. vom Scanner oder halt aus einem E-Mail-Anhang, sollen diese Dateien mit eindeutigen fortlaufenden Nummernbenannt und in den eigentlichen Eingangsrechnungsordner der ERP-Software verschoben werden. Das müsste nicht einmal automatisiert geschehen, es würde für mich auch passen, wenn ich manuell anstoßen könnte, dass alle PDF-Dateien in der Inbox verarbeitet werden. Wichtig ist, dass jede Nummer nur einmal vergeben werden wird.
Ein Ordner fungiert als Inbox: Wenn dorthin eine PDF-Dateien gespeichert werden, z.B. vom Scanner oder halt aus einem E-Mail-Anhang, sollen diese Dateien mit eindeutigen fortlaufenden Nummernbenannt und in den eigentlichen Eingangsrechnungsordner der ERP-Software verschoben werden. Das müsste nicht einmal automatisiert geschehen, es würde für mich auch passen, wenn ich manuell anstoßen könnte, dass alle PDF-Dateien in der Inbox verarbeitet werden. Wichtig ist, dass jede Nummer nur einmal vergeben werden wird.
Sollte eigentlich recht einfach umsetzbar sein. Die Frage ist, ob Du an die Datenbank des ERP heran kommst. Du könntest mit einem vb-script regelmäßig einen Ordner auf PDF-Dokumente prüfen und für jedes gefundene PDF die nächste eindeutige Barcode-Nummer aus der Datenbank des ERP holen (MS-SQL-Server?). Wichtig dabei, dass natürlich der Zähler auch um einen hochgezählt wird. Ggf. Muss man mit dem Hersteller des ERP klären, wie man die Ausgabe der Barcode-Nummer antriggern kannst (z.B. Webservice).
Mit dieser eindeutigen Nummer benennst Du dann das PDF um und verschiebst das Dokument in Deinen Importordner. Und Fertig.
Frage: Aber wie willst Du so eine Zuordnung des PDF zu einem Kunden/Lieferanten/Beleg im ERP hinbekommen!? Du hast ja z.B. per Mail ein PDF mit dem Namen 'Rechnung_202060003.pdf' der Firma 'XYZ GmbH' bekommen.
Über das Script würde jetzt daraus das PDF 'ER0003260.pdf' werden. Aber es fehlt weiterhin jeder Bezug im ERP!
Kann mir jemand einen Tipp geben, wie ich das angehen könnte, bin ich da mit einer Batch richtig?
Batch wird dafür wohl nicht ausreichen. Mit PowerShell oder aber dem guten alten vb-script ist so etwas auf jedem Fall machbar.
A: Mit Batch kann man ALLES machen.
B: Kannst du nochmal kurzfassen, was das Script machen soll? Mir ist das zu viel Text.
B: Kannst du nochmal kurzfassen, was das Script machen soll? Mir ist das zu viel Text.

Jetzt macht es Sinn:
Habs noch nicht getestet, sollte aber funktionieren.
@echo off
setlocal EnableDelayedExpansion
set config=C:\config.txt
set dir=K:\Eingang
if not exist "%config%" echo ^0>%config%
for /f "delims=" %%i in (%config%) do set /a num=%%i
cd /d "%dir%"
for %%i in (*.pdf) do set oldname=%%i&if not "!oldname:~0,2!"=="ER" (
set /a num=!num!+1
set snum=000000!num!
move /y "!oldname!" "ER!snum:~-7!.pdf"
)
echo ^%num%>%config%
exit /b
Habs noch nicht getestet, sollte aber funktionieren.