Beratung und Entwicklung - Mehr Produktivität für Microsoft Office
Dieses Projekt ist ein typisches Beispiel dafür, wie Word, Excel und Outlook durch eine Windows Forms Anwendung automatisiert werden können. Programmiert unter C# 4.0 mit einer Prise aus der Redemption Bibliothek.
In einer Rechtsanwaltsfirma sollen die Verarbeitung der Fremdgeldzahlungen automatisiert werden. Der Arbeitsablauf verbindet die Buchhaltung (wo die Zahlungseingänge aufgrund des Betreffs einer Akte zugeordnet werden), die Allgemeine Verwaltung (die den Prozess überwacht), und die einzelnen Anwälte, die die Akte bearbeiten und allein über das endgültige Ziel der Zahlung entscheiden).
Zukünftig soll der Workflow über SharePoint oder ein anderes System abgewickelt werden. Für die kommenden zwei bis drei Jahre aber würde eine schnelle und preisgünstige Lösung von großem Nutzen für die Allgemeine Verwaltung sein, die zur Zeit manuell Word Formulare erstellt und per E-Mail versendet.Somit werden folgende Anforderungen formuliert:
Es ist eine Anwendung zu erstellen, die den manuelle Prozess in Word, Excel und Outlook abbildet und beschleunigt. Zum Zeitpunkt des Prototypen wird Office 2003 eingesetzt, aber die Planungen für den Office 2010-Rollout sind im Gange; die Anwendung soll mit beiden Versionen funktionieren.
Eine Windows Forms Anwendung wurde erstellt unter Verwendung von C# 4.0 als Programmiersprache. Die Bibliothek "Redemption" von Dmitry Streblechenko wurde benutzt, um die E-Mail-Erstellung in Outlook zu erleichtern (siehe www.dimastr.com). Zusätzlich nutze ich die Bibliothek NLog (http://nlog-project.org) für Tracing und Fehler-Logs.
Es gibt ein einfache Benutzerschnittstelle, in der der Benutzer die Excel-Quelldatei auswählen und den Prozess starten kann. Alle einzelnen Arbeitsschritte werden durch "BackgroundWorker" Komponenten übernommen, damit das UI den jeweiligen Stand anzeigen kann und nicht einfriert (somit kann der Benutzer die Verarbeitung auch abbrechen):
Das gesamte Projekt benötigte 120 Stunden für Planung, Entwicklung, Administrative Aufgaben und für die Änderungen nach dem Prototypen. Dabei fielen mindestens 40 Stunden für Change Requests und zusätzliche Aufgaben an, die ursprünglich nicht vorgesehen waren. Auf der anderen Seite konnte ich Zeit sparen durch die Nutzung von Code-Fragmenten, die sich anderen Projekten verdanken (z.B. die Nutzung des Interwoven API und die Einbindung/Konfiguration der NLog-Bibliohek).
Die Anwendung wird vom IT Management nicht wirklich geschätzt aus folgenden Gründen: "Wird doch nur von einer Handvoll Benutzer eingesetzt", und "Ist nur eine lokale Anwendung, die gar nicht in's große Bild passt". Aber der Zeitgewinn für diese Handvoll Benutzer ist groß, da sie nicht mehr manuell Daten von A nach B schaufeln müssen. Es wurde geschätzt, dass ca. 3 bis 4 Wochenstunden in der Allgemeinen Verwaltung gespart werden. Somit wurde der Break-Even nach ca. 30 Wochen erreicht.
Die Anwendung ist wie üblich objektorientiert aufgebaut.
Wie üblich bei Anwendungen, die mit Office-Programmen "sprechen", müssen alle Referenzen sorgfältig aufgelöst werden, um Speicherfehler und Probleme zu vermeiden. Dies gilt besonders für Outlook.
Für die Versionskontrolle setze ich Mercurial Tortoise ein. Das MSI Setup erstelle ich mit WIX und nutze dafür MSIFactory von Indigo Rose Software.