FormEngine
imatics Software GmbH
    Java-Framework für
 dynamische Web-Formulare
imatics Lösungs-Portfolio
                 Web, Portale
                                 ProcessPortal   ProcessGallery
Applika-
 tionen



                                 ITrack          Anamnese                             Mobil (iPhone, iPad, Blackberry,
                                                                                                 Android)
                                 Netzwerkportal Umfragen
Anwendungs-
 infrastruktur




                                Content- & Portal-
                                                              FormEngine (FE)                   ProcessSuite (IPS)
                                management (ICM)
Backend-
Systeme




                                                                  © imatics Software GmbH                                2
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
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
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
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
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
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
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
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
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
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
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.

imatics FormEngine

  • 1.
    FormEngine imatics Software GmbH Java-Framework für dynamische Web-Formulare
  • 2.
    imatics Lösungs-Portfolio Web, Portale ProcessPortal ProcessGallery Applika- tionen ITrack Anamnese Mobil (iPhone, iPad, Blackberry, Android) Netzwerkportal Umfragen Anwendungs- infrastruktur Content- & Portal- FormEngine (FE) ProcessSuite (IPS) management (ICM) Backend- Systeme © imatics Software GmbH 2
  • 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 – Definitionder 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 – DieSchnittstelle 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 eineIdee 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.