Powered By GitBook
Ändern des Workflows auf Grundlage von Vorgangseigenschaften
Dies ist die technische Dokumentation für das Goobi-Plugin für das automatische Ändern von Workflows auf Grundlage von Vorgangseigenschaften.

Einführung

Die vorliegende Dokumentation beschreibt die Installation, Konfiguration und den Einsatz eines Plugins zum automatischen Ändern von Workflows zur Laufzeit. Das Plugin kann (je nach Konfiguration) Schritte öffnen, schließen oder deaktivieren. Benutzergruppen können zugwiesen werden und auch Produktionsvorlagen vollständig getauscht werden. Die Entscheidung, was jeweils genau geschehen soll, wird auf Grundlage von Vorgangseigenschaften getroffen.
Details
Identifier
intranda_step_changeWorkflow
Lizenz
GPL 2.0 oder neuer
Kompatibilität
Goobi workflow 2021.03
Dokumentationsdatum
22.09.2021

Voraussetzung

Voraussetzung für die Verwendung des Plugins ist der Einsatz von Goobi workflow in Version 3.0.0 oder höher, die korrekte Installation und Konfiguration des Plugins sowie die korrekte Einbindung des Plugins in die gewünschten Arbeitsschritte des Workflows.

Installation und Konfiguration

Zur Nutzung des Plugins muss es an folgenden Ort kopiert werden:
1
/opt/digiverso/goobi/plugins/step/plugin_intranda_step_changeWorkflow.jar
Copied!
Die Konfiguration des Plugins wird unter folgendem Pfad erwartet:
1
/opt/digiverso/goobi/config/plugin_intranda_step_changeWorkflow.xml
Copied!
Es folgt eine kommentierte Beispielkonfiguration:
1
<config_plugin>
2
<!--
3
order of configuration is:
4
1.) project name and step name matches
5
2.) step name matches and project is *
6
3.) project name matches and step name is *
7
4.) project name and step name are *
8
-->
9
10
<config>
11
<!-- which projects to use for (can be more then one, otherwise use *) -->
12
<project>Register</project>
13
<step>Check</step>
14
15
<!-- multiple changes can be done within one configuration rule; simply add another 'change' element with other properties here -->
16
<change>
17
<!-- name of the property or metadata to check: please take care to use the syntax of the Variable replacer here -->
18
<propertyName>{process.TemplateID}</propertyName>
19
<!-- expected value (can be blank too) -->
20
<propertyValue>183</propertyValue>
21
<!-- condition for value comparing, can be 'is' or 'not' or 'missing' or 'available' -->
22
<propertyCondition>is</propertyCondition>
23
<!-- list of steps to open, if property value matches -->
24
<steps type="open">
25
<title>Box preparation</title>
26
</steps>
27
<!-- list of steps to deactivate -->
28
<steps type="deactivate">
29
<title>Image QA</title>
30
</steps>
31
<!-- list of steps to close -->
32
<steps type="close">
33
<title>Automatic LayoutWizzard Cropping</title>
34
<title>LayoutWizzard: Manual confirmation</title>
35
</steps>
36
<!-- list of steps to lock -->
37
<steps type="lock">
38
<title>Automatic export to Islandora</title>
39
</steps>
40
41
<usergroups step="Image QA">
42
<usergroup>Administration</usergroup>
43
<usergroup>AutomaticTasks</usergroup>
44
</usergroups>
45
</change>
46
</config>
47
48
<config>
49
<!-- which projects to use for (can be more then one, otherwise use *) -->
50
<project>*</project>
51
<step>*</step>
52
53
<!-- multiple changes can be done within one configuration rule; simply add another 'change' element with other properties here -->
54
<change>
55
<!-- name of the property or metadata to check: please take care to use the syntax of the Variable replacer here -->
56
<propertyName>{process.upload to digitool}</propertyName>
57
<!-- expected value (can be blank too) -->
58
<propertyValue>No</propertyValue>
59
<!-- condition for value comparing, can be 'is' or 'not' or 'missing' or 'available' -->
60
<propertyCondition>is</propertyCondition>
61
<!-- list of steps to open, if property value matches -->
62
<steps type="open">
63
<title>Create derivates</title>
64
<title>Jpeg 2000 generation and validation</title>
65
</steps>
66
<!-- list of steps to deactivate -->
67
<steps type="deactivate">
68
<title>Rename files</title>
69
</steps>
70
<!-- list of steps to close -->
71
<steps type="close">
72
<title>Upload raw tiffs to uploaddirectory Socrates</title>
73
<title>Automatic pagination</title>
74
</steps>
75
<!-- list of steps to lock -->
76
<steps type="lock">
77
<title>Create METS file</title>
78
<title>Ingest into DigiTool</title>
79
</steps>
80
</change>
81
</config>
82
83
<config>
84
<!-- which projects to use for (can be more then one, otherwise use *) -->
85
<project>Archive_Project</project>
86
<step>Check process template change</step>
87
88
<!-- multiple changes can be done within one configuration rule; simply add another 'change' element with other properties here -->
89
<change>
90
<!-- name of the property or metadata to check: please take care to use the syntax of the Variable replacer here -->
91
<propertyName>{process.TemplateID}</propertyName>
92
<!-- expected value (can be blank too) -->
93
<propertyValue>309919</propertyValue>
94
<!-- condition for value comparing, can be 'is' or 'not' or 'missing' or 'available' -->
95
<propertyCondition>is</propertyCondition>
96
<!-- Name of the new process template -->
97
<workflow>Manuscript workflow</workflow>
98
</change>
99
</config>
100
</config_plugin>
Copied!
Jeder <config>-Block ist hier für ein bestimmtes Projekt und einen bestimmten Schritt verantwortlich, wobei auch die Wildcard * und Mehrfachnennungen von Prozessen bzw. Schritten möglich sind. Wenn im Workflow also ein Schritt mit diesem Plugin ausgeführt wird, wird nach einem <config>-Block gesucht, der zum gerade geöffneten Schritt passt. Wenn zum Beispiel im Projekt "PDF Digitalisierung" der Schritt mit Titel "Workflow ändern nach PDF Extraktion" mit diesem Plugin konfiguriert und ausgeführt wird, sucht das Plugin einen <config>-Block der folgendermaßen aussieht:
1
<config>
2
<project>PDF Digitalisierung</project>
3
<step>Workflow ändern nach PDF Extraktion</step>
4
[...]
5
</config>
Copied!
In jedem <change>-Element wird dann konfiguriert, welche Prozesseigenschaft überprüft wird (<propertyName>) und welcher Wert erwartet wird (<propertyValue>). Bitte beachten Sie, dass die Angabe zur Definition, welche Eigenschaft für die Prüfung eines Wertes verwendet werden soll, mit der Syntax für den sog. Variablen Replacer angegeben werden muss. Entsprechend muss bei der Definition des Feldes, das geprüft werden soll die Angabe wir wie in in folgenden Beispielen erfolgen:
1
<propertyName>{process.ABC}</propertyName>
2
<propertyName>{{meta.ABC}}</propertyName>
3
<propertyName>{meta.topstruct.ABC}</propertyName>
4
<propertyName>{meta.firstchild.ABC}</propertyName>
5
<propertyName>{db_meta.ABC}</propertyName>
Copied!
Weitere Erläuterungen über die Verwendung von Variablen finden sich hier:
8. Variablensystem
Goobi workflow (Deutsch)
https://docs.goobi.io/goobi-workflow-de/manager/8
Nach der Definition, wie die Eigenschaften auszuwerten sind, wird die auszuführende Aktion festgelegt. Hier bestehen folgende Möglichkeiten:

