Mittwoch, 10. November 2004 15h00, Stamitzsaal Entwicklung einer Web-Anwendung für das Dienstreisemanagement auf Basis der Ulrich Volkmer Innenministerium Baden-Württemberg, Stuttgart Carsten Czarski ORACLE Deutschland GmbH, München Schlüsselworte:, Workflow, Dienstreise-Management Zusammenfassung: Der Artikel beschreibt, wie die Anforderungen an ein Dienstreise-Managementsystem im Innenministerium Baden-Württemberg mit der Oracle HTML DB umgesetzt wurden. Anhand eines Prototypen, der auf der DOAG-Konferenz vorgestellt wird, wird beschrieben, welche Anforderungen im Fokus standen, welche -Komponenten zur Umsetzung verwendet wurden und welche Erfahrungen dabei gemacht wurden. Ausgangslage In der Landesverwaltung Baden-Württemberg wird die Reisekostenabrechnung (Festsetzung und Auszahlung von Reisekostenerstattungen nach dem Landesreisekostengesetz und anderen Vorschriften) normalerweise dezentral, also durch die Haushaltsreferate der jeweiligen Beschäftigungsdienststellen durchgeführt. Hierfür steht seit vielen Jahren eine selbstentwickelte Client-Server- Anwendung (Windows-Client, Oracle-Datenbank, Zugriff über ADO/OleDB) zur Verfügung. Diese Anwendung setzt bei der Erfassung des Reisekosten-Erstattungsantrags auf und unterstützt im Rahmen der Reisekostenabrechnung unter anderem folgende Aufgaben:
KONFERENZ Datenübergabe an verschiedene Mittelbewirtschaftungsprogramme Erstellung und Versand der Erstattungsmitteilung über E-Mail Mitteilung evtl. anfallender steuerpflichtiger Anteile an die Gehaltsabrechnung Für folgende Aufgabenbereiche ist bislang noch keine geeignete IuK-Unterstützung vorhanden: Dienstreiseantrag und Dienstreisegenehmigung Reisemittelbeschaffung Reisekosten-Erstattungsantrag einschließlich Datenübergabe an das Reisekosten-Abrechnungsverfahren. Ziele der Anwendung Es soll ein vorgangsorientiertes Dienstreise-Managementsystem mit folgender Funktionalität erstellt werden: 1. Erfassung, Speicherung und Weiterleitung des Dienstreiseantrags 2. Genehmigung und Weiterleitung. Die Weiterleitung erfolgt in jedem Fall an den Antragsteller und u.u. (wenn Reisemittel angefordert wurden) an die Reisestelle 3. Unterstützung bei der Beschaffung von Reisemitteln durch die Reisestelle 4. Informationen an den Vertreter des Reisenden (Optional) 5. Datenübernahme aus Dienstreiseantrag in den Reisekosten-Erstattungsantrag 6. Erfassung, Speicherung und Weiterleitung des Reisekosten-Erstattungsantrags 7. Nach Genehmigung des Reisekosten-Erstattungsantrags medienbruchfreie Übernahme der Daten an das Reisekosten-Abrechnungsverfahren Die Anwendung soll behördenübergreifend in einem IuK-Zentrum der Landesverwaltung betrieben werden können und muss daher mandantenfähig sein. Clientseitig sollen außer einem Internet-Browser keine weiteren Installationen erforderlich sein. Mit der geforderten Datenübergabe an das vorhandene Reisekosten-Abrechnungsprogramm kann ein durchgehender elektronischer Workflow von der Erstellung des Dienstreiseantrags bis zur Zahlbarmachung der Reisekosten- Erstattung erreicht werden. Umsetzung mit der Oracle Die Oracle wurde nach ersten Tests als geeignete Basis für die geplante Anwendung angesehen. Die erlaubt die assistentengestützte Entwicklung von datenbankbasierten Web-Anwendungen. Komponenten wie Berichte oder Formulare können per Mausklick erstellt und in die
Anwendung aufgenommen werden. Für die Implementierung zusätzlicher Geschäftslogik steht die Oracle-Programmiersprache PL/SQL zur Verfügung. Zur Entwicklung und Nutzung der Anwendungen ist keine zusätzliche Software auf dem Client-PC nötig, ein standardkonformer Web-Browser reicht aus. Um eine entwickelte Anwendung zu verteilen, reicht das Versenden der Intranet- Adresse (URL) aus. Inbesondere diese Fähigkeit passt sehr gut zu den Anforderungen an das Dienstreise-Managementsystem. Beschreibung der Anwendung Im folgenden werden die wichtigsten Bestandteile des Dienstreise-Managementsystems kurz beschrieben. Zusätzlich wird erläutert, welche - Komponenten zum Einsatz kamen und welche Besonderheiten zu beachten sind. Benutzerrollen Das Verfahren unterscheidet zwischen den Benutzerrollen Antragsteller Genehmiger Vertreter des Antragstellers Vertreter des Genehmigers Reisestelle Reisekostenstelle Die Benutzerrollen werden durch registrierte Benutzerkonten, denen ein Passwort zugewiesen wird, abgesichert. Im Prototypen wird die in der eingebaute Benutzerverwaltung verwendet. Im späteren Produktivbetrieb ist natürlich eher die Benutzer-Authentifizierung per LDAP-Server zu empfehlen. Beim Umschalten auf den LDAP-Server sind keine Änderungen an der Anwendung nötig. Auf Papierbelege mit Unterschrift kann daher verzichtet werden. Jedem Benutzer kann eine oder mehrere Rollen zugeordnet werden. Dienstreiseantrag Nach der Anmeldung an der Anwendung ruft der Anwender den Bereich DIENSTREISE BEANTRAGEN auf. Ein Dienstreiseantrag wird durch Einträge in Datenbanktabellen repräsentiert. Mit -Reports wird dem Anwender eine Übersicht über die bereits vorhandenen Dienstreiseanträge gezeigt. Eine Schaltfläche verzweigt zur Neueingabe eines Dienstreiseantrags. Diese Seite ist als -Formular realisiert.
KONFERENZ Abb. 1: Erfassung und Weiterleitung eines Dienstreiseantrags Vor dem Speichern werden die in der vorhandenen Validations genutzt, um zu prüfen, ob in allen Pflichtfeldern Angaben gemacht wurden. Darüber hinaus wären auch komplexere Validierungen möglich; bspw. könnte geprüft werden, ob eingegebene Beträge positiv sind. Nach erfolgreicher Prüfung der Eingaben wird der Dienstreiseantrag als Zeile in der Datenbanktabelle gespeichert. Jeder Dienstreiseantrag enthält Informationen über den Antragsteller und den aktuellen Status. Dienstreise-Genehmigung Die Beziehungen zwischen Mitarbeitern und deren Vorgesetzten sind in den Stammdatentabellen der Anwendung hinterlegt. Nachdem der Dienstreiseantrag vom Antragsteller gespeichert wurde, kann der Vorgesetzte ihn unter DIENSTREISE GENEHMIGEN ansehen. Auch hier werden -Reports zur Darstellung der Übersicht verwendet. Der Vorgesetzte kann nun einen Dienstreiseantrag aufrufen, daraufhin wird auf eine Seite mit einem -Formular verzweigt. Im Gegensatz zum bereits beschriebenen Formular zur Erfassung des Dienstreiseantrags kann hier jedoch nur der Status auf GENEHMIGT oder NICHT GENEHMIGT gesetzt werden. Beim Speichern wird in der Status in der Datenbanktabelle entsprechend geändert. Zusätzlich wird durch einen -Prozess gleichzeitig ein vorbereiterer Reisekostenantrag für diese Dienstreise erstellt, der bereits mit den aus dem Dienstreiseantrag bekannten Daten vorbelegt wird. Der Inhalt des Prozesses ist eine SQL INSERT-Anweisung sie fügt eine Zeile in die entsprechende Tabelle ein.
Abb. 2: Erstellung eines leeren Reisekostenantrags bei Genehmigung der Dienstreise Reisekosten-Erstattungsantrag Der Reisekosten-Erstattungsantrag ist das umfangreichste Formular in der Anwendung. Auch dieses Formular wurde zunächst mit dem -Assistenten FORM ON TABLE erstellt und dann anhand der Anforderungen weiterentwickelt 1. Um dem Anwender die Arbeit so einfach wie möglich zu gestalten, werden viele Formularelemente analog zu Formularen in Client/Server-Anwendungen automatisch aktiviert bzw. deaktiviert oder mit berechneten Werten gefüllt. HTML-Formulare können auch solche Anforderungen erfüllen. Zur Realisierung wird JavaScript verwendet. Die Funktionalität wird dabei zunächst als JavaScript-Funktion zur Verfügung gestellt und später von den einzelnen HTML- Formularelementen mit Hilfe von Event-Handlern aufgerufen. Ein Beispiel ist der Event-Handler onchange; dieser wird bei Änderungen in einem HTML-Formular aktiv. Somit kann bei jeder Änderung eine JavaScript-Funktion aufgerufen werden, die abhängig von der Eingabe andere Formularelemente aktiviert oder deaktiviert. Diese Fähigkeit wird von allen gängigen Browsern (bspw. Internet Explorer, aktuelle Netscape-Versionen, Mozilla oder Opera) unterstützt. 1 How To-Dokument im Oracle Technet: http://www.oracle.com/technology/products/database/htmldb/howtos/ howto_form_layout.html
KONFERENZ Der JavaScript-Code wird in der -Seitendefinition im PAGE HEADER eingetragen. Die JavaScript-Funktion wird beim Formularelement mit dem HTML onchange-event angesprchen. Dies wird unter HTML FORM ELEMENT ATTRIBUTES eingetragen 2. Abb. 3: Reisekosten-Erstattungsantrag Eine Besonderheit in diesem Formular ist die Anzahl der Formularelemente. In der Version 1.5 der ist diese noch auf 100 begrenzt. Zwar können mehr als 100 Elemente dargestellt werden, Eingaben in die Elemente ab 100 werden jedoch beim Absenden der Seite (Page submit) nicht von der entgegengenommen. Als Workaround wurde auch hier JavaScript eingesetzt. Es wurde ein versteckte (HIDDEN) Element mit Namen BUFFER aufgenommen. Wenn auf die Schaltfläche zum Speichern der Eingaben geklickt wird, wird zunächst eine JavaScript-Funktion aktiviert. Diese speichert die Inhalte aller Formularelemente, die über die Grenze von 100 hinausgehen, kommasepariert im Element BUFFER. Somit werden beim Page submit nicht mehr als 100 Werte an die übergeben. Bevor die Eingaben in der Datenbanktabelle gespeichert werden, wird das Feld BUFFER mit PL/SQL Logik wieder in die Einzelwerte zerlegt. 2 How To-Dokument im Oracle Technet: http://www.oracle.com/technology/products/database/htmldb/howtos/ htmldb_javascript_howto2.html
Fazit Die Oracle eignet sich gut zur Umsetzung der Anforderungen an das Dienstreise-Managementsystem. Während der Erstellung des Prototypen wurden folgende Erfahrungen gemacht: Geringer Lern- und Einarbeitungsaufwand Hochproduktive Entwicklungsumgebung Vorzeigbare Ergebnisse stehen innerhalb weniger Tage zur Verfügung Gut geeignet für iteratives und prototypisches Vorgehen Anwendungen können auch ohne tiefgehendes Entwickler-Know-How erstellt werden Pflegbare und benutzerfreundliche Anwendungen Der beschriebene Prototyp wurde in 4 Tagen realisiert. Darin ist die Einarbeitung in die enthalten. Eine vorherige Schulung fand nicht statt. Während der Entwicklungsphase wurde an zwei halben Tagen Unterstützung durch Oracle Consulting in Anspruch genommen. Kontaktadressen: Ulrich Volkmer Innenministerium Baden-Württemberg Dorotheenstr. 6 70173 Stuttgart Telefon: +49(0)711 231-3825 Fax: +49(0)711 231-5000 E-Mail: ulrich.volkmer@im.bwl.de Carsten Czarski ORACLE Deutschland GmbH Riesstr. 25 D-80992 München Telefon: +49(0)89-1430 2116 Fax: +49(0)89-1430 2977 E-Mail: carsten.czarski@oracle.com Internet: http://www.oracle.com/de