WebAG Automat 4.3
|
Formularsystem
Juli 2003Inhaltsverzeichnis
1.1 Formular-Editor
1.2 Formular-Treiber
1.3 Container-Monitor3.1 Neues Formular erzeugen
3.1.1 Formular bearbeiten
3.1.2 Element bearbeiten
3.1.3 Unterformulare4.1 Formular-Treiber bearbeiten
4.2 Formular-Treiber testen
4.2.1. Formulareingaben1. Konzepte
Der Formular-Editor als Bestandteil des WebAG Automat ermöglicht auf einfache Weise die Erstellung von Web-Formularen. In Anlehnung an das Autorensystem wurde ein Editor konzipiert, mit dem die Formularelemente Eingabefeld, Checkbox, Radiobutton, Dropdown-Menü sowie zu Listen zusammengefasste Kombinationen dieser Elemente zusammengestellt werden können. Attribute von der Beschränkung der Feldlänge bis hin zu eigenen Validierungen der Eingaben erlauben vielseitige Einsatzmöglichkeiten. Die neuartige Eingabemöglichkeit in die mit eigenen Layouts individuell gestaltbaren Formulare sowie die beliebige Weiterverarbeitung der Daten aus einem XML-Container heraus runden das Konzept ab.
1.1 Formular-Editor
Im Formular-Editor wird das Formular aus beliebig wählbaren Elementen zusammengestellt. Die Reihenfolge ist dabei frei wählbar, auch die Anzahl der Formularelemente ist unbeschränkt. Bei komplexeren Formularen empfiehlt es sich jedoch aus Gründen der Übersichtlichkeit das Hauptformular in Unterformulare aufzuteilen. Elemente lassen sich zu Listen gruppieren und erlauben so tabellenartig das Speichern mehrerer Datensätze.
Mit Attributen lässt sich die Eingabemöglichkeit einschränken. Zur Verfügung stehen u.a. eine Feldlängenbegrenzung für Textfelder, die Vorbelegung von Dropdown-Menüs mit Wertelisten auch in Abhängigkeit von der Eingabe in anderen Feldern, die Kennzeichnung von Pflichtfeldern in denen Eingaben gemacht werden müssen sowie vorgegebene und eigene Validierungsfunktionen für Texteingaben.Der Formular-Rohentwurf wird frei von Layout und Design in einem editierbaren XML-Code in der Datenbank abgelegt und bei der Formularverwendung mit Daten in einem Container gefüllt. Dabei ist eine benutzerorientierte Zugriffssteuerung aber auch ein anonymer Zugriff möglich.
Die die Formulardaten können vom Benutzer so lange editiert werden bis er selbst das Formular abschließt und den nachgeschalteten, indivuduellen Verarbeitungsprozeß anstößt der im Formular-Treiber angegeben wird. Das Formular muß also nicht in einem durch, sondern kann auch schrittweise über mehrere Sitzungen ausgefüllt werden.1.2 Formular-Treiber
Die Formular-Treiber enthalten Formularbezogen Verarbeitungsrichtlinien für einzelne Formulare. Dazu gehören Layout-Angaben, aber auch Autorisierungskonzepte (anonym oder angemeldet) die dem Formular zugrunde liegen.
Die Angabe der INIT-, SUBMIT- und DELETE-Prozedur spezifizieren, was mit dem Formular nach dem Ausfüllen passieren und wie mit den Formulardaten nach Abschluß der Eingabe oder Abbruch verfahren werden soll. Dem Administrator stehen hier alle Möglichkeiten die das Oracle XML-Kit für PL/SQL bietet offen um die für ihn frei zugänglichen Formulardaten aus dem XML-Container zu verarbeiten.
1.3 Container-Monitor
Der Container-Monitor ist Kontrollinstanz für die gemachten Formulareingaben und nur dem Administrator zugänglich. Über Auswahlkriterien wie die Sortierung nach Benutzer oder gemachte Änderungen kann er gezielt Einsicht in den XML-Code des ausgefüllten oder sich in Bearbeitung befindlichem Formulars nehmen.
Neben dem Datum der letzten Änderung sowie dem Namen des Benutzers bekommt der Administrator noch die interne Verarbeitungsnummer (ID) des Containers angezeigt. Er kann den kompletten Container löschen oder dessen Inhalt editieren.
2. Berechtigungen
Auf Rohformulare, Formular-Treiber und das Anzeigen von Formular-Containern können Berechtigungen gesetzt werden. Dadurch kann der zentrale Administrator entlastet werden indem das Erstellen und Editieren von Formularen und von Formulartreibern in die Hände erfahrener Formular-Autoren gelegt wird.
2.1 Formular-Editor
Im Formular-Editor kann der zentrale Administrator Autoren benennen die bereits angelegte Formulare bearbeiten können.
Die Zuweisung der Formular-Autoren erfolgt für das jeweilige Formular in der Formular-Editor Ansicht des Formulars. Dabei wird die auch bei Seiten und Ordnern bekannte Autorenzuweisung verwendet.
Ein Autor der Formulare bearbeiten darf bekommt nach seiner Anmeldung im Navigationsbaum des Autorensystems den Ordner Formulare angezeigt. In der Liste aller Formulare wird ihm im Formular-Editor angezeigt welche Formulare er bearbeiten kann.
2.2 Formular-Treiber
Der zentrale Administrator kann Autoren und Container-Bearbeiter individuell für Formular-Treiber zuweisen.
Die Zuweisung erfolgt für den jeweiligen Formular-Treiber in dessen Einstellungen. Dabei wird die auch bei Seiten, Ordnern und Formularen bekannte Autorenzuweisung verwendet.
Autoren
Autoren können Änderungen an bereits angelegten Formular-Treibern vornehmen und den Formular-Treiber testen. Ein Autor der Formular-Treiber bearbeiten darf bekommt nach seiner Anmeldung im Navigationsbaum des Autorensystems den Ordner Formular-Treiber angezeigt. In der Liste wird ihm angezeigt welche Formular-Treiber er bearbeiten kann.
Container-Bearbeiter
Container-Bearbeiter können Formular-Container überwachen, d.h. einsehen. Ein Benutzer der Formular-Container einsehen darf bekommt nach seiner Anmeldung im Navigationsbaum des Autorensystems den Ordner Container-Monitor angezeigt. Dort können wie in 5. Container-Monitor beschrieben Formulardaten eingesehen werden.
3. Formular-Editor
3.1 Neues Formular erzeugen
Formulare werden einzeln vom Administrator angelegt. Eine Gruppierung, d.h. Zuweisung von Unterformularen zu Formularen erfolgt für jedes Formular separat im Editor.
Die Funktion "Neues Formular erzeugen" legt ein leeres Formular ohne Elemente an. Das neue Formular kann auch Kopie eines anderen sein und später im Editor bearbeitet werden.
3.1.1 Formular bearbeiten
Der Bearbeitungsmodus für Formulare ist dem für Seiten nachempfunden und intuitiv zu bedienen. Die einzelnen Elemente eines Formulars werden analog zu Absätzen einer Seite eingefügt, positioniert und bearbeitet. Formularelemente werden farblich, durch Einrücken und Umrahmung je nach Typ voneinander abgesetzt oder einander zugeordnet.
Von den Bearbeitungsfunktionen für Formulare sind das Kopieren und Löschen weitgehend selbsterklärend. Beim Kopieren wird direkt der Bearbeitungsmodus für die erstellte Kopie aufgerufen. Das Löschen erfolgt nach Sicherheitsabfrage und einer Auskunft über das zu löschende Formular.
Der XML-Quelltext wird im Hintergrund durch das Formularsystem generiert und in der Datenbank abgelegt. Änderungen im Quelltext oder gar der Datenbank sollten nur erfahrene Administratoren vornehmen. Es ist wichtig sich bei Änderungen an die XML-Syntax zu halten. Bei einem Verstoß gibt der Formulareditor einen Fehlermeldung aus, die Korrektur muss im XML-Quelltext erfolgen.
Die Arbeit am Quelltext darf sich nur auf Änderungen beschränken. Das Hinzufügen von neuen Formularelementen muss über den Editor erfolgen, da intern IDs (Attribut ID) vergeben werden deren Eindeutigkeit bei manueller Quelltextbearbeitung nicht gewährleistet werden kann.
Durch den XML-Import können XML-Quelltexte bestehender Formulare geladen werden. Die Importfunktion kümmert sich dabei um die Anpassung der IDs. Es empfiehlt sich, ein leeres Formular anzulegen und in das XML-Importfeld den Quelltext zu kopieren (mit Copy & Paste).
Das Formular kann auch während der Entwicklung ständig getestet werden. Dazu wird ein Formular Container zu dem aktuellen Formular und eventuell seinen Unterformularen angelegt. Die Befüllung des Formular-Containers mit Daten kann im Container-Monitor verfolgt werden.
Um ein Formular zu testen muss es über einen Formular-Treiber verfügen. Ein Formular ohne Formular-Treiber kann nicht getestet werden und auch nicht produktiv gehen.
Nach Zuweisung des Formular-Treibers und automatischem anlegen des Formular-Containers kann das Formular aufgerufen werden.
3.1.2 Element bearbeiten
Ein Formular wird aus einzelnen Elementen aufgebaut. Elemente können in beliebiger Reihenfolge und Anzahl platziert werden. Ihre Reihenfolge lässt sich ändern. Die bekannten Grundfunktionen "Kopieren" und "Löschen" lassen sich auch auf Elemente anwenden. Dabei wird die Eindeutigkeit der internen IDs gewährleistet.
Folgende Elemente können ausgewählt werden:
Deutsche Bezeichnung Englische (Internet-)Bezeichnung interne XML-Tag Bezeichnung (*) Textfeld Textfield wt_TEXT Textarea Textarea wt_TEXTAREA Kontrollkästchen Ceckbox wt_CHECKBOX Dropdown Menü
- Option
Select
- Option
wt_SELECT
- wt_OPTION
Optionsfeld
- Option
Radiobutton
- Option
wt_RADIO
- wt_OPTION
Liste
- Tabellenzeile
- weitere Elemente
List
- Row
wt_LIST
- wt_ROW
Extern External wt_EXTERNAL Hidden Hidden wt_HIDDEN (*) Die TAGs sind Case-Sensitiv
Dropdown-Menüs, Optionsfelder und Listen haben verschachtelte TAGs. Bei Dropdown-Menüs und Optionsfelder sind das deren Option(en), eingeleitet durch wt_OPTION. Listen werden tabellarisch angelegt und können in einer Kopfzeile eingeleitet durch wt_ROW alle anderen Elemente außer Listen selbst als Spalten aufnehmen.
Beim Anlegen von Elementen mit verschachtelten TAGs wird dies im Editor farblich, durch Einrücken und Umrahmung dargestellt. Die Optionen in Dropdown-Menüs bzw. Optionsfelder können im jeweiligen Rahmen eingefügt, kopiert, gelöscht und positioniert werden.
Elemente und Attribute
Den Elementen lassen sich Attribute zuweisen mit denen schon im Vorfeld der Verarbeitung ein gewisser Kontrollfluss gestaltet werden kann. Neben der Beschränkung der Eingabefeldlänge können Werte vorbelegt werden, Pflichtfelder definiert und Validierungen für Eingaben zugewiesen werden u.a.
Folgende Attribute sind bei den jeweiligen Elementen zulässig
wt_TEXT wt_TEXTAREA wt_CHECKBOX wt_SELECT wt_OPTION wt_RADIO wt_OPTION wt_EXTERNAL wt_HIDDEN NAME x x x x x x x x x LABEL x x x x x x x x x URL x x x x x x x ON_INSERT x ON_DELETE x MAX_ROWS x PROMPT x x x x x x PROMPT_FREE x VALUE x x x x x x mögliche
Elemente:wt_TEXT
wt_TEXTAREA
wt_CHECKBOX
wt_SELECT
wt_RADIO
wt_EXTERNAL
wt_HIDDENx SIZE x x ROWS x COLS x ON_EDIT x ON_SHOW x ON_CHANGE x x x x x x TARGET x INPUT x VALIDATE x x FORMAT x x CHECKED x x x SELECTED x FREE x SQL x REQUIRED x x x x
Die Elemente im einzelnen
Textfeld (wt_TEXT)
Einzeilige Textfelder können in ihrer Eingabelänge beschränkt werden. Ihr Inhalt (VALUE) kann in Validierungsprozeduren oder den OPTIONs eines Dropdown-Menüs über die Variable ${VALUE}abgegriffen werden ('${VALUE}' bei Stringinhalten). Zur Bearbeitung eines Textfeldes in der Formulareingabe öffnet sich ein Popup-Fenster.Textbereich (wt_TEXTAREA)
Die Größe eines Textbereichs wird über die Anzahl Zeilen (COLS) und Spalten (ROWS) bestimmt.Checkbox (wt_CHECKBOX)
Checkboxen sind Ankreuzfelder. Sie können nicht wie Radio-Buttons gruppiert werden.Dropdown-Menü (wt_SELECT mit wt_OPTION)
Dropdown-Menüs können "von Hand" mit Einträgen (OPTIONs) gefüllt werden oder automatisch durch SQL-Anweisungen aus Datenbanktabellen. Die freie Eingabe von Werten die nicht in der Auswahlliste stehen ist bei Bedarf möglich. Beim Ausfüllen des Formulars wird ihre VALUE entsprechend gekennzeichnet, also ob es sich um einen Eintrag aus einer Werteliste oder einen Freitext handelt.Radio Button (wt_RADIO mit wt_OPTION)
Die Inhalt einer Radio-Button Gruppierung wird über die wt_OPTIONs bestimmt. Bei der Auswahl kann immer nur eine Option selektiert werden.Liste (wt_LIST)
In Listen können alle Elemente beliebig oft vorkommen, außer Listen selbst (keine verschachtelten Listen). Die Elemente einer Liste werden über dessen Attribute zugewiesen. Alle möglichen Elemente außerhalb und innerhalb der Liste werden dargestellt und können zugeordnet werden.Extern (wt_EXTERNAL)
Eigene Felder, die als PL/SQL Stored Procedure abgelegt sind. Als Beispiel und WebAG Automat Standardfunktionalität ist ein Upload von Dateien voreingestellt.Hidden (wt_HIDDEN)
Versteckte Felder (hidden fields) können zum Transport von Informationen dienen die auf den Formular-Webseite nicht angezeigt werden.
Die Attribute im einzelnen
URL Beschreibung Internet-/Intranet-Adresse als Verweis auf einen Hilfetext zum Formularelement Verwendung wt_TEXT, wt_TEXTAREA, wt_CHECKBOX, wt_SELECT, wt_RADIO, wt:EXTERNAL, wt_LIST
MAX_ROWS Beschreibung Beschränkung der Anzahl Zeilen einer Liste Verwendung wt_LIST
PROMPT Beschreibung Hinweistext beim Aktivieren eines Eingabefeldes Verwendung wt_TEXT, wt_TEXTAREA, wt_CHECKBOX, wt_SELECT, wt_RADIO, wt_EXTERNAL
PROMPT_FREE Beschreibung Hinweistext bei der Freien Eingabe beim Aktivieren eines Eingabefeldes Verwendung wt_TEXT, wt_TEXTAREA, wt_CHECKBOX, wt_SELECT, wt_RADIO, wt_EXTERNAL
SIZE Beschreibung Zeichenlänge für Textfelder bzw. Anzahl der Dropdown-Menü Einträge Verwendung wt_TEXT, wt_SELECT
ROWS, COLS Beschreibung Anzahl Zeilen/Spalten einer Textarea Verwendung wt_TEXTAREA
TARGET Beschreibung Zielfenster des externen Feldes (_self, _blank) Verwendung wt_EXTERNAL
INPUT Beschreibung Eingabemöglichkeit im Feld (Eingabelink) Verwendung wt_EXTERNAL
FORMAT Beschreibung Formatierungsangaben für die Validierungsroutine, z.B. TT.MM.YYY für Datum oder 999.99 für Zahlen Verwendung wt_TEXT, wt_TEXTAREA
SELECTED Beschreibung Vorauswahl eines Wertes in Dropdown-Menüs. Zur Auswahl stehen die Werte der zugehörigen wt_OPTIONs. Verwendung wt_SELECT
FREE Beschreibung Freitext-Eingabe neben Dropdown-Menüs zulassen. Verwendung wt_SELECT
Anmerkung:
In der Quicktour zum Formularsystem findet sich ein Beispiel zu einer eigenen Validierungsfunktion für die Überprüfung der korrekten Syntax einer email-Adresse.3.1.3 Unterformulare
Insbesondere bei komplexeren Formularen empfiehlt sich eine Aufteilung. Um die Zugehörigkeit zu einem Formular zu assoziieren lassen sich beliebig viele Formulare als Unterformulare zu einem anderen Formular definieren. Ein Formular kann jedoch nur einmal Unterformular sein. Eine mehrfache Verwendung als Unterformular zu verschiedenen Formularen ist nicht möglich. Die angebotene Liste der Möglichen Hauptformulare bei der Zuweisung berücksichtigt diesen Aspekt.
Eine Zuweisung zum Unterformular lässt sich jederzeit ohne Folgen für den bereits erfassten Datenbestand aufheben. Er bleibt - wie bei allen Änderungen am Rohformular - davon unberührt.
4. Formular-Treiber
4.1 Formular-Treiber bearbeiten
Ein Formular-Treiber kann immer nur zu genau einem Formular angelegt werden, ein Formular kann jedoch mehrere Formular-Treiber haben und so unterschiedliche Verarbeitungen nach sich auslösen. Zur Auswahl stehen alle (Ober-)Formulare.
An einen Formular-Treiber wird eine Sprachvariable gekoppelt. Diese Sprachvariable ${LANG} kann in eigenen Validierungsprozeduren abgefragt werden. Damit kann z.B. auf englischsprachige Formulare eine Datumsvalidierung nach englischen Regeln erfolgen, bei deutschsprachigen Formularen entsprechend nach deutschen Regeln.
AutorisierungDas aus dem Autorensystem bekannte Autorisierungskonzept für Seiten wird in ähnlicher Form für Formulare angewendet. Im Formular-Treiber kann angegeben werden ob das Formular nur von angemeldeten Benutzern oder auch anonym aufgerufen werden kann. Bei durch Anmeldung autorisierten Formularen wird die Benutzerkennung an den Formular-Container gekoppelt, der Benutzer wird bei jeder Anmeldung wieder erkannt und kann die Dateneingabe im Formular fortsetzen. Bei anonymer Verwendung muss das Formular in einem ausgefüllt und abgeschickt werden.
Design
Die Formularausgabe ist an ein Web gekoppelt und bezieht von diesem die Homepage-Design Informationen. Zusätzlich können Textlayouts und Trigger-Sets gesetzt werden. Das Formular wird unter der Angabe von Spaltenanzahl und Spaltenbreite mit den gewählten Layout- und Design-Informationen dargestellt.
Eingabemodus des Formulars
Sie können wählen zwischen "Pop-Up" und "Pop-In"-Eingabefenstern. Hierbei handelt es sich um die Art, in der das Formular Eingaben entgegen nimmt. Ist "Pop-Up" eingestellt öffnet sich für jede Eingabe ein eigenes Fenster, ist "Pop-In" eingestellt wird die Eingabe in der aktuellen Webseite vorgenommen.
Formularverarbeitung - Init, Submit, Delete und Rückgabe
Die Verarbeitung von Formulardaten, also dem Formular-Container Inhalt, ist je nach Anwendungsfall unterschiedlich. Das Formularsystem bietet standardmäßig neben der Datenablage in einem XML-Container in der Datenbank das Mailen der Daten an eine vorgegebene Adresse.
Um individuelle Anwendungen zu realisieren können mit Aufruf (Init), dem Abschicken (Submit) oder Löschen (Delete) eines (Teil-)Ausgefüllten Formulars PL/SQL Prozeduren ausgeführt werden die unter Angabe eigener und interner Parameter auf den Datenbestand des XML-Containers zugreifen können.
Die Enterprise WebAG bietet individuell zugeschnittene Schulungen zu PL/SQL und dem zum Einsatz kommenden XML-Toolkits von Oracle an die es in kurzer Zeit ermöglichen eigene Web-Anwendungen zu entwickeln.
Init
Der hier angegebene Prozeduraufruf wird ausgeführt wenn das Formular zum ersten mal aufgerufen wird. Er ist optional, denn nicht immer sind Initialisierungen vor dem Ausfüllen eines Formulars notwendig.
Der PL/SQL Prozedur können formularspezifische Daten in Form von Variablen mitgegeben werden die beim Aufruf ersetzt werden. Eine Übersicht der möglichen Variablen befindet sich hier.
Submit
Der hier angegebene Prozeduraufruf wird ausgeführt wenn die Formulareingaben auf Pflichtfelder überprüft wurden und das Formular abgeschlossen wird.
Der PL/SQL Prozedur können formularspezifische Daten in Form von Variablen mitgegeben werden die beim Aufruf ersetzt werden. Eine Übersicht der möglichen Variablen befindet sich hier.
Das Beispiel zeigt den Prozeduraufruf für die standardmäßig bereitgestellte Prozedur zum mailen der Formulardaten an einen email-Empfänger. Die Prozedurvariable i_form_container_id bekommt durch die Zuweisung i_form_container_id => ${FORM_CONTAINER_ID}die interne Container-ID der Datenablage mit und kann für die Weiterverarbeitung genutzt werden.
Beispiel: Formulardaten des Containers an eine email-Adresse mailen
wt_form_api.submit_handler_mail (
i_form_container_id => ${FORM_CONTAINER_ID},
i_from => 'webmaster@webag.com',
i_to => 'info@webag.de',
i_subject => 'Formular-Mail',
i_format => 'TEXT')In der Quicktour zum Formularsystem findet sich ein Beispiel zu einer eigenen Validierungsfunktion für die Überprüfung der korrekten Syntax einer email-Adresse.
Delete
Der hier angegebene Prozeduraufruf wird ausgeführt wenn die Formulareingaben gelöscht werden sollen.
Der PL/SQL Prozedur können formularspezifische Daten in Form von Variablen mitgegeben werden die beim Aufruf ersetzt werden. Eine Übersicht der möglichen Variablen befindet sich hier.
Rückgabe-Webseite URL
Die hier angegebene Inter-/Intranet-Adresse wird angezeigt wenn das Formular nach erfolgreicher Prüfung auf Pflichteingaben abgeschlossen wird.
Variablen in den Prozedur-Aufrufen
Die Variable ${FORM_CONTAINER_ID} wird ersetzt durch die aktuelle Container-ID des Formulars. Um die Variable zu verwernden kann Aufruf einer eigenen PL/SQL-Prozedur z.B. eine Zeile der Form
i_form_container_id => ${FORM_CONTAINER_ID}
haben. In der Prozedur hat die Prozedurvariable i_form_container_id dann den Wert der Container-ID.
4.2 Formular-Treiber testen
Beim testen eines Formulartreibers wird zu dessen Formular ein Container-Eintrag angelegt und über einen Link zur Bearbeitung angeboten.
4.2.1. Formulareingaben
Die Eingabeseite des Formulars wird mit den eingestellten Layout- und Designangaben dargestellt. Wenn das Formular aus mehreren Unterformularen besteht kann man diese durch ein Dropdown-Menü auswählen. Die Eingaben werden in den Feldern einzeln gemacht und werden im Gegensatz zu herkömlichen Formulareingaben sofort gespeichert. Um das Ausfüllen zu erleichtern kann im Eingabe-Popup-Window die Option "Speichern und weiter" gesetzt werden. Dann kann jede Eingabe mit ENTER quittiert und automatisch zum nächsten Feld gesprungen werden.
5. Container-Monitor
Der Container-Monitor dient dem Administrator zur Überwachung der Formulareingaben. Die Datenausgabe lässt sich Filtern und sortieren, auch eine Volltextsuche in dem im XML-Format abgelegten Daten ist möglich. Der Administrator kann jedes Formular selbst zur Dateneingabe aufrufen oder löschen.
In der Übersicht der gefilterten Formulare werden nur Oberformulare angezeigt. Beim Formlaraufruf zur Bearbeitung werden in der bekannten Weise die zugehörigen Unterformulare zur Bearbeitung angeboten. Beim Löschen werden nach Rückfrage sämtliche zu dem Formular gehörigen Unterformulare mitgelöscht.
WebAG Automat Dokumentation
Copyright © Enterprise Web AG.
Alle Rechte vorbehalten.