Loop-Schritte enthalten Module vom Typ ``loop'' (kurz Loop-Modul), die die Steuerung einer Schleife innerhalb eines Subworkflows verrichten.
Loop-Module haben die Modulfunktion ``main'' (gleiche $control_args
wie bei normalen Modulen, keine Rückgaben), die normalerweise aufgerufen
wird, wenn der Loop-Schritt der aktuelle Workflow-Schritt ist. Status
des Loop-Schrittes und der Schleife kann mit Funktionen wie 'wf_step_status',
'wf_step_active', 'wf_steps_in_loop', etc. abgefragt werden.
Ein neuer Durchlauf der Schleife, d.h. das Zurücksetzen des 'erledigt'-Status
aller Mitglieder der Schleife des Loop-Schrittes auf 'offen', sollte
mittels Global-Action (z.B. über die Funktion 'wf_globalaction_form_element'
in einem Formular, siehe )
angestoßen werden, um inkonsistente Anzeigen über 'offene' und 'erledige'
Schritte auszuschließen. Andernfalls kann die Aktion auch direkt über
'wf_loop_iterate($loopstep)' angestoßen werden. Weiter kann ein
Loop-Modul z.B. Links zu den Mitglieder-Schritten seiner Schleife
oder den Status der Mitglieder-Schritte anzeigen. Auch Loop-Schritte
sollten darauf achten, ob der Parameter $control_args[subworkflow_mode_old]
gleich 'true' ist oder nicht. Falls dieser gleich 'true' ist, wird
ein früherer Durchlauf des Subworkflow des Loop-Schrittes bearbeitet
und der Loop-Schritt sollte keine Änderung, d.h. keinen neuen Schleifen-Durchlauf,
erlauben.
Weiterhin sollte ein Loop-Modul noch eine Modulfunktion ``main_strict_deps''
haben, die die gleichen $control_args wie die Modulfunktion ``main''
erwartet. Diese wird statt ``main'' für alle Loop-Module eines
Schrittes aufgerufen, falls der Schritt aufgrund strikter Abhängigkeiten
(siehe ) als nicht bearbeitbar
erkannt wird. Hierin kann das Loop-Modul den Zustand der Schleife
und evtl. Links zu Mitglieder-Schritten der Schleife auch unter diesen
verschärften Bedingungen nach eigenem Belieben anbieten.
Auch Loop-Schritte können eigene, temporäre Daten über die 'wf_temp_data...'-Funktionen
verwalten. Sie können auch weitere Modulfunktionen zum Aufbau ganzer
HTML-Seiten durch diese einzige Modulfunktion ($param[wf_step_position]=''Modulpage'',
siehe ) enthalten.