Zum Hauptinhalt springen

Alternative Hotfolder.ini

Vor über 2 Monaten aktualisiert

Übersicht

Sie können beim Aufruf der pa_hotfolder.exe über den Parameter --ini eine alternative Hotfolder-Konfigurationsdatei angeben.

Vorteil: Sie können Hotfolder auf mehrere INI-Dateien aufteilen und zu verschiedenen Zeiten nur bestimmte Hotfolder verarbeiten.


Verwendung mit einfachem Dateinamen

Wenn Sie nur einen einfachen Dateinamen als Parameter verwenden, sucht das System die INI-Datei im config-Verzeichnis der Installation (dort, wo auch die hotfolder.ini liegt).

Beispiel:

# Verwendet die Datei config\h2.ini pa_hotfolder.exe --ini h2.ini


Verwendung mit Pfadangabe

Wenn Ihr Parameter mindestens einen Verzeichnisseparator enthält (\\ oder /), wird die Datei relativ zum aktuellen Verzeichnis verwendet.

Beispiele:

# Verwendet die Datei h3.ini im aktuellen Verzeichnis pa_hotfolder.exe --ini .\h3.ini # Verwendet die Datei im absoluten Pfad D:\h4.ini pa_hotfolder.exe --ini D:\h4.ini


Leere Verzeichnisse automatisch entfernen

Option: DeleteEmptyDirectories

Mit der Hotfolder-Option DeleteEmptyDirectories können Sie nach Abschluss der Hotfolder-Verarbeitung automatisch alle leeren Unterverzeichnisse entfernen lassen.

Funktionsweise:

  • Das System entfernt rekursiv alle leeren Unterverzeichnisse

  • Ausnahme: Die Ordner _Completed, _Failed und _Processing bleiben erhalten

Standard-Einstellung: false (deaktiviert)

Konfiguration:

DeleteEmptyDirectories = true


Methode write_viewable()

Übersicht

Analog zur Methode write_attachment steht Ihnen nun in Export- und Import-Services sowie im HTTP-Client die Methode write_viewable() zur Verfügung.

Unterschied zu write_attachment

  • write_attachment: Lädt die Original-Datei herunter

  • write_viewable: Lädt die Vorschau-PDF-Datei herunter


Beispiel-Implementierung

class ImportService(importservice.Base): def process(self, file, result): # Datei-Typ z.B. TIFF, DOCX result.add_file(file) def post_process(self, record): record = self.client.jget("records/" + record["id"]) # Vorschau-Datei herunterladen in ein lokales Verzeichnis self.write_viewable(record["attachments"][0], r"D:\Documents")

Was passiert in diesem Beispiel?

  1. Die verarbeitete PDF wird automatisch zum Vorgang hinzugefügt

  2. Anschließend wird sie als Vorschau-PDF in ein lokales Verzeichnis heruntergeladen

Wichtig: Sollte keine Vorschau existieren, ist der Rückgabewert der Methode None und es wird kein Download gestartet.


Unterordner in der Hotfolder-Verarbeitung berücksichtigen

Option: Subdirectories

Sie können die Hotfolder-Verarbeitung so konfigurieren, dass auch Unterordner durchsucht werden.

Konfiguration:

Subdirectories = true SubdirectoriesExclusion = Test/** | C:\Users\User\Import\ExclusionFolder | a/b/c

Funktionsweise

Wenn Sie Subdirectories = true setzen:

  • Das System iteriert durch alle Unterordner

  • Sie können bestimmte Verzeichnisse über SubdirectoriesExclusion ausschließen


Ausschluss-Regeln definieren

Sie können Verzeichnisse auf drei Arten angeben:

  1. Absolute Pfade: C:\\Users\\User\\Import\\ExclusionFolder

  2. Relative Pfade: a/b/c (relativ zum Hotfolder-Verzeichnis)

  3. Wildcard-Ausdrücke: Mit Platzhalterzeichen

Hinweis: Pfade oder Muster außerhalb des Hotfolder-Verzeichnisses werden automatisch aussortiert.


Platzhalter-Zeichen

Platzhalter: *

Entspricht einer beliebigen Anzahl von Zeichen (einschließlich keiner Zeichen).

Beispiele:

Ausdruck

Beschreibung

*B

Schließt alle Ordner aus, die auf „B" enden (z.B. „B", „AB")

AC/*

Schließt direkte Unterverzeichnisse von Ordner „AC" aus

*/AC

Schließt das Unterverzeichnis „AC" aus, das unmittelbar unter dem Hotfolder-Verzeichnis liegt


Platzhalter: **

Ein rekursiver Platzhalter. Deckt eine unbegrenzte Anzahl an Elementen/Verzeichnissen ab.

Beispiel:

