Ü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,_Failedund_Processingbleiben 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 herunterwrite_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?
Die verarbeitete PDF wird automatisch zum Vorgang hinzugefügt
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
SubdirectoriesExclusionausschließen
Ausschluss-Regeln definieren
Sie können Verzeichnisse auf drei Arten angeben:
Absolute Pfade:
C:\\Users\\User\\Import\\ExclusionFolderRelative Pfade:
a/b/c(relativ zum Hotfolder-Verzeichnis)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 |
| Schließt alle Ordner aus, die auf „B" enden (z.B. „B", „AB") |
| Schließt direkte Unterverzeichnisse von Ordner „AC" aus |
| 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 |
| Schließt jeden Ordner namens „B" aus, unabhängig von seiner Tiefe im Verzeichnisbaum |
Platzhalter: ?
Entspricht genau einem (beliebigen) Zeichen.
Beispiel:
Ausdruck | Beschreibung |
| 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" ausAC/*→ 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 |
| Das |
| Das |
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
Neuer Vorgang über Import-Service:
$importservice = trueund$new = trueAktualisierter Vorgang über Import-Service:
$importservice = trueund$update = trueManuell 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.
