Workflows
Workflows und Workflow-Schritte
Ein Workflow setzt sich zusammen aus verschiedenen sogenannten "Schritten". Ein einzelner Schritt besitzt eine genau definierte Aufgabe. In docuteam feeder finden insbesondere die Schritte von docuteam actions Verwendung. Es können daneben aber auch eigene Schritte erstellt und ausgeführt werden.
Der Tab "Workflows" zeigt alle definierten Ingest-Workflows an, die auf ein konkretes SIP angewendet werden können.
Workflow ausführen
Gestartet wird ein Workflow mit einem Klick auf starten
. Abhängig von der Konfiguration des Workflows wird kein, eine oder mehrere Eingaben benötigt zur Ausführung. Falls der Workflow eine Eingabe mit dem Typ "Datei oder Ordner" benötigt, kann diese auf verschiedene Arten ausgewählt werden:
- Dropdown-Liste für SIP, die sich im Ordner befinden, der in den Workflow-Einstellungen als "Eingangsordner für Pakete" definiert ist.
- Dropdown-Liste für SIP, die als Ablieferung hochgeladen wurden.
- Manuelle Eingabe eines SIP-Namens (falls Feature
manual_input
aktiviert).
Die Dropdown-Liste für SIPs wird gemäss dem "Eingangsordner für Pakete" abgefüllt, der in den Workflow-Einstellungen definiert werden kann.
Workflow bearbeiten und neu erstellen
Sofern man die entsprechende Berechtigung besitzt, können mit dem Link bearbeiten
bestehende Workflows bearbeitet werden. Ein Workflow ist immer ein linearer Ablauf: Das SIP wird gewissermassen in eine Pipeline hineingeschickt, in welcher ein Schritt nach dem anderen abgearbeitet wird. Im Falle eines Fehlers stoppt die Ausführung und lässt etwaige noch folgende Schritte aus.
Hier werden Schritte definiert. Die hier in der linken Spalte ausgewählten Schritten sind unter docuteam actions dokumentiert. Die rechte Spalte enthält die Parameter, die dem ausgewählten Schritt bei dessen Aufruf mitgegeben werden.
feeder unterstützt Variablen, welche mit "$" umschlossen sind. Mit input.<< name >>
kann ein Parameter referenziert werden. Für Parameter des Typs "Datei oder Ordner" stehen weitere Varianten zur Verfügung, hier am Beispiel sip
.
Variable | Erklärung | Beispiel |
---|---|---|
:-- | :-- | :-- |
${ input.sip } | Pfad zum SIP | C:\docuteam\workbench\1_inbox\example.zip |
${ input.sip.base } | Name des SIP ohne Dateiendung | beispiel |
${ input.sip.extension } | Dateiendung des SIP | zip |
${ input.sip.name } | Name des SIP mit Dateiendung | beispiel.zip |
${ input.sip.path } | Pfad zum Ordner, in dem sich das SIP befindet | C:\docuteam\workbench\1_inbox |
${ input.sip.safe_name } | Name des SIP (Sonderzeichen normalisiert) | beispiel.zip |
Für Ablieferungen stehen zusätzlich noch diese Funktionen zur Verfügung:
Variable | Erklärung | Beispiel |
---|---|---|
:-- | :-- | :-- |
${ input.sip.id } | Identifikator der Ablieferung | 123 |
${ input.sip.original_name } | Name der Ablieferung | hello.zip |
${ input.sip }
wird ersetzt mit dem internen Pfad zur Deposition (e.g. C:\docuteam\apps\feeder\webapp\storage\Cm\Ld\CmLdaZVcjpncG57G7jjf7SjX
). ${ input.sip.base }
und ${ input.sipname }
enthalten die interne Repräsentation der Ablieferung (z.B. CmLdaZVcjpncG57G7jjf7SjX). ${ input.sip.ext }
ist in diesem Fall leer, weil die Deposition ohne Dateiendung abgespeichert wird.
Weiter existieren folgende Variabeln:
Variable | Erklärung | Beispiel |
---|---|---|
:-- | :-- | :-- |
${ meta.creator_email } | E-Mail-Adresse des Benutzers, welche die Ausführung erstellt hat | info@docuteam.ch |
${ meta.current_execution_creation_date } | Datum und Zeit der aktuellen Workflow-Ausführung | 2040-01-01T00:00:00.000Z |
${ meta.executed_by_workflow_execution_id } | Falls die Ausführung als Resultat eines Event-Handlers für eine andere Ausführung erstellt wurde, ist dies die ID der vorherigen Ausführung | 123 |
${ meta.last_execution_creation_date } | Datum und Zeit der letzten Ausführung des Workflows | 1970-01-01T00:00:00.000Z |
${ meta.last_modifier_email } | E-Mail-Adresse des Benutzers, welche die Ausführung zuletzt bearbeitet hat | info@docuteam.ch |
${ meta.organization_id } | ID der aktuellen feeder Organisation | 123 |
${ meta.workflow_execution_id } | ID der aktuellen Ausführung | 123 |
Neben der Bearbeitung eines bestehenden Workflows besteht auch die Möglichkeit, dass ein gänzlich neuer Workflow erstellt wird.
Das Feld "Schritt-Präfix" muss einen Konsolenbefehl zum Wechseln in das actions_home_dir
-Verzeichnis der Organisation enthalten, der vor jedem Schritt ausgeführt wird (z.B. cd "${ env.ACTIONS_HOME_999 }"
).
Das optionale Feld "Eingangsordner für Pakete" enthält einen Pfad zu einem Ordner der Workbench, in dem feeder beim Start eines Workflows nach SIPs sucht.
In beiden Felder können Windows- oder Linux-Umgebungsvariablen mit der folgenden Syntax eingeben werden: ${ env.ACTIONS_HOME_999 }
. Dieselbe Syntax wird auch in Schritt-Parametern und Schritt-Befehlen unterstützt.
Als nächstes können Parameter definiert werden, die als Variablen im Workflow angegeben werden. Parameter benötigen einen Namen, sowie ein Typ. Beim Erstellen einer Ausführung wird der tatsächliche Wert eingegeben und gegen den Parameter-Typen geprüft. Entspricht der übergebene Parameter nicht dem hier definierten Typ, wird der Workflow nicht ausgeführt. Folgende Werte stehen zur Auswahl:
- Datei oder Ordner: Pfad zu einer Datei oder einem Ordner, die im Eingangsordner des jeweiligen Workflows liegen. Alternativ kann eine Ablieferung angegeben werden.
- ID: Akzeptiert nur Zahlen
- OAI-PMH Identifikator: ID eines OAI-PMH Records (
oai:{server address}:{identifier}
) - PID: PID eines Objektes in docuteam box
- PUID: Pronom-Dateiformat ID (z.B. fmt/40 oder x-fmt/430)
- Kein Parameter: Übergabe eines Parameters nicht erlaubt, Feld "Manuelle Eingabe" wird ausgeblendet
Ein Workflow kann mit einem Zeitplan versehen werden, um diesen gemäss einer Frequenz automatisch zu starten.
Mit Ereignisregeln können Workflow-Ausführungen miteinander verknüpft werden, so dass beim erfolgreichen Abschluss und/oder beim Fehlschlagen eines Workflows automatisch eine nächster Workflow gestartet wird.
Schritt bearbeiten oder neu erstellen
Wie Workflows, so können mit der entsprechenden Berechtigung auch bestehende Schritte bearbeitet oder neue Schritte erstellt werden, etwa um weitere Migrationswerkzeuge einzubinden oder den Ingestprozess um zusätzliche Funktionalitäten zu erweitern.