[GastForen Betriebsysteme und Dienste HELIOS ScriptServer: wie eingehende Files eindeutig umbenennen?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

ScriptServer: wie eingehende Files eindeutig umbenennen?

Yann Borg
Beiträge gesamt: 337

23. Nov 2016, 00:20
Beitrag # 1 von 4
Bewertung:
(12502 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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
X

ScriptServer: wie eingehende Files eindeutig umbenennen?

Bernd Flachsbart
Beiträge gesamt: 48

23. Nov 2016, 09:37
Beitrag # 2 von 4
Beitrag ID: #554125
Bewertung:
(12452 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

ScriptServer: wie eingehende Files eindeutig umbenennen?

GreatOm
Beiträge gesamt: 378

23. Nov 2016, 13:24
Beitrag # 3 von 4
Beitrag ID: #554133
Bewertung:
(12412 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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


als Antwort auf: [#554121]

ScriptServer: wie eingehende Files eindeutig umbenennen?

Thomas Kaiser
  
Beiträge gesamt: 1299

12. Dez 2016, 09:45
Beitrag # 4 von 4
Beitrag ID: #554421
Bewertung:
(12173 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]
X