Zeit wird’s: was ist eigentlich Infopath?

Ich schreibe ja immer mal wieder über Infopath und ich kann mir vorstellen, dass sich gelegentlich mal jemand fragt, was das überhaupt ist, nochdazu warum ich mich so viel über ein Microsoft Produkt auslasse.

Daher heute einfach mal: Was ist eigentlich Infopath? Was macht man damit? Und: warum sollte man sich auf ein weiteres Office Produkt einlassen?

Infopath gehört zur Familie der Microsoft Office Produkte, erstmals mit von der Partie in Version Office 2003. Infopath wird nicht standardmäßig mit ausgeliefert, sondern gehört in die Applications Ecke, wie beispielsweise auch Visio. Das bedeutet natürlich auch: wer Office kauft, kauft nicht gleichzeitig Infopath. Es fallen also weitere Lizenzgebühren an.

Was macht Infopath eigentlich?

Infopath hat zwei Ebenen:

  • die Erstellung XML basierter Formulare (die später allerdings erstmal nur in Infopath selbst geöffnet und genutzt werden können) durch einen Programmierer
  • die Erstellung von XML Dokumenten mit Hilfe dieser Formulare durch einen Anwender

Damit unterscheidet Infopath zwischen “Formular öffnen” (um es auszufüllen) und “Formular entwerfen”. Wann immer ich etwas über Infopath schreibe, befinde ich mich in der Rolle dessen, der die Formulare erstellt, die später von Anwendern genutzt werden, um XML Format zu produzieren.

Formulare erstellen und entwerfen

Will man XML basierte Formulare erstellen, so kann man entweder eine bereits bestehendes Schema einlesen oder aber direkt in Infopath  parallel zur Formularerstellung die Struktur (genannt Datenquelle) generieren.

Die definierten Felder können dann per Drag and Drop in den Arbeitsbereich gezogen werden - so entsteht dann ein fertiges Formular, hier eine simple Adressliste zur Demo:

Hat man noch kein Schema definiert, legt Infopath die Elemente selbst als neue Knoten des Schemas an und benennt diese erst einmal simpel in der Form “Textfeld_1″ usw.

Die Formularerstellung hat einen weiteren Clou: den View auf die Daten - ein typisches XML/XSL Konstrukt. Beispielsweise könnte im genannten Beispiel ein View zum Ausfüllen erstellt werden und zusätzlich eine Variante, die für den Druck optimiert ist.

Hier ein Blick auf die Steuerelemente, die semantisch sehr eng mit XML Schema Elementen verknüpft sind (simpleType, complexType usw).

Das fertige Formular kann entweder im Microsoft proprietären “ZIP” Format xsn gespeichert werden oder aber in einzelnen Dateien. Die Datei manifest.xsf bildet dabei das Herzstück.

Formulare ausfüllen

Der Anwender sieht später nicht viel von der Erstellung - er sieht lediglich das Formular, so wie entworfen und er generiert beim Ausfüllen XML Dateien

Das spätere XML:

<?xml version="1.0" encoding="UTF-8"?><?mso-infoPathSolution solutionVersion="1.0.0.2" productVersion="12.0.0" PIVersion="1.0.0.0" href="file:///[...]\manifest.xsf” name=”urn:schemas-microsoft-com:office:infopath:Neuer-Ordner:-myXSD-2009-04-24T16-33-20″ ?><?mso-application progid=”InfoPath.Document”?><my:meineFelder xmlns:my=”http://schemas.microsoft.com/office/infopath/2003/myXSD/2009-04-24T16:33:20″ xml:lang=”de”>
<my:Adresse>
<my:Vorname>Anne-Kathrin</my:Vorname>
<my:Nachname>Merz</my:Nachname>
<my:Strasse>meine Straße 1</my:Strasse>
<my:PLZ>12345</my:PLZ>
<my:Ort>Ort</my:Ort>
</my:Adresse>
<my:Adresse>
<my:Vorname>Linus </my:Vorname>
<my:Nachname>Merz</my:Nachname>
<my:Strasse>meine Straße 2</my:Strasse>
<my:PLZ>23456</my:PLZ>
<my:Ort>noch ein Ort</my:Ort>
</my:Adresse></my:meineFelder>