Ausdruck

Beschreibung

**/B

Schließt jeden Ordner namens „B" aus, unabhängig von seiner Tiefe im Verzeichnisbaum


Platzhalter: ?

Entspricht genau einem (beliebigen) Zeichen.

Beispiel:

Ausdruck

Beschreibung

?B

Schließt Ordner aus, deren Name mit einem beliebigen Zeichen beginnt, gefolgt von „B" (z.B. „AB")


Beispiel: Verzeichnis-Struktur

A/ ├── file1.tiff ├── file2.txt ├── test.tiff ├── AB/ │ └── file3.txt └── AC/ └── test123.txt

Anwendung der Platzhalter:

  • *B → schließt „AB" aus

  • AC/* → schließt direkte Unterverzeichnisse von „AC" aus

  • **/AB → schließt „AB" aus, egal wo es sich befindet


Verarbeitete Dateien im _Completed-Ordner

Verarbeitete Dateien aus Unterverzeichnissen werden eins-zu-eins im _Completed-Ordner hinterlegt.

Beispiel:

Vor der Verarbeitung:

./Import/OrdnerA/OrdnerAB/file3.txt

Nach der Verarbeitung:

./Import/_Completed/test_20240101/OrdnerA/OrdnerAB/file3.txt

Die Ordnerstruktur bleibt erhalten.


Ausnahmen im Import-Service hinzufügen

Sie können über die Liste self.subdirectory_exclusions weitere Ausnahmen im Import-Service hinzufügen.

Empfehlung: Verwenden Sie die pre_process-Methode, da die Verarbeitung hier noch nicht stattgefunden hat.

Beispiel:

class ImportService(importservice.Base): def pre_process(self): # Unterordner als Ausnahmen, die in der Hotfolder-Verarbeitung übersprungen werden self.subdirectory_exclusions.append("foo/*") absolute_path = os.path.join(self.hotfolder.directory, "a/b/a") self.subdirectory_exclusions.append(absolute_path)


on_smartindexing-Event in run_smartindexing

Funktionsweise

Wenn Sie im Design-Formular eines Archivs ein on_smartindexing-Event konfiguriert haben, wird dieses bei der Hotfolder-Ausführung automatisch aufgerufen.

Voraussetzung: Die Option Smartindexing = true muss in der Hotfolder-Konfiguration gesetzt sein.

Methode: self.run_smartindexing

Mit der Methode self.run_smartindexing aus dem Import-Service erhalten Sie den Inhalt mit den aktualisierten Werten aus dem on_smartindexing-Event.

Was passiert:

  • Das Event wird bei der Vorgangs-Erstellung mitverarbeitet

  • Die aktualisierten Werte stehen Ihnen zur Verfügung


Variable $importservice im on_save-Event

Übersicht

Im on_save-Event steht Ihnen eine zusätzliche Variable zur Verfügung: $importservice

Werte der Variable

Wert

Bedeutung

true

Das on_save-Event wird für einen Vorgang aus dem Import-Service heraus ausgelöst

false

Das on_save-Event wird nicht aus dem Import-Service ausgelöst

Wichtig: Solange der Vorgang innerhalb der process-Methode erstellt oder aktualisiert wurde, gilt $importservice = true.


Anwendungsbeispiel

Sie können die Variable nutzen, um zwischen verschiedenen Szenarien zu unterscheiden:

if $importservice and $new then _imported = "Neuer Vorgang über den Import-Service" elseif $importservice and $update then _imported = "Aktualisierter Vorgang über den Import-Service" end

Mögliche Szenarien

  1. Neuer Vorgang über Import-Service: $importservice = true und $new = true

  2. Aktualisierter Vorgang über Import-Service: $importservice = true und $update = true

  3. Manuell erstellter/aktualisierter Vorgang: $importservice = false


Zusammenfassung

Sie haben nun gelernt:

✅ Wie Sie alternative INI-Dateien für verschiedene Hotfolder-Konfigurationen verwenden
✅ Wie Sie leere Verzeichnisse automatisch entfernen lassen
✅ Wie Sie die Methode write_viewable() zum Herunterladen von Vorschau-Dateien nutzen
✅ Wie Sie Unterordner in die Hotfolder-Verarbeitung einbeziehen
✅ Wie Sie Platzhalter verwenden, um bestimmte Verzeichnisse auszuschließen
✅ Wie Sie Ausnahmen im Import-Service dynamisch hinzufügen
✅ Wie Sie das on_smartindexing-Event in der Hotfolder-Verarbeitung nutzen
✅ Wie Sie die Variable $importservice im on_save-Event verwenden

Bei Fragen wenden Sie sich bitte an Ihren Administrator.

Hat dies deine Frage beantwortet?