3. Zielsetzung
• Formulardefinition zur Laufzeit über eine Java-API oder XML
• Sofortige Validierung der Eingaben; Implementierung der Validierer mit
Java (kein Javascript)
• Dynamische Berechnung von Feldinhalten abhängig von anderen
Feldern
• Abbildung komplexer Datenstrukturen wie Gruppen und
Wiederholungen (Repeats)
• Internationalisierung aller Komponenten (Beschriftung, Auswahlwerte,
Datumseingabe)
• Einfache Integration in beliebige HTML-Seiten
• Flexible Erweiterbarkeit um neue Renderer, Validierer usw.
3
4. Historie
• Entwicklungsbeginn im Januar 2007
• Integration in die imatics *ProcessSuite im August 2007 zur dynamischen
Erzeugung benutzerdefinierter Formulare
• 2008/2009 projektgetriebene Weiterentwicklung
• Einsatz in mehreren Kundenprojekten
• Veröffentlichung unter einer Open-Use-Lizenz im Dezember 2009
• Nutzung auf Websites diverser mittelgroßer – sehr großer Unternehmen
• Einsatz als Basistechnologie bei mehreren IT-Systemhäusern und
Integratoren in D-A-CH
4
5. Architektur
• Datenhaltung in serverseitigem
FormContext
• HTML-Darstellung und Eingabe
über Renderer (Konvertierung der
Daten)
• Formular-Logik über dynamische
Validierer und Kalkulatoren
• Anbindung an Back-End
über Konnektoren
• Anbindung auch auf andere
Technologien (Swing, XCode...)
adaptierbar
5
6. Komponenten – Definition der Datenstruktur
• Definition der Datenstruktur eines Formulars per XML oder über die Java
API
• Für Komponenten können beliebige Datentypen festgelegt werden
(Integer, Text, Binärdaten, Datum usw.)
• Hierarchische Strukturen durch Gruppen und Wiederholungen
(Tabellarische Daten mit beliebiger Länge)
• Definition von Validierungsregeln, Berechnungen und Darstellung für die
Komponenten in der Formulardefinition
• Aktuelle Formulardaten werden zur Ausführungszeit vollständig
serverseitig gehalten und stehen somit der weiteren Auswertung per
Java zur Verfügung
6
7. Renderer – Die Schnittstelle zum Anwender
• Render-Engine erzeugt XHTML-Code zur Integration in beliebige Seiten
• Datenaustausch zwischen Browser und FormContext erfolgt über
Renderer-Implementierung
• Für jede Komponente können ein oder auch mehrere Renderer
verwendet werden
• Umfangreiche Auswahl an Standard-Renderern für alle
Komponententypen verfügbar
• Eigene Renderer können bei Bedarf hinzugefügt werden
• Layout-Anpassungen erfolgen über eigene CSS-Dateien
7
8. Validierer
• Sofortige Überprüfung der eingegebenen Inhalte und Anzeige
internationalisierter Meldungen
• Vordefinierte Validierer für Standardregeln (z.B. Textlänge, Wertebereich
von Zahlen)
• Beispielcode
<validator>
<required/>
<length max=“10“>
</validator>
• Kombination unterschiedlicher Validierer in der Formulardefinition
• Implementierung spezifischer Validierer per Java (z.B. Adressprüfung)
8
9. Berechnungen über Kalkulatoren
• Berechnung von Komponentenwerten während der
Formularbearbeitung
• Werte aus anderen Komponente können für die Berechnungen
verwendet werden; Änderungen führen zur sofortigen Neuberechnung
in abhängigen Komponenten
• Zahlreiche Kalkulatoren sind bereits implementiert
• LengthCalculator, MultiplyCalculator, ConcatCalculator, Base64Calculator,
DateCalculator etc. (insgesamt 65 vordefinierte Kalkulatoren vorhanden)
• Komplexe Berechnung durch Kombination bestehender oder
Implementierung eigener Kalkulatoren möglich
9
10. Optionslisten und Bäume
• Bereitstellung von Auswahl-Optionen für Auswahl-Renderer (z.B.
Dropdown, Picklist) über Java-API
• Dynamische Aktualisierung von
Optionslisten abhängig von Eingaben
in anderen Komponenten
• OptionTreeFactory für Optionen mit Baumstruktur zur Auswahl in Baum-
Darstellung
10
11. Vorteile und Einsatzbereich
• Trennung zwischen Datenerfassung im Formular und
Anbindung der Daten an die Anwendung
• Flexible Erweiterbarkeit per Java
• Performant und resourcenschonend
• Einfache Integration in jeden Servlet Container
• Beispielhafte Einsatzbereiche
• E-Mail-Formulare
• Upload-Formulare
• Passwort-Validierung
• Umfragelisten
• ...
11
12. Veröffentlichung
• Erste Veröffentlichung im Dezember 2009 unter einer Open-Use-Lizenz
auf http://www.form-engine.de
• Umfangreiche Beispiele und Tutorials
• Regelmäßige Updates (ca. 3 mal im Jahr)
• Support kann bei Bedarf vereinbart werden
• Entwicklung spezieller Komponenten auf Anfrage
• Die FormEngine in der Presse
– JavaMagazin 01/2010 (ToolRadar) (erschienen Dezember 2009)
– JavaSpektrum 04/2010 (erschienen im Juni 2010)
12
13. Sie haben eine Idee oder eine Frage?
Sprechen Sie uns an!
Stefan Zorn
s.zorn@imatics.de
imatics Software GmbH
www.imatics.de Unternehmens-Website
www.ProcessSuite.de Produktwebsite
www.ProcessGallery.de Prozessportal
www.form-engine.de Basistechnologie Formulardefinition, -abarbeitung etc.