Entwickeln mit Office 2003
Artikel erschienen in Swiss IT Magazine 2005/11
Office hat sich in den vergangenen Jahren immer mehr zur Entwicklerplattform gemausert. Mit etwas Programmieraufwand lassen sich viele Aufgaben automatisieren, die Usability für die Benutzer verbessern und Daten von unterschiedlichen Quellen für die weitere Verarbeitung integrieren. Allerdings sind die Möglichkeiten, eigene Zusatzfunktionen einzubauen, vielschichtig und daher nicht einfach zu überblicken. Zudem stehen nicht alle Verfahren in allen Applikationen zur Verfügung. Meist beschränken sie sich auf Word und Excel.
Einen der wichtigsten Eckpfeiler für die Entwicklung von massgeschneiderten Office-Lösungen bildet die XML-Unterstützung in den Dateiformaten. Neben dem bisher verwendeten binären Datenformat sind Word und Excel in der Lage, Dokumente bzw. Arbeitsblätter in reinem XML zu speichern. Microsoft hat dazu die zwei W3C-konformen XML-Schema (XSD) mit der Bezeichnung WordprocessingML und SpreadsheetML konzipiert. Diese beschreiben, wie Word- und Excel-Dokumente in XML aufgebaut sein müssen. Die Definitionen der beiden Schema wurden von Microsoft offengelegt und sind via MSDN Network (msdn.micro soft.com) abrufbar.
Word- und Excel-Dokumente im offenen XML-Format haben den Vorteil, dass sie sich aus einer eigenen Anwendung viel einfacher generieren lassen. So könnte beispielsweise eine Server-Applikation mit Informationen aus einer Datenbank einen Report im Word- oder Excel-Format erzeugen und diesen an verschiedene Benutzer verschicken. Die Verwendung des XML-Formates bietet aber auch den Vorteil, dass es von anderen Programmen einfacher interpretiert und weiterverarbeitet werden kann. XML-Dokumente können zum Beispiel von Suchmaschinen einfacher indiziert, von Drittprogrammen um weitere Daten ergänzt oder per XSLT (XSL Transformations) in ein komplett anderes Format überführt werden.
Neben den XML-Dateiformaten kann man in Word und Excel auch eigene XML-Schema verwenden. Damit können Daten, die in Dokumenten eingebettet sind, mit Hilfe von XML-Tags beschrieben werden. So lassen sich etwa Informationen wie Preise, Mengen oder Bestellnummern in einer Bestellung mit entsprechenden Tags auszeichnen. Dadurch wird es möglich, in einem Dokument gespeicherte Daten durch ein anderes Programm auszulesen oder einzufügen. Wer bislang bestimmte Informationen aus einem Excel-Spreadsheet auslesen wollte, musste jeweils die entsprechende Zelladresse oder den Bereich angeben. Das führte vor allem dann zu Problemen, wenn das Arbeitsblatt umgestaltet wurde und sich die Zelle dadurch nicht mehr an derselben Stelle befand.
Wie einfach und elegant sich Daten aus einem mit XML-Schema beschriebenen Dokument auslesen lassen, lässt sich an einem Beispiel mit XPath aufzeigen: Möchte man etwa die Bestellnummer aus einer Auftragsbestätigung auslesen, reicht bereits der XPath-Ausdruck /OrderConfirmation/OrderNumber, um an die Information zu gelangen.
Die Verwendung von eigenen XML-Schema in Dokumenten ist vor allem bei der automatisierten Abwicklung von Geschäftsprozessen nützlich. Ausserdem können so unter Verwendung des Smart-Document-Konzepts die Dateneingabe und der Umgang mit komplexen Dokumenten verbessert werden.
Eine zentrale Rolle bei der Verarbeitung von XML-Daten im Umfeld von Office 2003 nimmt InfoPath ein. Dabei handelt es sich um eine Formularlösung, die Daten direkt im XML-Format lesen und ablegen kann. InfoPath-Formularen lässt sich ein eigenes XML-Schema zuweisen, das nicht nur die enthaltenen Daten und die Struktur des Dokuments beschreibt, sondern auch zur Validierung der Benutzereingaben herangezogen werden kann. Für das Design der Formulare stellt InfoPath zahlreiche Formatierungsoptionen und neben den üblichen Formularelementen auch einige Spezial-Controls wie eine Rich-Text-Box, einen Datums-Picker oder die sogenannten Repeating Regions zum Abbilden von XML-Hierarchien zur Verfügung. InfoPath kann Daten auch direkt aus einer Datenbank (nur Access oder SQL Server) oder von einem Web-Service konsumieren.
Mit der Smart-Documents-Technologie lassen sich Word- oder Excel-Dateien mit Eingabehilfen und Zusatzfunktionen ausstatten, die dem Benutzer den Umgang mit Dokumenten erleichtern sollen. Diese Hilfen werden auf der rechten Bildschirmseite via Task Panes eingeblendet und reagieren kontextsensitiv auf den Bereich des Dokumentes, der gerade angewählt worden ist. Ein typisches Einsatzgebiet eines Smart Document wäre etwa ein Excel-Arbeitsblatt für die Hypotheken-Berechnung. Per Task Pane könnten alle Felder für die Dateneingabe eingeblendet werden, die für die Kalkulation der Hypothek benötigt werden. Auf Knopfdruck liessen sich dann die Daten in das Kalkulationsblatt einfügen und die notwendigen Berechnungen durchführen. Der Vorteil für den Benutzer: Er kann sich auf die Dateneingabe konzentrieren und muss sich nicht erst mühsam durch die Tabelle navigieren.
Für die Programmierung von Smart Documents stellt Microsoft mit dem ISmartDocument-Interface, dem Information Bridge Framework (IBF) und Visual Studio Tools für Office Version 2005 (VSTO 2005) drei Werkzeuge bereit. ISmartDocument ist für COM-basierte Entwicklungen gedacht, kann aber über ein Wrapper-Interface von Vertigo Software (www.vertigosoftware.com) auch auf Basis von .Net genutzt werden. Eine echte .Net-Umgebung mit entsprechendem Programmierkomfort für die Smart-Document-Entwicklung wird aber erst mit dem für kommenden Herbst angekündigten
VSTO 2005 geboten. Die aktuelle Version, Visual Studio Tools for Office 2003, bietet keinen Support für Smart Documents. Eine dritte Variante stellt das Information Bridge Framework (IBF) bereit, mit dem sich Daten aus Business-Applikationen in Office-Anwendungen integrieren lassen.
Über die Research Library Services lässt sich die in den Office-Anwendungen integrierte Suchfunktion um eigene Informationsquellen erweitern. Ein Unternehmen kann etwa die Adressdaten seines CRMs, die Artikeldatenbank eines E-Shops oder sein Intranet in die Office-Suche einbinden. Das Interessante dabei ist, dass sich Suchresultate mit bestimmten Aktionen ausstatten lassen. Eine gefundene Adresse etwa könnte dann über eine Einsetzen-Funktion direkt in das gerade geöffnete Dokument eingefügt werden. Um eine neue Quelle in die Research Library Services zu integrieren, muss diese erst mit einer Web-Services-Schnittstelle ausgestattet werden, welche die Suchanfrage entgegennimmt und die entsprechenden Resultate zurückliefert.
Jeder, der schon mit Office XP oder 2003 gearbeitet hat, kennt die Smart Tags, die direkt im Dokument kontextsensitive Hilfen und Funktionen einblenden. Sie werden eingeblendet, wenn der Benutzer ein Börsenkürzel oder den Namen eines Kontaktes eingibt, der in der Outlook-Kontaktdatenbank vorhanden ist.
Sobald ein Begriff von der Smart-Tag-Funktion erkannt wurde, wird dieser mit einer gepunkteten, roten Linie markiert. Schiebt man nun den Mauszeiger über den Begriff, wird ein Button mit einem Pull-Down-Menü eingeblendet, das dem Benutzer die im aktuellen Kontext verfügbaren Befehle offeriert. Beim Börsensymbol etwa könnten nun direkt aus der Office-Anwendung Daten wie Börsenkurse oder Reports zur betreffenden Firma abgerufen werden.
Entwickler können Office 2003 mit eigenen Smart Tags ausstatten, die beim Eintippen von bestimmten Begriffen eingeblendet werden. So könnte etwa ein Smart Tag programmiert werden, das nach der Eingabe eines Kundennamens ein Menü einblendet, über welches dessen Adresse oder Bestellstatus abgerufen werden kann. Wie bei den Smart Documents stehen auch für die Implementation von Smart Tags unterschiedliche Technologien zur Verfügung. Einfache Smart Tags können mit Hilfe von Microsoft Office Smart Tag Lists (MOSTL) definiert werden. Das sind XML-Dateien, in denen sich die zu erkennenden Begriffe und die möglichen Aktionen deklarativ beschreiben lassen. Smart Tags mit komplexerer Funktionalität werden in Form von COM-DLLs implementiert. Wer Smart Tags auf Basis von .Net entwickeln möchte, muss auf VSTO 2005 warten. Dieses bietet Support für Smart Tags, welcher sich allerdings auf Word und Excel beschränkt.
Technologien für die Entwicklung mit Office 2003