schoenle
Goto Top

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

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

erikro
erikro 22.04.2020 um 11:43:56 Uhr
Goto Top
Moin,

wie wäre es damit: Das Etikett auch elektronisch "ausdrucken" und dann das Ergebnis in die Rechnungspdf einfügen. Dann die Datei unter dem Namen speichern und fertig. Nur sonne Idee.

Liebe Grüße

Erik
beidermachtvongreyscull
beidermachtvongreyscull 22.04.2020 um 13:38:04 Uhr
Goto Top
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.
monstermania
monstermania 22.04.2020 aktualisiert um 15:55:10 Uhr
Goto Top
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 Weg

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.

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.
Schoenle
Schoenle 22.04.2020 um 16:14:46 Uhr
Goto Top
Vielleicht habe ich mich da etwas blöd ausgedrückt:
Die Software erkennt ja die Datei über den aufgeklebten Barcode. Die Zukunft ist definitiv das Format ZUGFeRD, das aber noch nicht alle Lieferanten zur Verfügung stellen. Dort ziehe ich mir die Rechnungen direkt bei den Lieferanten vom FTP-Server, es handelt sich um PDF-Dateien mit angehängter XML-Datei, die dann auch alle geschäftsrelevanten Daten mit übergibt. Hier läuft die Zuordnung auch automatisiert.

Mir geht es um den ganzen Rest, das sind momentan noch ca. 50%, die ich noch nicht so abwickeln kann.

Auf Euren Input hin habe ich aber nochmal beim Softwarehersteller nachgefragt, der hat wohl mittlerweile ein Lösung in Form eines Outlook-Addins, über das ich per Mail empfangene Rechnungen direkt zuordnen kann.
Wenn das brauchbar funktioniert, kann ich ja meinen Scanner so einstellen, dass er die gescannten Dokumente per Mail an meinen Rechnungseingangs-E-Mail-Adresse schickt.
Ich lasse die Frage mal noch offen, bis ich das austesten konnte.
Schoenle
Schoenle 23.04.2020 um 15:57:28 Uhr
Goto Top
Zitat von @monstermania:
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!

Die Zuordnung der PDF-Datei muss immer manuell erfolgen, da sehe ich keine andere Möglichkeit. Im Prinzip geht es nur drum, dass alle Eingangsrechnunge eindeutig nummeriert werden, dann ordne ich diese Rechnung zu einem Lieferanten oder einer konkreten Bestellung zu.

Wie gesagt, Ziel für die Standardlieferanten ist der Rechnungsempfang über ZUGFeRD, da erfolgt die Zuordnung bis auf Positionosebene dann automatisch, doch ich werde weiterhin einzelne Rechnungen haben, die eben in Papierform oder als PDF per Mail kommen.
Hierfür gibt es ein Outlook-Addin, dass ich heute installieren konnte, da bin ich jetzt am Testen.
138701
138701 27.04.2020 um 14:05:13 Uhr
Goto Top
A: Mit Batch kann man ALLES machen.
B: Kannst du nochmal kurzfassen, was das Script machen soll? Mir ist das zu viel Text.
Schoenle
Schoenle 27.04.2020 um 15:36:36 Uhr
Goto Top
Alle PDF-Dateien in einem Ordner mit dem Namen ER und fortlaufender 7-stelliger Nummer umbenennen.
Sinngemäß bräuchte es eine Abfrage: Wenn Dateiname nicht mit ER beginnt, dann mit nächster freier ER-Nummer vergeben.

Da die umbenannten PDF-Dateien dann verschoben werden, muss die fortlaufende Nummer irgendwo als Variable abgelegt sein.

Ich hab von Batch nicht viel Ahnung, mit VBA würde ich das sinngemäß so angehen:
ER-Nummer = ER0000348 (Variable nächste freie Nummer)
für jede Datei in Ordner K:\Eingang
Wenn Datei nicht mit ER beginnt --> Dateiname = "ER-Nummer".pdf (Datei umbenennen)
ER-Nummer = ER-Nummer +1 (Variable weiter zählen für nächste zu benennende Datei)
Sprung zu nächster Datei

Ich hoffe, das ist einigermaßen verständlich face-smile
138701
Lösung 138701 27.04.2020 aktualisiert um 15:56:20 Uhr
Goto Top
Jetzt macht es Sinn:

@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.
Schoenle
Schoenle 15.07.2022 um 14:18:36 Uhr
Goto Top
Nach längerer Abstinenz durch einen Servercrash hat sich das Thema selbst überhol, daher abgeschlossen.