Um hier noch die Microsoft spezifischen Informationen “loszuwerden”, kann man eine simple XSLT Transformation anwenden. Übrigens kann auch der Namespace vorab definiert werden.

Und wenn es komplexer wird?

Eine Adressliste - ein einfaches Beispiel.

Die interaktive Komponente eines Formulars  - oder nennen wir es besser einer Formularanwendung kann mit Hilfe von Steuerelementen und des in Infopath integrierten Script-Editors gepeppt werden. Script, das heißt in diesem Fall jScript, Visual Basic oder C#.

Zusätzlich gibt es für jedes Element eine Reihe von Optionen, die einem das Programmieren abnehmen. Beispielsweise die automatisierte Aktualisierung von Feldern oder das Ein- und Ausblenden von Elementen.

Schnittstellen

Eine der Infopath Stärken ist die Integration externer Datenquellen, entweder zum Auslesen oder zum Senden von Daten.  Das Adressbeispiel also eigentlich falsch gewählt. Die Adressen beispielsweise könnten in einer Access Datenbank oder auch einer Sharepoint Liste gespeichert sein und stehen via “Connect zu sekundärer Datenquelle” beim Ausfüllen zur Verfügung.

Seit MOSS 2007 ist Infopath auch als webbasierte Variante erhältlich. Vorteil: der Benutzer braucht kein Infopath auf seinem Rechner, sondern füllt die Formulare online aus. Nachteil: die Lizensierungskosten sowohl für das Produkt an sich als auch für die Nutzer kann schnell in dramatische Höhen schnellen.

Entscheidung für Infopath?

Auch als Desktop Anwendung ist die Entscheidung für Infopath natürlich vor allem oder auch eine Kostenfrage.

Wer XML Dateien nutzt und die Anwender nicht auf einen formularbasierten XML Editor wie XML Spy oder Oxygen loslassen möchte und gleichzeitig Microsoft Produkte nicht scheut, ist sicherlich mit Infopath gut bedient. Seine wahre Stärke spielt Infopath aber sicherlich in Kombination mit MOSS bzw. allgemeiner mit Sharepoint Produkten aus. Infopath bekommt dort eine Sonderrolle: Infopath Formularvorlagen können dort in einer so genannten Formularbibliothek gespeichert werden. XML also sogar versioniert. Mit MOSS 2007 können Infopath Formulare auch in so genannte Workflows integriert werden - eine Neuerung in 2007 und ein echter Benefit.

Auf liest man daher vollkommen richtig:

Da Anwender zum Entwerfen wie auch Ausfüllen der Formulare auf die kostenpflichtige Software angewiesen sind, beschränkt sich die Zielgruppe im Wesentlichen auf Unternehmen mit homogenen Arbeitsumgebungen

Ich nutze Infopath in einer so genannten homogenen Arbeitsumgebung und kann daher alle Stärken ausnutzen - mit eine Entscheidung für Infopath. Ja mit überhaupt der Grund, auf Infopath gestoßen zu sein.

Aus eigener, leidvoller Erfahrung kann ich sagen:

Infopath begeistert, irgendwie, aber es hat seine Grenzen. Docbook beispielsweise möchte ich nicht in Infopath abbilden müssen (Anmerkung: Infopath ist formularbasiert, während das Docbook Schema textbasiert ist, dies würde nicht oder nur schwer funktionieren!). Die Erstellung der Formulare führt zu so manchem Ärgernis, gerade Layout wird immer wieder zur Gratwanderung, wenn es um Views geht, die für den Print ausgelegt sind.

Die XML, XSD und XSL Formate auf der Entwicklungsstufe sind proprietär. Zwar unterstützt Infopath offiziell den Export nach Word, nur nebenbei jedoch wird klar, dass dies ein komplettes XSLT Stylesheet erfordert.

So, nun wissen die ein oder anderen, über was ich da immer wieder mal schreibe und ich hoffe, ich habe auch anderen, die eher zufällig hier landen, einen kleinen Einstieg geben können.

 

Auch was dazu sagen?