Im Parameter-Array für die Funktion 'modul_extmod' gibt es die Schlüssel 'insert' und 'check'. Unter ihnen werden die Details übergeben, die zur Erzeugung von Views notwendig sind. In 'insert' können mehrere Views, in 'check' nur ein View definiert werden. Die Insert-Views sind für neue Tupel gedacht, deren Daten beispielsweise über ein HTML-Formular eines externen Moduls/Skripts eingegeben wurden. Die Namen der Views werden durch Komma getrennt in einem String zusammengefasst und unter dem Variablennamen table_insert_list in der Relation 'workflow_extmod_param' gespeichert. Für die Insert-Views muss festgelegt werden, welche der eingegebenen Werte in welche Views gelangen sollen. Dazu dient ein String, der unter dem Schlüssel 'get_attrib' für jeden Insert-View abgelegt werden muss. Der String enthält durch Komma getrennt eine Liste der Feldnamen. Da unter Umständen die Attributnamen des Views von den Namen der eingegeben Werte abweichen, kann im String die Notation 'attributname:wertname' benutzt werden. Die Strings werden in der DB unter dem Namen 'table_get_attrib[viewname]' abgelegt. Für jeden View enthält die DB einen solchen String.
Der Check-View ist geeignet, um eingegebene Werte mit Daten in der
Datenbank zu vergleichen. Der Name des Views wird in der Relation
'workflow_extmod_param' unter 'table_check' gespeichert. In der
Tabelle
sind die Bestandteile des 'insert'- und 'check'-Array zusammengefasst.
Bemerkungen:
id=>"steuerung_extmod",
extmod_id=>"extmod1",
aufruf_id=>"test",
insert=>array(
array(
viewid=>"vorlesungsanmeldung_insert",
leittabelle=>"student_besucht_vorlesung",
query=>array(
array(
SELECT=>"v.vorlesungnummer, v.studentnummer",
FROM=>"student_besucht_vorlesung v",
WHERE=>"v.vorlesungnummer='10'",
WITH_CHECK_OPTION=>1
),
),
req=>array(
vorlesungnummer=>10,
),
rechte=>"SELECT, INSERT",
),
array(
viewid=>"uebungsanmeldung_insert",
leittabelle=>"student_besucht_uebung",
query=>array(
array(
SELECT=>"u.vorlesungnummer, u.studentnummer, u.besuchtuebung,
u.gruppennummerpraeferenz1, u.gruppennummerpraeferenz2",
FROM=>"student_besucht_uebung u",
WHERE=>"u.vorlesungnummer='10'",
WITH_CHECK_OPTION=>1
),
),
get_attrib=>"besuchtuebung, gruppennummerpraeferenz1,
gruppennummerpraeferenz2",
req=>array(
vorlesungnummer=>10,
),
rechte=>array(
fopra=>"SELECT, INSERT",
control=>"INSERT, UPDATE",
),
),
),
check=>array(
viewid=>"vorlesungsanmeldung_check",
leittabelle=>"student",
query=>array(
array(
SELECT=>"s.studentnummer, s.matrikelnummer, s.universitaetsnummer",
FROM=>"student s"
),
),
rechte=>"SELECT",
),
);
modul_extmod($modul_param);