Ändern des Status von Arbeitsschritten des Workflows

Abhängig von vorhandenen Eigenschaften kann der Status festgelegter Arbeitsschritte innerhalb des Workflows automatisiert geändert werden. Hierbei können Arbeitsschritte geöffnet type="open", deaktiviert type="deactivate", geschlossen type="close" oder gesperrt type="lock" werden.
1
<steps type="open">
2
<title>Create derivates</title>
3
<title>Jpeg 2000 generation and validation</title>
4
</steps>
5
<steps type="deactivate">
6
<title>Rename files</title>
7
</steps>
8
<steps type="close">
9
<title>Upload raw tiffs to uploaddirectory Socrates</title>
10
<title>Automatic pagination</title>
11
</steps>
12
<steps type="lock">
13
<title>Create METS file</title>
14
<title>Ingest into DigiTool</title>
15
</steps>
Copied!
Parameter
Erläuterung
type
Legen Sie fest, welchen Status die Arbeitsschritte erhalten sollen.
title
Definieren Sie hier den Namen der Arbeitsschritte, die auf den gewünschten Status gesetzt werden sollen.

Ändern der Zuständigkeit von Benutzergruppen für Arbeitsschritte

Abhängig von vorhandenen Eigenschaften lassen sich die zuständigen Benutzergruppen für mehrere Arbeitsschritte festlegen. Die Konfiguration erfolgt dabei wie wie hier aufgezeigt:
1
<usergroups step="Image QA">
2
<usergroup>Administration</usergroup>
3
<usergroup>AutomaticTasks</usergroup>
4
</usergroups>
Copied!
Parameter
Erläuterung
step
Legen Sie fest, für welchen Arbeitsschritt Sie die Benutzergruppen eintragen möchten.
usergroup
Definieren Sie hier den Namen der Benutztergruppe, die für den konfigurierten Schritt als zuständig eingetragen werden soll.

Ändern der Produktionsvorlage auf der der Vorgang basiert

Mit einer Konfiguration wie im folgenden Beispiel kann während des laufenden Workflows die Produktionsvorlage des Vorgangs getauscht werden. Abhängig von vorhandenen Eigenschaften läßt sich somit ein Workflow während der Ausführung gegen einen anderen Workflow ersetzen. Arbeitsschritte, die in dem neuen Workflow ebenfalls vorhanden sind, werden dabei automatisch auf den korrekten Status gesetzt.
1
<workflow>Manuscript workflow</workflow>
Copied!
Parameter
Erläuterung
workflow
Definieren Sie hier den Namen der Produktionsvorlage, die für den Vorgang verwendet werden soll.

Einstellungen in Goobi

Nachdem das Plugin installiert und konfiguriert wurde, kann es in der Nutzeroberfläche in einem Workflowschritt konfiguriert werden. Hierbei sollte darauf geachtet werden, dass der Schritt so heißt, wie in der Konfigurationsdatei. Außerdem sollte ein Haken bei Automatische Aufgabe gesetzt sein.
Konfiguration des Workflowschritts

Nutzung

Da das Plugin vollautomatisch laufen sollte, ist für die Nutzung nichts weiter zu beachten.
Last modified 1mo ago