Next: Datenbankschema
Up: Modulprogrammierung
Previous: Modulprogrammierung
Für den Aufbau der HTML-Seite eines Workflow-Schritts ist das PHP-Skript
'workflow.php' zuständig. Es erzeugt den Rahmen der HTML-Seite, der
u. a. den Namen und den Status des Workflow-Schritts wiedergibt. Die
Funktionalität des Workflow-Schritts ist in Modulen ausgelagert, die
von 'workflow.php' innerhalb des Rahmens eingebunden werden. Dabei
kann ein Workflow-Schritt ein oder mehrere Module benutzen. Die Namen
der Module müssen bei der Workflow-Definition angegeben werden und
finden sich in der Datenbank in der Relation 'workflow_schritt_modul'
wieder. Jedem Modul entspricht ein PHP-Skript mit dem Namen 'module-<Modulname>.inc.php',
das seinerseits eine Funktion 'mdoule_<Modulname>_main($control_args,
$module_args)' enthalten muss. Die Arbeitsweise von 'workflow.php'
und dessen Zusammenspiel mit den Modulen wurde bereits in den Abschnitten
3.4 und 3.5 ausführlich beschrieben.
Aus den Anforderungen an das Workflow-System (siehe Abschnitt 1.1)
und der Analyse einiger Workflows konnten drei Arten von Funktionalitäten
bestimmt werden, die von den Modul-Skripten erbracht werden müssen:
- 1.
- Die häufigste Aufgabe ist das Darstellen und Manipulieren von DB-Inhalten.
Die Library 'lib-dbtable.inc.php' stellt Funktionen bereit, mit deren
Hilfe solche Aufgaben in den Module realisiert werden können. Die
Library wird in Abschnitt 4.3 näher beschrieben.
- 2.
- Um weniger privilegierten Personen den Zugriff auf die Datenbank zu
ermöglichen, müssen temporäre Tabellen und Views eingerichtet und
freigeschaltet werden. Hierbei bietet die Bibliothek 'lib-extmodul-control.inc.php'
(siehe Abschnitt 4.4) Unterstützung.
- 3.
- Für bestimmte Tätigkeiten existieren bereits andere Skripte oder Programme,
die aus der Workflow-Anwendung heraus aufgerufen werden sollen. Für
solche Aufgaben kann in den Modulen auf die Library 'lib-file.inc.php'
zurückgegriffen werden. Die Verwendung wird in Abschnitt 4.5 erklärt.
Ein Modul kann dabei mehrere, auch verschiedene Funktionalitäten enthalten.
Die einzelnen Funktionsblöcke innerhalb eines Moduls werden im Folgenden
Submodule genannt.
Wie generisch die einzelnen Module gehalten werden, bleibt dem Modulprogrammierer
überlassen. In manchen Fällen kann es sinnvoll sein, ein sehr spezialisiertes
Modul anzulegen. Dann sind alle für das Modul notwendigen Parameter
fest im Modul-Skript eingebaut. Im anderen Extremfall kommen alle
Parameter von außen. Für das Übergeben der Parameter an das Modul
sind zwei Möglichkeiten vorgesehen:
- 1.
- Es können bereits bei der Workflow-Definition Parameter angegeben
werden. Nach dem Parsen des XML-Files, das die Definition enthält,
finden sich die Parameter in der Relation 'workflow_schritt_modul_param'
der Datenbank wieder. Dort können sie nachträglich geändert und weitere
eingefügt werden. Diese Parameter werden dem Modul-Skript beim Aufruf
der Main-Funktion des Moduls im 2. Argument ($modul_param) übergeben.
Hierbei handelt es sich um ein Array, das mit den Namen der Parameter
indiziert ist.
- 2.
- Es können extra PHP-Skripte angelegt werden, die als Container für
die Parameter dienen. Für diese Skripte gibt es folgende Namenskonvention:
moduleconfig-<Name>[-<WorkflowNummer>].inc.php (<WorkflowNummer>
ist optional). Im Modul-Skript kann der Name des Config-File mit der
Funktion 'moduleconfig_filename($<Name>)' bestimmt werden. Die Funktion
bietet den Vorteil, dass im Modul-Skript nur der Bestandteil <Name>
des Config-File bekannt sein muss. Zunächst überprüft 'moduleconfig_filename',
ob für die aktuelle Workflow-Nummer ein File mit dem Namen 'moduleconfig-<Name>-<WorkflowNummer>.inc.php'
vorhanden ist. Falls nicht wird nach einem File mit dem Namen 'moduleconfig-<Name>.inc.php
gesucht. Existiert auch diese Datei nicht, gibt die Funktion 'false'
zurück. Nachdem der Name des gültigen Config-Files bestimmt ist, kann
die Datei mit Hilfe der include-Funktion eingebunden werden.
- []if($include_name = moduleconfig_filename("KlausurAnmeldung"))
include($include_name);
An dieser Stelle sei noch auf die Datei 'workflow-defines.inc.php'
hingewiesen. Sie enthält einige für den Workflow zentrale Datei- bzw.
Verzeichnisnamen, u. a. den Ort, an dem die Config-Files abgelegt
sind.
- IMAGE_PREFIX: Image-Verzeichnis, in dem unter anderem nach den Gifs
für die Buttons der DBTable-Tabellen gesucht wird.
- INCLUDE_PREFIX: Library- und Modul-Verzeichnis.
- STYLESHEET_LINK: CSS-Datei, die für die Workflow-Anwendung gelten
soll.
- MODULECONFIG_INCLUDEPREFIX: Config-File-Verzeichnis.
Next: Datenbankschema
Up: Modulprogrammierung
Previous: Modulprogrammierung
Copyright Munich Network Management Team