next up previous contents index
Next: Einzel-Aufruf eines Moduls eines Up: Funktionsweise von 'workflow.php' Previous: Funktionsweise von 'workflow.php'

Standard-Aufruf und Anzeige eines Workflow-Schrittes

 Der Standardfall ist $param[wf_step_position]=``Main'', der auch bei nicht gesetztem $param[wf_step_position] gewählt wird. Hier wird die HTML-Anzeige bzw. der Aufruf aller Module des Schrittes eingebettet in einen vorgegebenen Rahmen. In der Ausgabe erscheint zunächst der Name des Workflows, evtl. Warnungen über überschrittene Zeitfristen.

Darauf werden mit der Funktion 'wf_handle_parent_steps' aus 'lib-workflow-subworkflow.inc.php' der Reihe nach die indirekten Parent-Schritte - beginnend beim top-Schritt - des durch $param[wf_step] gegebenen Schrittes aufgerufen, um eine kurze Anzeige (bzw. evtl. Steuerung) des Zustands des unter ihnen liegenden Subworkflows zu ermöglichen. Es werden hier pro Parent-Schritt nur Module vom Typ ``parent'' (und nicht Module vom Typ ``normal'') verwendet, und zwar wird jeweils die Modul-Funktion ``head'' aufgerufen. Das Array $control_args für diese 'head'-Aufrufe der Parent-Module enthält dabei folgende Parameter:

Die Rückgabe jeder 'head'-Funktion eines Parent-Moduls sollte ein Array sein, das folgende Parameter enthält: Erst nach den Parent-Schritten werden der Reihe nach alle Module des gegebenen Schrittes $param[wf_step] mit Modulfunktion ``main'' aufgerufen. Bei jedem dieser Aufrufe hat das Aufruf-Parameter-Array $control_args folgenden Inhalt: Der Aufruf der Module des Schrittes erfolgt aber nur, wenn bestimmte Bedingungen erfüllt sind. Damit kann man eine zu frühe Bearbeitung dieser Schritte verhindern:

Hierbei spielt eine Rolle, ob die Abhängigkeiten für einen Schritt selbst strikt sind oder nicht. Die Abhängigkeiten eines Schrittes sind strikt, falls das Attribut 'abhaengigkeiten_sind_strikt' aus der Relation 'workflow_schritt' für diesen Schritt 'true' ist oder falls der Parameter 'abhaengigkeiten_sind_strikt' in der Relation 'workflow_param' vorhanden und gleich 'true' ist. In diesem Fall werden die Module des Schrittes nur aufgerufen, falls der Subworkflow, zu dem dieser Schritt gehört, aktiv ist und alle normalen Abhängigkeiten des Schrittes erfüllt sind.

Weiterhin werden die Schritt-Module dieses Schrittes auch nur dann aufgerufen, wenn bei jedem der Parent-Schritte bereits alle deratigen strikten Abhängigkeiten erfüllt sind. Ist nämlich bei einem der Parents eine solche strikte Abhängigkeit (Abhängigkeiten für den Parent selbst sind strikt und zugleich der Subworkflow in dem dieser sich befindet, nicht aktiv oder existieren unerfüllte, normale Abhängigkeiten für den Parent) nicht erfüllt, so wird bereits dessen 'head'-Funktion und auch die 'head'-Funktion aller darunterliegender Parents nicht mehr ausgeführt.

Jeder Parent-Schritt, d.h. jedes Parent-Modul eines Parents, hat darüberhinaus die Möglichkeit, das Aufrufen von Schritt-Modulen des darunterliegenden Subworkflow zu verbieten, falls der Subworkflow nicht aktiv ist. Dazu kann in der Rückgabe der 'head'-Funktion des Parent-Moduls der Parameter 'strict_subworkflow' auf 'true' gesetzt werden.

Damit werden die Schritt-Module des Schrittes selbst nur dann aufgerufen, wenn eine der folgenden Bedingungen erfüllt ist:

Während seiner Ausführung kann ein Modul praktisch beliebige Dinge tun, vor allem sollte es aber ggf. Datenbank-Operationen durchführen und eine passende Ausgabe auf Stdout erzeugen.

Um innere Abhähngigkeiten (im Schritt selbst) zu realisieren, dient die globale Variable $param[intern_conditions_not_satisfied]. Jedes Modul des Schrittes hat die Möglichkeit den Wert dieser Variable auf 'true' zu setzen, um dem Workflow-System so mitzuteilen, dass in diesem Schritt noch unerfüllte, innere Abhängigkeiten vorhanden sind, und er somit noch nicht als 'erledigt' gekennzeichnet werden kann.


next up previous contents index
Next: Einzel-Aufruf eines Moduls eines Up: Funktionsweise von 'workflow.php' Previous: Funktionsweise von 'workflow.php'
Copyright Munich Network Management Team