next up previous contents index
Next: Die Einträge 'insert' und Up: Submodule für die Steuerung Previous: Zusammensetzung des Parameter-Array $modul_param

Übergeben von Werten an ein externes Modul über die Relation workflow_extmod_param

Über die Relation workflow_extmod_param können Variablen an ein externes Modul/Skript übergeben werden. Die Relation verwendet als Schlüssel die Attribute 'workflownummer', 'extmod_id', 'aufruf_id' und 'paramnr'. Letzteres hat nur technischen Charakter. Der Variablenname wird im Attribut 'paramkey', der Variablenwert in 'paramvalue' abgelegt. Es können auch Arrays über 'workflow_extmod_param' übergeben werden. Diese werden jedoch in ihre einzelnen Bestandteile zerlegt und so in die Relation eingetragen. Ein zweidimensionales Array beispielsweise verursacht mehrere Tupel, wobei die Einträge unter 'paramkey' die folgende Form haben:

Für das Auslesen von Tupeln aus der Relation 'workflow_extmod_param' steht die Funktion 'extmod_param(wf_nr, extmod_id, aufruf_id)' in 'lib-extmodul.inc.php' zur Verfügung. Da sich in der Relation die Informationen zu allen aktuell freigeschalteten externen Modulen befinden, müssen die richtigen mit Hilfe der übergebenen Parameter 'wf_nr', 'extmod_id' und 'aufruf_id' selektiert werden. Die Funktion gibt ein Array mit den ausgewählten Werten zurück, wobei es mit den Namen der Variablen indiziert ist. Falls über die Relation auch Arrays übergeben worden sind, müssen diese wieder zusammengebaut werden. Dabei kann die Funktion 'modparam_getarray($param, $arrayname)' aus 'lib-modul_param.inc.php' helfen. In '$param' wird der Funktion das Ergebnis des 'extmod_param'-Aufrufs, in '$arrayname' der Name des Arrays übergeben. Die Funktion liefert als Resultat das zusammengesetzte Array. Ein Wort noch zur Library 'lib_extmodul.inc.php'. Sie ist speziell zur Aufnahme von Funktionen und Daten gedacht, die in externen Modulen benötigt werden.

Wie in Abschnitt [*] beschrieben, trägt die Funktion 'modul_extmod' die Namen der Views und temporären Tabellen, sowie mit den ``ext_''-Schlüsseln weiter Informationen für die externen Module in die Relation 'workflow_extmod_param' ein. Sollte dies nicht ausreichen, können aus einem ExtMod-Submodul heraus auch direkt Einträge in die Relation vorgenommen werde, indem die Funktionen 'wf_extmod_param_set' und 'wf_extmod_param_setarray' aus 'lib-extmodul-control.inc.php' verwendet werden. Erstere ist für einfache Variablen, letztere für Arrays. Der Funktion 'wf_extmod_param_set' müssen die Parameter (in dieser Reihenfolge) 'extmod_id', 'aufruf_id', 'variablenname' und 'variablenwert' übergeben werden. Bei 'wf_extmod_param_setarray' sind die Parameter (in dieser Reihenfolge) 'zu_speicherndes_Array', 'arrayname', 'extmod_id' und 'aufruf_id'.

Im folgenden Beispiel wird ein Array mit Queries ('query_extern') mit dem ersten Funktionsaufruf in die DB eingetragen, wobei als Array-Name 'queries' verwendet wird. Anschließend werden alle zum externen Modul gehörenden Werte aus der DB wieder ausgelesen und das Array 'queries' rekonstruiert.


next up previous contents index
Next: Die Einträge 'insert' und Up: Submodule für die Steuerung Previous: Zusammensetzung des Parameter-Array $modul_param
Copyright Munich Network Management Team