next up previous contents index
Next: Submodule für den Aufruf Up: Submodule für die Steuerung Previous: Die Einträge 'insert' und

Der Eintrag 'new_tupel' im Detail

Der Schlüssel 'new_tupel' im Parameter-Array für die Funktion 'modul_extmod' nimmt die Details für die Erzeugung einer temporären Tabelle auf. Der Name der erzeugten temporären Tabelle wird in der Relation 'workflow_extmod_param' unter dem Namen 'table_new' abgespeichert. Die temporäre Tabelle kann im Zusammenspiel mit 'insert' und 'check' verwendet werden. Das Beispiel aus Abschnitt [*] könnte um eine temporäre Tabelle erweitert werden, um Daten aufzunehmen, die durch die Überprüfung mit dem Check-View durchgefallen sind. Eine temporäre Tabelle kann aber auch ohne Insert- und Check-Views genutzt werden, wenn man grundsätzlich keine Daten von außen in die regulären Tabellen der DB gelangen lassen will. Die Daten der temporären Tabelle müssen in beiden Fällen ``manuell'', am besten nach vorheriger Überprüfung in die regulären Tabellen übernommen werden.

Da die temporäre Tabelle Daten enthält die später in die regulären Tabellen übernommen werden sollen, müssen sich die Attribute der temporären Tabelle auf Attribute der regulären Tabellen beziehen. Unter dem Schlüssel 'attribs' von 'new_tupel' ist deshalb ein Array abgelegt. Dieses Array enthält als Schlüssel die Namen der regulären Tabellen und als Werte die Attribute, die für die temporäre Tabelle genutzt werden sollen. Die Attribute sind durch Komma getrennt in einem String abgelegt. Tabelle [*] beschreibt die Bestandteile von 'new_tupel'.


 
Tabelle:  Bestandteile von 'new_tupel'
english Schlüssel german english Beschreibung german
english tmptableid german english String, mandatory. Mit Hilfe dieser ID werden die temporären Tabellen identifiziert. Die IDs müssen innerhalb eines Workflows eindeutig sein. Die eigentlichen Namen der Tabellen werden von der Anwendung generiert und haben die Form: tmp<aktuelle_zeit>. german
english attribs german english Array, mandatory. Enthält als Schlüssel die Namen der regulären Tabellen und als Werte die Attribute daraus, die für die temporäre Tabelle benutzt werden sollen. Die Attribute durch Komma getrennt als Strings einzutragen german
english primkeys german english Array. Falls notwendig kann hier in Form einer Liste angegeben werden, welche Attribute gleichzeitig Primärschlüssel sein sollen. german
english rechte german english String oder Array. Die hier definierten Rechte werden für die temporäre Tabelle gesetzt. Bei der ersten Variante werden die Rechte für den unter 'user' (siehe Abschnitt [*]) eingetragenen Benutzer gesetzt. Bei der Array-Variante werden die Benutzernamen als Schlüssel und die zugeordneten Rechte als Werte eingetragen. Die Rechte sind in beiden Varianten durch Komma getrennt. german

Bemerkungen:

'tmptableid': Die Generierung der Namen der temporären Tabellen durch die Workflowanwendung soll sicherstellen, dass die Namen in der DB eindeutig sind. Die Temptable-IDs müssen hingegen nur für einen Workflow eindeutig sein. Dadurch kann ein Modul mit einem ExtMod-Submodul in mehreren Workflows verwendet werden, ohne dass besondere Vorkehrungen für die Namen der temporären Tabellen getroffen werden müssen. Die Namen der temporären Tabellen werden in die Relation 'workflow_extmod_param' eingetragen. Die Namen können außerdem mit Hilfe der Funktion 'view_info($tmptableid)' abgefragt werden. Die Funktion gibt ein Array zurück, das unter dem Schlüssel 'name' den Namen der temporären Tabelle enthält.

'attribs': Beim Erzeugen einer neuen Tabelle muss neben dem Namen auch der Typ für jedes Attribut angegeben werden. Die Namen der Attribute der temporären Tabelle ergeben sich aus den Namen der Attribute der regulären Tabelle, auf die sich die temporäre Tabelle bezieht. Auch die Typen werden entsprechend den Typen der regulären Tabellen gesetzt.

Im folgenden Beispiel wird eine temporäre Tabelle erzeugt, die die Daten der Studenten aufnimmt, die sich zu einer Vorlesung anmelden. Als Primärschlüssel werden die Attribute 'matrikelnummer' und 'universitaetsnummer' benutzt. Der Verzicht auf den Primärschlüssel kann durchaus sinnvoll sein, um zu verhindern, dass bösartige Studenten mit falschen Einträgen die Eingabe von anderen Studenten verhindern. Dadurch kann es in der temporären Tabelle mehrere Tupel mit der selben Matrikelnummer-Uni-Kombination geben. Der Betreuer der Vorlesung muss dann den plausibelsten auswählen.


next up previous contents index
Next: Submodule für den Aufruf Up: Submodule für die Steuerung Previous: Die Einträge 'insert' und
Copyright Munich Network Management Team