hilfdirselbst.ch
Facebook Twitter gamper-media
Skripte-Sammlung zu HELIOS von Axel Rose
Yann Borg
Beiträge: 337
23. Nov 2016, 00:20
Beitrag #1 von 4
Bewertung:
(3897 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ScriptServer: wie eingehende Files eindeutig umbenennen?


Guten Tag,

wir möchten Buchhaltungsrelevante Papierbelege in Dateibelege umwandeln und als PDF-Files die in bestimmte Ordner ablegen. Da sie ursprünglich willkürliche Namen tragen, möchten wir sie nach einem bestimmten Muster eindeutig benennen. Dies lässt sich sicherlich mit Helios und dem ScripServer realisieren, nur wie?

Ein paar Regelpunkte wären:

- alle eingehende PDFs bekommen einen neuen Namen (wäre super wenn der Ursprungsnamen in den Metadaten stecken würden, Helios kann das aber es ist kein muss)

- der Namen wird nach dem Muster „OCR-Beleg“ oder „Digital-Beleg“ und einem lesbaren Zeitstempel versehen: 2016-22-13:54:26_XX, wobei XX hochzählt. Beispiel: "OB_2016-22-13:54:26_01" oder für den seltenem Fall es wird zeitlgleich eine Datei erzeugt "OB_2016-22-13:54:26_02", oder "DB_2016-22-13:54:26_01"

- Optional: je nachdem welcher User die Datei ablegt, wird sie in einem bestimmten Ordner abgelegt. Dateien von User xy kommend werden im Ordner "OCR-Belege" verschoben und umbenannt und vom User zw werden sie im Ordner "Digital-Belege" verschoben und umbenannt.

- Anschliessend würden die Zugriffsrechte angepasst werden, damit die PDFs für alle nur lesbar sind.

Dachte mit, der Fall könnte für andere interessant sein? Wer möchte denn nicht sein Papierworkflow endlich digital abwickeln? ;-) Das wäre ein kleiner Schritt dahin um die Eingangsdokumente eindeutig indentifizierbar zu machen.

Viele Dank für jeden Tipp und Grüße

Yann Borg
Top
 
X
Bernd Flachsbart
Beiträge: 48
23. Nov 2016, 09:37
Beitrag #2 von 4
Beitrag ID: #554125
Bewertung:
(3847 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ScriptServer: wie eingehende Files eindeutig umbenennen?


Hallo Yann,

Antwort auf [ Yann Borg ]
- der Namen wird nach dem Muster „OCR-Beleg“ oder „Digital-Beleg“ und einem lesbaren Zeitstempel versehen: 2016-22-13:54:26_XX, wobei XX hochzählt. Beispiel: "OB_2016-22-13:54:26_01" oder für den seltenem Fall es wird zeitlgleich eine Datei erzeugt "OB_2016-22-13:54:26_02", oder "DB_2016-22-13:54:26_01"

- Optional: je nachdem welcher User die Datei ablegt, wird sie in einem bestimmten Ordner abgelegt. Dateien von User xy kommend werden im Ordner "OCR-Belege" verschoben und umbenannt und vom User zw werden sie im Ordner "Digital-Belege" verschoben und umbenannt.


Dazu zwei Tips:

Eindeutige Dateinamen kann man am einfachsten erzeugen, indem man die Prozess-ID (PID) mit in den Dateinamen aufnimmt. Sowohl in Bash Shellscripten als auch in Perl kannst Du dafür die Variable $$ verwenden. Damit kann man wirksam verhindern, dass sich zufällig gleichzeitig und damit gleichnamige Dateien überschreiben.
Der Ansatz mit dem hochzählen _01, 02, etc. würde zwar prinzipiell auch halbwegs funktionieren, aber da müsstest Du erst ermitteln welches die höchste Nummer ist. Da der Scriptserver Prozesse parallel abarbeitet, kann es dabei zu einer Race Condition kommen. Der Weg mit der PID ist m.E. einfacher und sicherer.

Den User Kontext stellt Helios in der Environment Variable SCRIPT_EVENTUSER zur Verfügung. Auf diese kannst Du auch z.B. in einem Shell- oder Perl-Script zugreifen. Somit ist die Sortierung nach Userkontext auch relativ einfach möglich.

viele Grüße
Bernd Flachsbart
als Antwort auf: [#554121] Top
 
GreatOm
Beiträge: 373
23. Nov 2016, 13:24
Beitrag #3 von 4
Beitrag ID: #554133
Bewertung:
(3807 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ScriptServer: wie eingehende Files eindeutig umbenennen?


Moin!

So etwas ist problemlos möglich. Man braucht nur jemanden, der ein passendes Skript schreibt.
Es gibt ja etliche Vorlagen im "Settings" Volume -> ScriptServer -> Samples sowie über den "HELIOS ScriptAssistant".

Gruß,

GreatOm
--
Five exclamation marks, the sure sign of an insane mind. -- (Terry Pratchett, Reaper Man)
als Antwort auf: [#554121] Top
 
Thomas Kaiser  M 
Beiträge: 1299
12. Dez 2016, 09:45
Beitrag #4 von 4
Beitrag ID: #554421
Bewertung:
(3568 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ScriptServer: wie eingehende Files eindeutig umbenennen?


Moin Yann,

das Ganze ist problemlos möglich (auch numerisches Inkrementieren ohne Race Condition -- der Trick ist, an der Stelle die Auswahl des Dateinamens an's Ende der Skriptverarbeitung zu setzen und dann mit dem lockfile-Kommando zu arbeiten).

Metadaten können auch einfach wieder ins PDF geschrieben werden (ich würde exiftool dafür empfehlen).

Problem ist nur, dass das relativ flott für einen spezifischen Workflow geschrieben ist, aber extrem aufwändig wird, wenn man es universell für alle möglichen Workflow-Varianten konfigurierbar macht.

Abgesehen davon ist sowas eigentlich ein klassischer Switch-Anwendungsfall. Um Dateien durch Workflows zu schieben, müsste man eigentlich nicht mehr mit Skripting arbeiten...
als Antwort auf: [#554121] Top
 
X