Zum Inhalt

Workflow Befehle

Workflows werden über eine XML-Struktur definiert.

Es stehen verschiedene Befehle - die im Anschluß beschrieben werden - zur Arbeit mit Containern und Workflows bereit. Folgende Optionen können bei mehreren dieser Befehle verwendet werden:

Mit --init werden Verzeichnisse, die nicht existieren, angelegt. Wird das Argument nicht angegeben und ein Verzeichnis existiert nicht, wird eine Exception geworfen.

Das --debug-Argument sorgt für die Ausgabe von Zusatzinformationen.

Container erstellen

Container können über den Befehl alvine-platform workflow:factory erstellt werden.

In dem folgenden Beispiel werden drei Container --count=3 für den Workflow publish-item.xml über die Factory-Klasse erstellt. Allen erstellten Containern werden die Argumente mykey1=1 und mykey2=Test als Eigenschaft zugeweisen.

alvine-platform workflow:factory \
       --workflow publish-item.xml \
       --class \\Alvine\\Application\\Workflow\\Factory \
       --argument mykey1=1 --argument "mykey2=Test" \
       --count=3

Hinweis

Der Backslash ist bei vielen Shells ein Sonderzeichen zum Escapen von Sonderzeichen. Aus diesem Grund müssen PHP-Klassennamen in diesen Shells mit 2 Backslashes geschrieben werden.

Die Container werden in diesem Beispiel nach /var/alvine-platform/workflow/queue/item-boarding serialisiert.

Information über Container

Informationen zu einem oder mehreren Container kann man mit dem Befehl alvine-platform workflow:info auslesen. Als Parameter --path muss entweder eine Container-Datei oder ein Verzeichnis mit Containern angegeben werden.

Wird ein Verzeichnis angegeben, so durchsucht der Befehl rekursive alle Unterverzeichnisse.

alvine-platform workflow:info \
     --path /var/alvine-platform/workflow/queue/item-boarding

Alternativ kann über --container-id eine ID angegeben werden. In diesem Fall muss zusätzlich der verwendete Workflow --workflow angegeben werden.

alvine-platform workflow:info \
     --workflow publish-item.xml \
     --container-id 1425

Statusänderung von Containern

Container können auch einzeln über die ID von einem Status zum nächsten überführt werden. Dazu gibt es den Befehl alvine-platform workflow:transfer. Der Befehl erwartet als Parameter den Workflow --workflow und mindestens eine ID --container-id eines Containers. Der Container wird anhand der ID gesucht und mit der angegebenen Transition --transition in den neuen Status überführt.

alvine-platform workflow:transfer \
       --workflow publish-item.xml \
       --container-id 1425 \
       --transition transfer2 \
       --reset-error

Mit der Option --reset-error wird versucht Container, die sich im Fehlerzustand befinden, zu reaktivieren und zu transferieren. Bei korrupten Datenstrukturen im Container schlägt das immer fehl.

Statusänderung aller Container eines Status

Der Übergang aller Containers eines Status --from mit der angegebenen Transition --transition in den nächsten Status erfolgt mittels dem Befehl alvine-platform workflow:run. Als Argument muss zusätzlich der gewünschte Workflow --workflow angegeben werden.

er Ausgangsstatus --from angegeben werden.

alvine-platform workflow:run \
       --workflow publish-item.xml \
       --transition transfer2 \
       --from  created