View
230
Download
0
Category
Preview:
Citation preview
Fakultät Technik und Informatik Faculty of Engineering and Computer Science Department Informatik Department of Computer Science
Matthias Hupe
Geschäftsprozess-Management mit Microsoft Office 2007 Unterstützung des Bestellwesens beim VCI
Bachelorarbeit
Bachelorarbeit eingereicht im Rahmen der Bachelorprüfung im Studiengang Angewandte Informatik am Department Informatik der Fakultät Technik und Informatik der Hochschule für Angewandte Wissenschaften Hamburg Betreuender Prüfer: Prof. Dr. rer. nat. Bernd Kahlbrandt Zweitgutachter: Prof. Dr. rer.nat. Michael Neitzke Abgegeben am 14. März 2007
Matthias Hupe
Geschäftsprozess-Management mit Microsoft Office 2007 Unterstützung des Bestellwesens beim VCI
Matthias Hupe
Thema der Bachelorarbeit
Geschäftsprozess-Management mit Microsoft Office 2007 – Unterstützung des
Bestellwesens beim VCI
Stichworte
Geschäftsprozess, Workflow, Windows Workflow Foundation, Custom Activity,
SharePoint Designer, Microsoft Office SharePoint Server, Microsoft Office System
2007, Portal, InfoPath, Forms Server
Kurzzusammenfassung
Diese Arbeit beschreibt, wie das Bestellwesen beim Verband der Chemischen
Industrie als Geschäftsprozess mit elektronischer Unterstützung umgesetzt und an die
aktuellen Anforderungen angepasst wird. Mit Microsoft InfoPath Formularen werden
Bestellvorgänge angelegt, bearbeitet und in einem Microsoft Office SharePoint Server
zentral abgelegt. Besondere Herausforderung ist die Integration bestehender Backend-
Systeme (u.a. Lieferantenstammdaten- und Buchhaltungssoftware). Existierende
Schnittstellen müssen zuerst auf Ihre Eignung hin geprüft, oder in Eigenentwicklung
implementiert werden.
Die Interaktion der Benutzer erfolgt über ein Formular, das sich –je nach Bearbeiter–
unterschiedlich präsentiert und jeweils die Informationen anzeigt, die für den aktuellen
Bearbeitungsschritt nötig sind.
Ein Workflow auf Basis der Windows Workflow Foundation verschickt
Benachrichtigungen, führt Statusübergänge durch und archiviert nach Abschluss des
Vorgangs angefügte Dokumente in einem Langzeitarchivierungssystem.
Matthias Hupe
Title of the paper
Business process management with Microsoft Office 2007 – Supporting the Order
Management at VCI
Keywords
Business process, Workflow, Windows Workflow Foundation, Custom Activity,
SharePoint Designer, Microsoft SharePoint Portal Server, Microsoft Office System
2007, Portal, InfoPath, Forms Server
Abstract
This thesis describes the implementation of the ordering process at the Association of
Chemical Industry (VCI) as a business process with IT-based assistance conforming to
current requirements. New order processes are started and edited with Microsoft
InfoPath forms, saved in a Microsoft Office SharePoint Server. A special challenge is
the integration of existing backend systems (e.g. vendor data and accounting software).
Adequate interfaces have to be evaluated first, or developed separately.
The interaction is handled by forms that are presented in different views to the users,
depending on the role the user corresponds to and which only shows information
needed in the actual step.
A workflow, based on Windows Workflow Foundation sends notifications, changes
states and archives attached files in a long time archive and storage system.
Gliederung Abbildungsverzeichnis ....................................................................................................... 1
Tabellenverzeichnis ........................................................................................................... 1
Abkürzungsverzeichnis ...................................................................................................... 2
1 Einführung .................................................................................................................. 3
1.1 Einleitung ............................................................................................................................. 3
1.2 Inhalt der Arbeit ................................................................................................................... 4
1.3 Motivation ............................................................................................................................ 5
1.4 Motivation seitens des VCI .................................................................................................. 5
1.5 Beteiligte Firmen und Personen........................................................................................... 5
2 Grundlagen ................................................................................................................. 7
2.1 Der Portalbegriff .................................................................................................................. 7
2.2 Microsoft SharePoint ........................................................................................................... 7
2.3 Microsoft Office InfoPath 2007 ............................................................................................ 9
2.4 Microsoft Office Forms Server 2007 .................................................................................. 10
2.5 Microsoft .NET ................................................................................................................... 10
2.6 Active Directory .................................................................................................................. 11
2.7 Visual Studio 2005 .............................................................................................................. 11
2.8 SharePoint Designer ........................................................................................................... 12
3 Projektvorstellung .................................................................................................... 13
3.1 bisheriger Projektablauf ..................................................................................................... 14
3.2 Anforderungen ................................................................................................................... 14
3.3 Übersicht der Backendsysteme .......................................................................................... 15
3.4 Risikobewertung ................................................................................................................ 18
4 Analyse ..................................................................................................................... 19
4.1 Prozessfluss ........................................................................................................................ 19
4.2 Schnittstellenanalyse ......................................................................................................... 24
4.3 Benachrichtigungen ........................................................................................................... 28
4.4 Konvertierung in PDF ......................................................................................................... 28
5 Design ...................................................................................................................... 30
5.1 Benutzer und Gruppen ....................................................................................................... 30
5.2 Vorgangsstatus ................................................................................................................... 31
5.3 Konfiguration einer SharePoint-Webseite ......................................................................... 32
5.4 Spezifikation der Schnittstellen.......................................................................................... 36
5.5 Formular ............................................................................................................................. 43
5.6 Workflow-Aktivität: GetFileFromXmlActivity..................................................................... 49
6 Implementierung ...................................................................................................... 50
6.1 Lieferantenstammdaten .................................................................................................... 50
6.2 Assets ................................................................................................................................. 52
6.3 Syska ................................................................................................................................... 52
6.4 Archivierung ....................................................................................................................... 53
7 Deployment .............................................................................................................. 54
8 Resümee................................................................................................................... 58
8.1 Zusammenfassung der Arbeit ............................................................................................ 58
8.2 Diskussion........................................................................................................................... 59
8.3 Fazit und Ausblick............................................................................................................... 61
A. Glossar ..................................................................................................................... 62
B. Literaturverzeichnis .................................................................................................. 63
C. Index ........................................................................................................................ 65
D. Anlagen .................................................................................................................... 67
D.1 StapelBuchungSave .................................................................................................................. 67
D.2 Screenshots der Ansichten ...................................................................................................... 68
D.3 Datenschema ........................................................................................................................... 72
E. Anhang ..................................................................................................................... 75
Seite 1
Abbildungsverzeichnis
Abbildung 1: Microsoft Office SharePoint Server Komponenten .............................................. 9
Abbildung 2: SharePoint Designer ............................................................................................ 12
Abbildung 3: Übersicht Prozessfluss......................................................................................... 13
Abbildung 4: Übersicht Backendsysteme ................................................................................. 17
Abbildung 5: Bestellprozessfluss .............................................................................................. 19
Abbildung 6: PDF-Konvertierung .............................................................................................. 29
Abbildung 7: Aktivitäten nach Gruppen ................................................................................... 30
Abbildung 8: Status des Vorgangs ............................................................................................ 31
Abbildung 9: Liste Skontosätze ................................................................................................. 33
Abbildung 10: SharePoint-Ansicht "Laufende Vorgänge" ........................................................ 33
Abbildung 11: SharePoint Gruppe: Mitglieder ......................................................................... 35
Abbildung 12: Forms Server konfigurieren .............................................................................. 36
Abbildung 13: Klassendiagramm Asset.Desk-Schnittstelle ...................................................... 40
Abbildung 14: HanseVisionSyskaSoapWrapper ....................................................................... 41
Abbildung 15: Buchungsstapel in Syska SQL REWE FiBu .......................................................... 41
Abbildung 16: Positionsübersicht ............................................................................................. 47
Abbildung 17: Asset.Desk Service DataSet ............................................................................... 50
Abbildung 18: Lieferanteninformationen ................................................................................. 52
Abbildung 19: InfoPath Datenverbindungen ........................................................................... 56
Abbildung 20: Formularansicht Bestellung .............................................................................. 57
Tabellenverzeichnis Tabelle 1: Anwendungsfall neue Bestellung ............................................................................ 20
Tabelle 2: Anwendungsfall neue Lieferung .............................................................................. 20
Tabelle 3: Anwendungsfall neue Rechnung ............................................................................. 21
Tabelle 4: Anwendungsfall Rechnung freigeben ...................................................................... 21
Tabelle 5: Anwendungsfall Rechnungsdaten exportieren ....................................................... 22
Tabelle 6: VendorView ............................................................................................................. 25
Tabelle 7: Asset-Felder ............................................................................................................. 26
Seite 2
Abkürzungsverzeichnis
AD Active Directory
B2B Business to Business
B2C Business to Consumer
CLR Common Language Runtime
COM Component Object Model
DFS Distributed File System
EDV elektronische Datenverarbeitung
IDE Interarctive Development Environment
ITU-T International Telecommunications Union - Telecommunikation
KPI Key Performance Indicator
LDAP Lightweight Directory Access Protocol
MOSS Microsoft Office SharePoint Server
PDA Personal Digital Assistant
PDF Portable Document Format
SSL Secure Sockets Layer
TIFF Tagged Image File Format
UDCX Universal Data Connection File
VCI Verband der chemischen Industrie
WCF Windows Communication Foundation
WPF Windows Presentation Foundation
WSS Windows SharePoint Services
WWF Windows Workflow Foundation
XML Extensible Markup Language
XOML Extended Orchestration Markup Language
XSD XML Schema Definition
Hinweis zum Copyright:
.NET, Active Directory, Forms Server, InfoPath, Microsoft, Microsoft Office SharePoint Server, SharePoint, SharePoint Designer, SQL Server, Visual Studio, Windows, Windows CardSpace, Windows Communication Foundation, Windows Presentation Foundation, Windows SharePoint Services, Windows Server und Windows Workflow Foundation sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA, Deutschland und/oder anderen Ländern.
Seite 3
1 Einführung
1.1 Einleitung
Für Unternehmen jeder Größenordnung ist eine elektronische Unterstützung von
(alltäglichen) Geschäftsprozessen ein entscheidender Faktor zum Erfolg.
Viele Geschäftsprozesse im Unternehmen nutzen noch nicht die Vorteile einer EDV-
gestützten Optimierung. Dabei handelt es sich u.a. um Genehmigungsprozesse, wie z.B.
Urlaubsanträge, Rechnungs- oder Dokumentfreigaben.
„Ausgaben in die Geschäftsprozessoptimierung zahlen sich wirtschaftlich aus.“ Dies
belegen Studien, wie z.B. [IDS2005].
Im Bereich der Geschäftsprozesse steckt noch sehr viel Potenzial und nicht zuletzt auch
Einsparungsmöglichkeiten für die Unternehmen. Doch zuerst entsteht ein finanzieller
Aufwand, um die nötige Infrastruktur bereit zu stellen und die vorhandenen Prozesse zu
analysieren, optimieren und implementieren. Dies gilt sowohl für innerbetriebliche, als
auch unternehmensübergreifende (B2B oder B2C) Prozesse.
Wenn zusätzlich zur Abbildung von Geschäftsprozessen die Zusammenarbeit von Teams
innerhalb einer Abteilung bzw. eines Projektes oder sogar abteilungs- oder
standortübergreifend verbessert und gefördert werden soll, bietet sich der Einsatz einer
Portalsoftware an (der Begriff Portal wird im Grundlagenkapitel definiert).
Immer mehr Unternehmen entscheiden sich derzeit für eine Einführung dieser
Technologie, um Informationen und Dokumente zentral verfügbar zu machen,
Besprechungen zu organisieren, Geschäftsprozesse abzubilden und heterogene
Anwendungen miteinander zu verknüpfen.
Die im 4. Quartal 2006 veröffentlichte dritte Generation des Microsoft Office SharePoint
Servers 2007 bietet alle Möglichkeiten eines Unternehmensportals, ergänzt durch die
Windows Workflow Foundation zur Abbildung von Geschäftsprozessen aller Art. Mit dem
integrierten Forms Server wird ein browserbasierter Zugriff auf InfoPath-Formulare zur
komfortablen Datenerfassung möglich.
Seite 4
1.2 Inhalt der Arbeit
In dieser Bachelorarbeit wird der Beschaffungsprozess des Verbandes der Chemischen
Industrie (im folgenden VCI genannt) als elektronischer Geschäftsprozess abgebildet.
Besondere Herausforderung ist dabei die Einbindung bestehender Systeme, u.a. einer
Buchhaltungssoftware.
Als Plattform wird der Microsoft Office SharePoint Server 2007 genutzt. Die
Programmierung erfolgt unter Visual Studio 2005 komplett in .NET 3.0. Die
Benutzerinteraktion findet mit Hilfe von InfoPath-Formularen statt. Benachrichtigungen
und andere Geschäftsprozessaktivitäten werden auf Basis der Windows Workflow
Foundation umgesetzt. Die Definition der Workflows erfolgt mit Hilfe des SharePoint
Designer.
Begonnen wird mit einer Einführung in die verwendeten Technologien und Begriffe. Im
Rahmen der Projektvorstellung werden Ablauf sowie die Vor- und Nachteile des
bisherigen und des neuen Prozesses beschrieben. Die Anforderungen an den Prozess
werden ebenso genannt, wie die Ziele und erwarteten Verbesserungen, die durch eine
elektronische Unterstützung des Prozesses erreicht werden sollen.
Im Analyseteil wird der Prozessfluss analysiert und mittels UML-Diagrammen
veranschaulicht. Die einzelnen Geschäftsprozessschritte werden identifiziert und die
Schnittstellen zu den beteiligten Backendsystemen beschrieben. Der Fokus liegt dabei
auf der Identifikation und Bewertung der Risikofaktoren.
Die Beschreibung und Diskussion der Architektur und Schnittstellen findet im Abschnitt
Design statt. Die einzelnen Komponenten werden bis auf Klassenebene herunter
modelliert. Die dem InfoPath-Formular zugrunde liegende XML-Schema-Definition (XSD)
sowie die verwendeten Ansichten und Formularlogik werden dargestellt.
Ein Rückblick auf die Implementierungsphase zeigt die Umsetzung der Schnittstellen und
des Formulars. Schwierigkeiten bei der Implementierung werden herausgearbeitet.
Abschließend erfolgen eine Zusammenfassung der Arbeit und ein kritischer Rückblick auf
das Design und die Implementierung. Für die Umsetzung von Geschäftsprozessen in
Folgeprojekten werden Anregungen gegeben, die aus meinen Erkenntnissen dieser
Arbeit entstanden sind.
Ein Ausblick auf weitergehende Möglichkeiten von Unternehmensportalen zur
Unterstützung von Geschäftsprozessen rundet die Arbeit ab.
Seite 5
1.3 Motivation
Das Thema Geschäftsprozesse und deren Umsetzung in eine IT-Infrastruktur interessiert
mich schon seit mehreren Jahren. Besonders spannend und zugleich herausfordernd
finde ich die Schwierigkeit, die unterschiedlichsten Anforderungen an den
Geschäftsprozess mit den Möglichkeiten und Beschränkungen der vorliegenden oder zu
erarbeitenden Architektur in Einklang zu bringen.
Im Februar 2006 begann ich als studentischer Entwickler bei der Layer2 GmbH. Dort
lernte ich die verschiedenen Microsoft-Produkte, wie z.B. SharePoint oder InfoPath
erstmals kennen. Im Hochschulpraktikum im Sommer des gleichen Jahres konnte ich
meine Kenntnisse in diesem Segment vertiefen.
Nach diesem Praktikum fassten die Geschäftsführung der Layer2 und ich den
gemeinsamen Entschluss, meine Bachelorarbeit im Rahmen eines Kundenprojektes zu
schreiben. Mit dem Verband der Chemischen Industrie fand sich schon ein Kunde, der
gern bereit war mir diese Möglichkeit zu geben. An dieser Stelle möchte ich meinen Dank
für diese Chance zum Ausdruck bringen.
1.4 Motivation seitens des VCI
Die Einführung des SharePoint Server 2007 bietet dem VCI eine ideale Gelegenheit, die
Möglichkeiten der Geschäftsprozessunterstützung kennen (und schätzen) zu lernen. Der
Bereich EDV beim VCI bearbeitet seine Eingangsrechnungen schon seit einiger Zeit auf
elektronischem Wege mit Unterstützung eines Formulars.
Wenn jedoch System- oder Abteilungsgrenzen überschritten werden, führt dies zu einer
redundanten Datenerfassung. Daten aus dem Formular können nicht (automatisiert) an
andere Systeme, wie z.B. die Buchhaltungssoftware, übergeben werden.
1.5 Beteiligte Firmen und Personen
An diesem Projekt sind die drei Firmen Verband der Chemischen Industrie e.V. aus
Frankfurt, die HanseVision GmbH und die Layer2 GmbH aus Hamburg beteiligt.
Die Geschäftsverbindung zwischen der Layer2 GmbH und der HanseVision GmbH im
Bereich Consulting und SharePoint-Entwicklung existiert schon seit mehreren Jahren. Die
Layer2 übernimmt dabei die Entwicklung und Programmiertätigkeiten vieler Projekte im
Auftrag der HanseVision und konnte dadurch ein Entwickler-Know-how im Bereich .Net
und SharePoint aufbauen, das die Consulting-Kompetenz der HanseVision gut ergänzt.
Seit 2006 ist die HanseVision mehrheitlich an der Layer2 beteiligt.
Seite 6
Folgende Personen haben neben mir an diesem Projekt mitgewirkt:
Sven Maier, HanseVision: Senior Consultant für die HanseVision und Projektleiter.
Hat die Anforderungsanalyse zusammen mit Stefan Gohr beim VCI vor Ort
durchgeführt. Weiterhin wurde das Projektmanagement, die
Projektkommunikation und das Erstellen einer Aufwandsschätzung von ihm
übernommen.
Stefan Gohr, Layer2: Senior Consultant für die HanseVision und Geschäftsführer
der Layer2. Übernahm die stellvertretende Projektleitung, Konzeption,
Qualitätssicherung und Auslieferung der Lösung beim VCI.
Thiemo Laubach, HanseVision: Hat das Layout für den Design-Prototyp erstellt.
Peter Oberländer, VCI: IT-Leiter beim VCI. Zuständiger technischer und fachlicher
Ansprechpartner beim VCI.
Seite 7
2 Grundlagen
2.1 Der Portalbegriff
Für den Begriff Portal gibt es in der Informatik viele Definitionen. Innerhalb dieser Arbeit
wird ein Portal im Sinne der Definition von Thorsten Gurzki et al [Gurzki04] verstanden:
„Ein Portal ist definiert als eine Applikation, welche basierend auf Webtechnologien
einen zentralen Zugriff auf personalisierte Inhalte sowie bedarfsgerecht auf Prozesse
bereitstellt. Charakterisierend für Portale ist die Verknüpfung und der Datenaustausch
zwischen heterogenen Anwendungen über eine Portalplattform. Eine manuelle
Anmeldung an den in das Portal integrierten Anwendungen ist durch Single-Sign-On nicht
mehr notwendig, es gibt einen zentralen Zugriff über eine homogene
Benutzungsoberfläche. Portale bieten die Möglichkeit, Prozesse und Zusammenarbeit
innerhalb heterogener Gruppen zu unterstützen.“
In [HMD25] werden einige der möglichen Funktionen und Kennzeichen von (Enterprise-)
Portalen aufgelistet: Personalisierung, Suchen, Kollaboration, Web-Oberfläche,
Informationszusammenführung, einheitliche Benutzerschnittstelle und Content-
Management-Funktionen.
[Christ2003] unterscheidet Portale in Prozessportale und Wissensportale. Dort werden
auch weitere Quellen zu den beiden Konzepten gegeben.
2.2 Microsoft SharePoint
Zu der Microsoft SharePoint Technologie werden heute zwei Produkte gezählt:
Die Windows SharePoint Services und der Microsoft Office SharePoint Server 2007.
SharePoint wurde mit den Komponenten SharePoint Team Services und SharePoint
Portal Server erstmals im Jahre 2001 veröffentlicht. Auf den 2002 erschienen Content
Management Server, folgten 2003 die Windows SharePoint Services 2.0 und der
SharePoint Portal Server (SPS). 2006 erschienen die dritte Version der Windows
SharePoint Services und der Microsoft Office SharePoint Server, der eine
Weiterentwicklung des SPS und des Content Management Servers ist.
Die offiziellen Bezeichnungen und Abkürzungen lauten jetzt:
Windows SharePoint Services 3.0 (WSS 3.0)
Microsoft Office SharePoint Server 2007 (MOSS 2007)
Seite 8
2.2.1 Windows SharePoint Services 3.0
Windows SharePoint Services (WSS) ist eine für Lizenzinhaber von Windows Server 2003
kostenlose Zusammenarbeitsplattform, dessen Ziel es ist, die Zusammenarbeit mehrerer
Personen oder Teams zu verbessern. Dazu werden u.a. Bibliotheken und Listen zur
Verfügung gestellt, die individuell anpassbar und als Vorlage importiert oder exportiert
werden können. Mit Hilfe der Office-Clientsoftware (z.B. Word oder Excel) können
Dokumente aller Art bearbeitet und in einem SharePoint Bereich abgelegt werden.
Herausragend ist die besonders tiefe Integration der Office-Produkte. So ist es möglich,
einzelne Elemente einer Excel-Arbeitsmappe auf dem SharePoint zu veröffentlichen und
dort anzeigen oder sogar bearbeiten zu können.
Besprechungen können mit Hilfe von Besprechungsarbeitsbereichen verwaltet werden.
Zur Anzeige von SharePoint Webseiten wird nur ein aktueller Browser benötigt (nicht
unbedingt der Internet Explorer!).
Mit WSS 3.0 wird eine Reihe von Workflows mitgeliefert, die an Listen oder Bibliotheken
gebunden und verwendet werden können. Weiterhin können mit dem SharePoint
Designer eigene Workflows erstellt, oder gar mit Visual Studio komplett neue Workflows
entwickelt werden.
2.2.2 Microsoft Office SharePoint Server 2007
Der Microsoft Office SharePoint Server setzt auf den Windows SharePoint Services auf
und erweitert diesen um viele weitere Funktionen, wie z.B. die Möglichkeit
Geschäftsdaten aus verschiedenen Datenquellen (SAP, Datenbank, Internet)
darzustellen, eingebundene Excel-Arbeitsmappen, browserkompatible Formulare, Key
Performance Indicators, um nur einige zu nennen. Das folgende Schaubild zeigt alle
Bereiche des MOSS 2007.
Zum Vergleich: Die Windows SharePoint Services umfassen nur die rot-schattierten
Bereiche Plattform Services und Zusammenarbeit.
Seite 9
Abbildung 1: Microsoft Office SharePoint Server Komponenten
(dieses Schaubild wurde einer Präsentation von Pierre-Yves Rosat anlässlich der TechDays06 entnommen. Es ist in
weiteren Publikationen anderer Autoren enthalten. Eine ursprüngliche Quelle konnte ich nicht finden.)
Für die Umsetzung dieses Projektes wird der Microsoft Office SharePoint Server 2007 in
der Build-Version 12.0.0.4518 verwendet.
2.3 Microsoft Office InfoPath 2007
Microsofts Formularerstellungs- und Formularbearbeitungssoftware InfoPath ist seit
2003 Bestandteil der Office-Produktpalette.
Zielsetzung ist es, Daten einheitlich und möglichst zentral zu erfassen, abzulegen und, wo
möglich, über Datenverbindungen an andere Systeme zu übermitteln oder abzurufen,
um eine redundante Datenerfassung zu vermeiden. Ein großer Nachteil war aber, dass
dazu InfoPath auf allen Clients installiert werden muss.
Ein InfoPath-Formular basiert auf einem XML-Schema, d.h. sowohl Formularvorlagen,
wie auch ausgefüllte Formulare sind XML-Dateien und können als solche von anderen
Programmen weiterverarbeitet oder sogar erzeugt werden. Ein bereits vorhandenes
XML-Schema kann in eine Formularvorlage eingebunden und verwendet werden.
Mehrere Ansichten eines Formulars ermöglichen Benutzern unterschiedlichen Zugriff auf
dieselben Daten.
Seite 10
Beispiel: Ein Mitarbeiter stellt einen Reiseantrag in der Standardansicht. Der Vorgesetzte
muss diesem zustimmen. Dazu öffnet er das zuvor vom Mitarbeiter erstellte Formular,
gelangt dort aber in eine andere Ansicht, die Felder zur Genehmigung des Antrages
enthält, die nur von ihm bearbeitet werden können.
2.4 Microsoft Office Forms Server 2007
Der Forms Server ist ein eigenständiges Serverprodukt der Office-Reihe. Im MOSS 2007
bereits enthalten, schließt er die Lücke zwischen InfoPath und SharePoint. Mit dem
Forms Server ist es möglich InfoPath Formulare nur mit Hilfe eines Browsers auszufüllen.
Steuerelemente, wie Schaltflächen, Textfelder usw. werden als ASP.NET 2.0 Elemente
dargestellt, ohne dass Regeln, bedingte Formatierungen und Gültigkeitsprüfungen, die in
InfoPath definiert wurden, verloren gehen.
Mit dem Forms Server ist es nicht mehr notwendig, InfoPath auf den Clients zu
installieren. Darüber hinaus können Formulare jetzt auch in Webseiten als eigenes
Element eingebettet werden. Dies ermöglicht es, Formulare im Inter- oder Extranet zu
verwenden.
Leider stehen (noch) nicht alle Steuerelemente und Funktionen im Forms Server zur
Verfügung.
2.5 Microsoft .NET
Microsoft .NET wurde als Konkurrenz zu Suns Java auf den Markt gebracht. Bestandteile
sind die Laufzeitumgebung (Common Language Runtime) und das .NET-Framework, eine
umfangreiche Klassenbibliothek, die als Ausgangspunkt für Eigenentwicklungen dient.
Das erste Mal wurde .NET in der Version 1.0 im Jahre 2002 veröffentlicht, die Version 2.0
erschien im November 2005. Seit dem 6. November 2006 ist die Version 3.0 verfügbar.
Das .NET Framework 3.0 besteht aus dem .NET Framework 2.0, erweitert um die
Windows Communication Foundation (WCF), die Windows Presentation Foundation
(WPF), die Windows Workflow Foundation (WF) und Windows CardSpace (WCS).
Die WCF und WPF sind nicht Thema dieses Reports. Die WF wird im folgenden Abschnitt
0 beschrieben.
Als vertiefende Literatur zum .NET Framework 2.0 empfehle ich [Richter06].
Seite 11
2.5.1 Windows Workflow Foundation
Mit der von Microsoft entwickelten und im .NET Framework 3.0 enthaltenen Windows
Workflow Foundation können Workflows entwickelt und ausgeführt werden. Für die
Ausführung gibt es eine eigene Laufzeitumgebung, angelehnt an die .NET
Laufzeitumgebung CLR.
Zur Beschreibung der Struktur eines Workflow gibt es die auf XML basierende
Beschreibungssprache XOML.
Ein Workflow besteht aus einer Reihe von Aktivitäten. Beispiele für eine Aktivität sind
Delay (warte eine bestimmte Zeit) oder Code ausführen.
Es werden zwei verschiedene Arten von Workflows unterstützt: Sequenzielle und State
Maschine Workflows(vgl. [Andrew06], S.10). Ein sequenzieller Workflow verläuft immer
„gradlinig“, kann aber Schleifen und Verzweigungen enthalten. Ein State Maschine
Workflow besitzt mehrere Zustände und Zustandsübergänge, bildet damit also einen
Zustandsautomaten (vgl. [Harel1987]) ab. In einem State Maschine Workflow gibt es –im
Gegensatz zu einem sequenziellen Workflow- keinen vorab definierten Pfad durch die
Zustände. Zustandsübergänge werden durch Ereignisse oder Nachrichten ausgelöst.
Für die Entwicklungsumgebung Visual Studio 2005 wurden mehrere Erweiterungen
veröffentlicht, die die Workflowentwicklung vereinfachen, u.a. die Visual Studio
Extensions for Windows Workflow Foundation von Microsoft.
2.6 Active Directory
Das Active Directory (AD) ist der Verzeichnisdienst von Microsoft Windows Server. Er
speichert, verwaltet und ordnet Eigenschaften Objekten in einem Netzwerk zu. Weitere
Informationen sind im TechNet [MSTechNetAD] von Microsoft zu finden.
2.7 Visual Studio 2005
Visual Studio 2005 ist die derzeit aktuelle Entwicklungsumgebung von Microsoft für das
.NET-Framework. Zahlreiche von Microsoft veröffentliche Plug-Ins erweitern die IDE,
beispielweise um Projektvorlagen für die Entwicklung von Office 2007 Komponenten
oder einen Workflow-Designer.
Die gesamte Code-Implementierung dieses Projektes wurde mit Visual Studio 2005
Professional SP1 durchgeführt, erweitert um die Windows SharePoint Services 3.0 Tools
und die Extensions für Windows Workflow Foundation.
Seite 12
2.8 SharePoint Designer
Der Microsoft SharePoint Designer ist der Nachfolger des Microsoft Frontpage 2003 und
ist speziell auf ASP.NET 2.0 und SharePoint ausgerichtet. Entwickler und Webdesigner
können sich mit einzelnen Webseiten auf dem SharePoint Portal verbinden und diese
individuell – z.B. an das Corporate Design des Unternehmens – anpassen.
Der SharePoint Designer bietet darüber hinaus eine grafische Oberfläche zum Erstellen
und Konfigurieren von SharePoint-Workflows, die an Listen oder Bibliotheken gebunden
werden können.
Abbildung 2: SharePoint Designer
Seite 13
3 Projektvorstellung
Der Verband der Chemischen Industrie plant seinen internen Bestellprozess mit Hilfe
elektronischer Formulare zu unterstützen.
Der abzubildende Prozessfluss umfasst 4 Schritte:
1. Erfassung der Bestellung
Die Bestelldaten werden erfasst. Angebot, Bestellung und
die Auftragsbestätigung können als digitalisierte
Dokumente dem Formular angefügt werden.
Lieferantendaten werden aus dem Lieferantenstamm-
datensystem übernommen.
2. Lieferung
Zu jeder Bestellung kann es keine, eine oder mehrere
Lieferungen geben, denen jeweils Lieferscheine beigefügt
werden. Inventargüter können in das Asset-Management
übernommen werden.
3. Freigabe und Kontierung der Rechnungen
Zu jedem Vorgang können keine, eine oder mehrere
Rechnungen existieren. Für jede Rechnung wird ein
separates Formular aus der Bestellung heraus generiert.
Rechnungspositionen sind einzeln kontierbar und ein Export
in die verwendete Finanzbuchhaltungssoftware ist möglich.
Die Freigabe der Rechnungen erfolgt mit Hilfe von digitalen
Signaturen, die bereits beim VCI vorhanden sind. Abbildung 3: Übersicht Prozessfluss
4. Archivierung abgeschlossener Vorgänge
Abgeschlossene Vorgänge, einschließlich aller Anhänge, werden an das
Langzeitarchivierungssystem übergeben.
Beim VCI wurde am 09. Oktober 2006 ein Workshop zur Aufnahme der Anforderungen
an ein Erfassungs- und Verwaltungssystem zur Abbildung des internen VCI-
Bestellprozesses durchgeführt. Mit Hilfe einer SharePoint 2007/InfoPath 2007 basierten
Lösung soll der gesamte Prozess von der Bestellung über Wareneingang bis hin zur
Freigabe und Kontierung der Eingangsrechnungen abgebildet werden. Der Workshop
wurde von Sven Maier und Stefan Gohr durchgeführt.
Seite 14
3.1 bisheriger Projektablauf
Die Basisdaten der Bestellung werden in einem InfoPath-Formular erfasst.
Nachdem die Rechnung eingegangen ist, werden die Rechnungsdaten im gleichen
Formular erfasst und kontiert. Diese Informationen werden auf ein Etikett gedruckt und
auf die Rechnung geklebt. Die Rechnung wird der Buchhaltung übergeben und dort alle
Daten erneut manuell erfasst.
Eine Datenübergabe an andere Systeme fand nicht statt. Dokumente, wie Bestellungen,
Auftragsbestätigungen, Lieferscheine und Rechnungen wurden in Papierform
weitergegeben.
Für den Bereich EDV kann monatlich mit 50 bis 100 Bestellvorgängen gerechnet werden.
3.2 Anforderungen
Bei der Anforderungsanalyse wurden sechs Hauptziele identifiziert:
1. Einfaches Handling
Die Erfassung der benötigten Daten soll intuitiv und die Einarbeitungszeit möglichst
kurz sein. Alle Informationen sollen zentral an einer Stelle zusammen fließen und
die benötigten Funktionen schnell auffindbar sein.
2. Optimierung der Datenerfassung
Alle im Laufe des Prozesses benötigten Daten (z.B. Lieferant, Rechnungsbetrag)
werden von den am Prozess beteiligten Personen idealerweise nur einmal erfasst.
Vorhandene Daten sollen, wenn möglich, aus den vorhandenen Backendsystemen
übernommen werden.
3. Integration von Backendsystemen
Die bislang beim VCI verwendeten Systeme (Lieferantenstammdaten, Asset-
Management und Rechnungswesen) sollen über Schnittstellen in den Prozess
integriert werden. Bislang werden die Daten manuell in die Systeme übernommen.
4. Übersicht über laufende Prozesse
In einem Rechnungs-Dashboard sollen Informationen verdichtet und übersichtlich
dargestellt werden, um der Buchhaltung einen Überblick über laufende und
abgeschlossene Bestellprozesse zu bieten. Das Dashboard liefert u.a. Informationen
über die Anzahl der offen Rechnungen, deren Volumen und Fälligkeiten.
Seite 15
5. Verkürzung der Durchlaufzeit des Prozesses
Auf Grund der langen Laufzeiten der Rechnungen durch die einzelnen Abteilungen
entsteht bislang ein Skontoverlust beim VCI. Durch eine schnellere Bearbeitung
innerhalb des VCI sollen diese Mehrkosten verringert werden.
6. Archivierung abgeschlossener Vorgänge
Über ein Langzeit-Archivierungssystem soll der Zugriff auf abgeschlossene Vorgänge
erleichtert werden. Die Archivierung muss revisionssicher sein, da Dokumente wie
Lieferscheine und Rechnungen Bestandteil der Betriebsprüfung sind.
3.3 Übersicht der Backendsysteme
Es müssen insgesamt 5 Backendsysteme integriert werden:
1. Microsoft Active Directory
2. Adressverwaltungssystem ZAM
3. Asset-Managementsystem Asset.Desk
4. Buchhaltungssoftware Syska SQL REWE
5. Langzeit-Archivierungssystem NetApp
Die Integration aller Systeme erfolgt idealerweise mit Hilfe von Webdiensten, die
teilweise bereits von der Software bereit gestellt werden, teilweise aber auch selbst
entwickelt werden müssen.
Die jeweils geeignete Schnittstelle wird in Kapitel 4.2 Schnittstellenanalyse evaluiert.
3.3.1 Microsoft Active Directory
Das Active Directory verwaltet Informationen über Benutzer und Gruppen. Über einen
Webdienst werden LDAP-Abfragen an das Active Directory gesendet. Es wird zum
Beispiel geprüft, ob ein bestimmter Benutzer Mitglied in einer Gruppe ist.
3.3.2 ZAM
Das Adressverwaltungssystem ZAM [LundKWeb] der Firma Dr. Lauer & Karrenbauer
liefert alle benötigten Informationen über Lieferanten. Die Lieferanten sind dabei in
Verteilern (Distributors) organisiert. Es ist eine gut dokumentierte Webdienst-
Schnittstelle vorhanden. Die Zugriffe auf die Lieferantenstammdaten erfolgen
ausschließlich lesend.
Seite 16
Eine Überprüfung des VCI kam zu dem Ergebnis, dass das ZAM weiterhin als
datenführendes System für die Lieferantenstammdaten dient, jedoch nicht in diesen
Prozess integriert wird, da die Schnittstelle zum ZAM erst Mitte 2007 verfügbar sein
wird. Stattdessen werden die benötigten Lieferantenstammdaten in das Asset-
Management migriert.
3.3.3 Asset.Desk
Zur Verwaltung von Inventargütern, Hard- und Software verwendet der VCI das Asset-
Management der Firma FCS Fair Computer Systems GmbH [FCSWeb].
Auf der Webseite kann eine kostenfreie Testversion heruntergeladen werden. Diese
habe ich genutzt, um mir einen Überblick über die Software Asset.Desk und
insbesondere über die Datenbank zu verschaffen. Verwendet wurde die Version 2.5.
Bislang ist keine Schnittstelle vorhanden, so dass diese im Rahmen dieses Projektes
entwickelt werden muss. Zu Beginn war vorgesehen, die Herstellerfirma mit der
Entwicklung von Stored Procedures zu beauftragen. Eine Analyse (siehe Kapitel 4.2.2) der
Datenbankstruktur hat jedoch ergeben, dass diese Schnittstelle in Eigenentwicklung
realisiert werden kann.
Innerhalb des Prozesses können Assets angelegt werden. Diese sollen automatisch in das
Asset-Management importiert werden und dort zur Verfügung stehen. So soll eine
mehrfache Erfassung gleicher Daten vermieden werden.
3.3.4 Syska SQL REWE
Syska SQL REWE ist eine Finanzbuchhaltungssoftware der Firma Syska GmbH
[SyskaWeb]. Dieses Buchhaltungssystem wird vom VCI auf SQL-Basis betrieben.
Unterstützt werden Datenbanksysteme von Oracle (8i, 9i, 10g), Gupta (ab Version 7) und
der Microsoft SQL Server (ab Version 7).
Auf Anfrage bei der Firma Syska wurden mir eine Testversion, die verfügbaren
Schnittstellen und eine Dokumentation zur Verfügung gestellt. Die Evaluierung der
geeigneten Schnittstelle erfolgt in Kapitel 4.2.3.
Die Software Syska SQL REWE wird in der Version 5.106 verwendet.
Seite 17
3.3.5 NetApp
Ursprünglich war geplant, Formular und Dateianhänge in Meridio [MeridioWeb] zu
archivieren. Dazu lief ein Pilotprojekt beim VCI. Dieses wurde jedoch im Dezember 2006
abgebrochen.
Als Ersatz wird die zuvor vom VCI verwendete Archivierungssoftware der Firma Network
Appliance Inc. [NetAppWeb] verwendet. Diese Firma ist spezialisiert auf Archivierung
und Datensicherung. Zusätzlich kommt die Komponente SnapLock zum Einsatz, die die
revisionssichere Datenablage in einem gesonderten Bereich ermöglicht.
Die folgende Übersicht zeigt die beteiligten Backendsysteme und Schnittstellen. Das
dargestellte Formular zeigt einen ersten Prototyp zur Präsentation.
Abbildung 4: Übersicht Backendsysteme
Jedes System wird von einem Webdienst gekapselt. Die Pfeilspitze zeigt an, in welche
Richtung Informationen fließen.
Beispiel Lieferantenstammdaten: Die Lieferantenstammdaten werden vom Webdienst
aus der Asset.Desk-Datenbank abgerufen und dienen dem Formular als Datenquelle.
Der Pfeil führt nur vom Webdienst zum Formular, obwohl beim Suchen von Lieferanten
ein Parameter aus dem Formular an den Webdienst übergeben werden kann. Die
Information wird nach der Abfrage jedoch vom Webdienst verworfen und ist für den
weiteren Prozess nicht mehr relevant.
Seite 18
3.4 Risikobewertung
Dieser Abschnitt beschreibt zusammenfassend, welche Punkte nach der
Anforderungsanalyse unklar oder mit einem Risiko behaftet sind. Beim Erstellen der
Feinspezifikation wurde ein besonderer Fokus auf diese Punkte gelegt.
Das Asset-Management stellt keine Schnittstelle zur Verfügung. Es muss geklärt werden,
ob der Hersteller mit der Entwicklung einer Schnittstelle beauftragt wird, oder eine
Schnittstelle im Rahmen des Projekts entwickelt werden kann.
Syska SQL REWE stellt eine Textschnittstelle und einen WebDienst bereit. Die geeignete
Schnittstelle muss evaluiert und integriert werden. Eine Dokumentation zu den
Schnittstellen ist bei Syska angefordert worden. Es muss danach durch einen Prototypen
abgesichert werden, dass die Schnittstelle die geforderte Funktionalität bereit stellt.
Für die Archivierung sollen angefügte Dokumente in das Format PDF 1.4 konvertiert
werden. Es ist noch unklar, wie und wann die Konvertierung durchgeführt werden soll.
Der exakte Standard ist noch abzustimmen. Es muss ein geeignetes Produkt gefunden
und dessen Eignung geprüft werden.
Seite 19
4 Analyse
Dieses Kapitel beschreibt den geplanten Prozessfluss. Es wird erläutert, in welchen
Stadien ein Vorgang neu angelegt und wann ein Vorgang beendet werden kann. Die
Rechnungsfreigabe, Benachrichtigungen und die Datenübergabe an die Schnittstellen
werden ebenfalls analysiert.
Die Analyse resultiert hauptsächlich aus Informationen, die im Rahmen der
Anforderungsanalyse beim VCI gesammelt und über Anfragen im Verlauf des Projektes
konkretisiert wurden.
Definition Vorgang:
Der Begriff Vorgang wird verwendet, um einen konkreten Bestellvorgang zu
kennzeichnen. Ein Vorgang ist definiert durch eine Vorgangsnummer, einen Auslöser
(neue Bestellung) und ein Ende (Vorgang ist abgeschlossen).
4.1 Prozessfluss
Der gesamte Bestellprozess, in einer allgemeinen Form, wird im nächsten Schaubild
dargestellt. Der umrahmte Bereich wird mit diesem Prozess abgebildet.
Abbildung 5: Bestellprozessfluss
Die Angebotsphase ist noch nicht Bestandteil dieser Prozessabbildung. Das Angebot,
bzw. der Kostenvoranschlag des Lieferanten oder Dienstleisters kann aber als
digitalisiertes Dokument beigefügt werden.
Seite 20
Die Begleichung der Rechnung wird von der Buchhaltungssoftware vorgenommen. Dazu
werden Rechnungsdaten in die Buchhaltungssoftware exportiert.
Die fünf Kern-Anwendungsfälle dieses Prozesses werden in einer
Anwendungsfallbeschreibung detailliert beschrieben.
Ablaufschritte in kursiver Schrift sind optional, d.h. sie sind für einen erfolgreichen Ablauf
des Anwendungsfalls nicht erforderlich.
Name Neue Bestellung anlegen
Kurzbeschreibung Es wird eine Bestellung als neuer Vorgang angelegt
Akteur Bestellbearbeiter
Auslöser Es wird eine Bestellung aufgegeben
Ergebnis Die Bestellung wurde als neuer Vorgang angelegt
Nachbedingung Die Bestellung kann weiterverarbeitet werden
Ablaufbeschreibung Öffnen einer neuen Bestellung Erfassen der Bestelldaten Eingabe von mind. einer Bestellposition Scannen und Anfügen von Angebot, Bestellung und Auftragsbestätigung als digitalisierte Dokumente Speichern
Tabelle 1: Anwendungsfall neue Bestellung
Name Lieferung zu einer Bestellung erfassen
Kurzbeschreibung Einer Bestellung wird eine Lieferung hinzugefügt
Akteur Liefererfasser
Auslöser Eine neue Lieferung ist eingetroffen
Ergebnis Die Lieferung wurde einer Bestellung zugeordnet
Nachbedingung Keine
Ablaufbeschreibung Öffnen der Bestellung Lieferung hinzufügen Lieferpositionen aus Bestellpositionen auswählen und/oder neue Lieferposition eingeben Inventargüter erfassen Speichern
Tabelle 2: Anwendungsfall neue Lieferung
Seite 21
Name Rechnung zu einer Bestellung erfassen
Kurzbeschreibung Einer Bestellung wird eine Rechnung zugeordnet
Akteur Rechnungsbearbeiter
Auslöser Eine neue Rechnung ist eingetroffen
Ergebnis Die Rechnung wurde einer Bestellung zugeordnet
Nachbedingung Die Rechnungsfreigabe kann gestartet werden
Ablaufbeschreibung Öffnen der Bestellung Rechnung als digitalisiertes Dokument hinzufügen Rechnungsdaten erfassen Rechnungspositionen aus Bestell- oder Lieferpositionen auswählen und/oder neue Rechnungspositionen eingeben Rechnungspositionen kontieren Einen oder zwei Prüfer auswählen Speichern
Tabelle 3: Anwendungsfall neue Rechnung
Name Rechnung freigeben
Kurzbeschreibung Eine Rechnung wird von den Prüfern freigegeben
Akteure Prüfer (mind. einer, maximal 2)
Vorbedingung Für die Rechnung wurde die Rechnungsfreigabe gestartet
Ergebnis Die Rechnung wurde freigegeben oder abgelehnt
Nachbedingung Bei Freigegeben: Die Rechnung kann an die Buchhaltungssoftware übergeben werden
Ablaufbeschreibung Öffnen der Rechnung Prüfung der Rechnungsdaten Prüfung der Rechnungspositionen und deren Kontierung Rechnung digital signieren Speichern
Tabelle 4: Anwendungsfall Rechnung freigeben
Seite 22
Name Rechnungsdaten an Buchhaltungssoftware übergeben
Kurzbeschreibung Die Rechnungsdaten werden an die Buchhaltungssoftware übergeben
Akteure Rechnungsbearbeiter
Vorbedingung Die Rechnung wurde freigegeben
Ergebnis Die Buchungssätze wurden in den Buchungsstapel gebucht
Nachbedingung keine
Ablaufbeschreibung Öffnen der Rechnung Betätigen der Schaltfläche „Rechnungspositionen exportieren“ Speichern
Tabelle 5: Anwendungsfall Rechnungsdaten exportieren
4.1.1 Anlegen neuer Vorgänge
Ein neuer Vorgang beginnt immer mit einer Bestellung. Zu einer Bestellung können
mehrere Dokumente (jeweils in digitalisierter Form) angefügt werden:
Angebot
Bestellung
Auftragsbestätigung
Weitere Informationen, die zu einer Bestellung erfasst werden können sind: Titel,
Bestelldatum, Projektzuordnung, Verantwortlicher Bereich und Lieferant.
Eine Bestellung umfasst eine oder mehrere Bestellpositionen. Jede Position hat eine
Bezeichnung, Bestellmenge, Einzelpreis (netto), Mehrwertsteuersatz und Bruttopreis.
4.1.2 Erfassen von Lieferungen
Zu jeder Bestellung können mehrere Lieferungen erfasst werden, denen jeweils ein
Lieferschein als digitalisiertes Dokument angefügt werden kann.
Lieferpositionen können aus den vorhandenen Bestellpositionen ausgewählt und einer
Lieferung zugeordnet werden. Neue Lieferpositionen können hinzugefügt werden.
Eine besondere Anforderung ist, dass Inventargüter beim Erfassen der Lieferungen
berücksichtigt werden sollen. Diese werden als Assets angelegt und an die Asset-
Management Software übergeben.
Beim erneuten Öffnen werden diese Assets wieder angezeigt und können bearbeitet
werden.
Seite 23
4.1.3 Erfassen von Rechnungen
Zu jedem Vorgang kann es mehrere Rechnungen (Teilrechnungen, Abschlagszahlungen)
geben, zu denen jeweils die folgenden Informationen erfasst werden können:
Rechnungsnummer, Rechnungsdatum, Rechnungsbetrag, Skontosatz und Skontofrist.
Der Lieferant als Rechnungsempfänger wird aus der Lieferung übernommen. Die
Rechnung kann als digitalisiertes Dokument angefügt werden.
Rechnungspositionen können aus vorhandenen Bestell- und Lieferpositionen
ausgewählt, oder neu angelegt werden. Jede Position kann einem Buchungskonto
zugeordnet werden.
4.1.4 Rechnungsfreigabe
Jede Rechnung muss von mindestens einem Prüfer digital signiert werden. Es kann ein
zweiter Prüfer benannt werden. Die Auswahl der Prüfer erfolgt im Rechnungsformular
anhand einer Auswahlbox.
Die Rechnungsfreigabe wird von einem Rechnungsbearbeiter per Knopfdruck gestartet.
Der erste Prüfer bekommt eine Benachrichtigung per E-Mail, dass eine Rechnung zur
Freigabe vorliegt und kann diese direkt über eine Verknüpfung in der E-Mail aufrufen.
Die Signatur erfolgt mit X.509 Zertifikaten(vgl. [RFC3280]). Diese sind bereits beim VCI
vorhanden.
Nach der Freigabe durch die Prüfer kann die Rechnung an die
Finanzbuchhaltungssoftware übergeben werden. Die Freigabe kann zu jedem Zeitpunkt
von einem Prüfer oder einem Rechnungsbearbeiter abgebrochen werden. Vorhandene
Signaturen werden entfernt.
Sobald ein Prüfer die Rechnung signiert hat, können keine Änderungen mehr
vorgenommen werden.
4.1.5 Datenübergabe
Die Lieferantendaten werden auf Knopfdruck in eine Auswahlbox geladen. Der
Bearbeiter hat die Möglichkeit, die Suche durch Eingabe einer Zeichenkette
einzugrenzen. Dann werden nur noch Lieferanten angezeigt, die diese Zeichenkette
enthalten. Durch Auswahl eines Lieferanten werden Detailinformationen zu dem
ausgewählten Lieferanten abgerufen und dargestellt.
Die Übergabe der Assets an das Asset-Management geschieht automatisch beim
Speichern. Vorher wird geprüft, ob Assets neu angelegt oder verändert wurden. Trifft
dieses nicht zu, ist eine Übergabe nicht notwendig und ein unnötiger Webdienstaufruf
wird vermieden.
Seite 24
Nach Freigabe der Rechnung kann diese per Knopfdruck an die
Finanzbuchhaltungssoftware Syska SQL REWE übergeben werden.
4.1.6 Archivierung
Vorgänge können komplett oder beschränkt auf einzelne Rechnungen archiviert werden.
Die angefügten Dateien und das Formular werden an einem konfigurierbaren
Netzwerkpfad abgelegt, von wo aus diese in das Langzeitarchivierungssystem
übernommen werden.
Die Formulare können nach der Archivierung weiterhin eingesehen, aber nicht mehr
verändert werden.
4.1.7 Beendigung des Vorgangs
Der Vorgang kann in jedem Zustand und zu jeder Zeit beendet werden. Gründe hierfür
wären z.B. die Stornierung des Auftrags oder Lieferprobleme bei einem Lieferanten.
4.2 Schnittstellenanalyse
In diesem Abschnitt werden die Schnittstellen zu den beteiligten Backend-Systemen, mit
Ausnahme des Active Directory beschrieben. Der Zugriff auf das AD erfolgt über einen
bereits implementierten und bewährten Webdienst.
Teilweise werden bereits hier Modellierungsansätze genannt und ausgeführt, die
thematisch besser in das Kapitel 5.4 Spezifikation der Schnittstellen gepasst hätten. Da
aber aus diesem Kapitel die Feinspezifikation (siehe Anhang) logisch hervorgeht und dort
die Schnittstellen beschrieben werden, greifen hier die Analyse und das Design enger
ineinander, als es die Kapitelüberschriften aussagen.
Zu Beginn der Schnittstellenanalyse musste für die Asset-Schnittstelle die Entscheidung
getroffen werden, ob diese in Eigenentwicklung implementiert wird, oder die
Herstellerfirma mit der Entwicklung von Stored Procedures beauftragt wird. Diese hatte
einen Kostenvoranschlag über 4 Entwickler-Tage abgegeben.
Seite 25
4.2.1 Lieferantenstammdaten
Die Lieferantendaten werden durch den VCI in regelmäßigen Abständen vom
Lieferantenstammdatensystem ZAM in die Datenbank des Asset-Managements
importiert. Dadurch sind aber Lieferantendaten, die erst vor kurzer Zeit im ZAM angelegt
wurden, noch nicht in der Datenbank des Asset-Managements vorhanden, wenn nach
der Anlage eines Lieferanten noch kein Import durchgeführt wurde.
Der Zugriff auf die Lieferantendaten soll ausschließlich lesend erfolgen. Für den Zugriff
wird eine Sicht (VendorView) auf die Datenbank angelegt. Über einen Webdienst werden
die Daten direkt in das Formular übernommen.
Die Sicht enthält die folgenden Felder. Das zugehörige Feld im Datenschema des
Formulars ist ebenfalls aufgeführt.
Tabellenspalte Formularfeld
VendorID lieferantID
VendorNameShort Lieferantenname
NameContact Ansprechpartner
PhoneContact Telefon Ansprechpartner
EmailContact Email Ansprechpartner
SyskaAccountNr syskaKontoNr
Tabelle 6: VendorView
Der Zugriff auf die Lieferantendaten ist unkritisch und kann daher in Eigenentwicklung
realisiert werden.
4.2.2 Assets
Die Schnittstelle zum Asset-Management muss drei Anforderungen erfüllen:
1. Speichern neu angelegter Assets
2. Update vorhandener Assets
3. Rückgabe aller Assets zu einer Vorgangsnummer
An dieser Stelle ist es notwendig, die Bedeutung der Begriffe Asset und Device zu
erläutern und voneinander abzugrenzen: Device (engl.: in diesem Zusammenhang kann
der Begriff als „Gerät“ übersetzt werden) ist die Tabellenbezeichnung in der Asset.Desk
Datenbank. In dieser Arbeit wird der Begriff Device nur verwendet, wenn es sich um
einen Datensatz dieser Tabelle handelt, ansonsten wird der Begriff Asset benutzt. Im
Benutzerkontext wird immer von Assets im Sinne von Anlage- oder Inventargut
gesprochen.
Seite 26
Zur Neuanlage von Assets müssen Datensätze in die Tabellen Device und
CommercialDevData eingefügt werden. Durch manuelle Eingabe von Datensätzen in
diese beiden Tabellen wurde erfolgreich überprüft, dass sich Inventargüter auf diese
Weise anlegen lassen Die eingegebenen Daten waren danach in der Software Asset.Desk
sichtbar und konnten weiterverarbeitet werden.
Das Update vorhandener Assets funktioniert analog zur Neuanlage.
Für die Zuordnung von Assets zu einem Vorgang wurde eine Mappingtabelle in die
Datenbank aufgenommen. Diese enthält die ID des Assets und die Vorgangsnummer.
Der lesende Zugriff auf die Assets erfolgt über die neu erstellte Sicht DeviceView. Diese
enthält nur Assets, die mit diesem Prozess angelegt wurden. Über diese Sicht kann die
Rückgabe aller einem Vorgang zugeordneten Assets realisiert werden.
Das folgende Mapping von Tabellenspalten auf Formularfelder wird umgesetzt:
Tabelle Spalte Formularfeld
Device DevID AssetID
Device DeviceName Bezeichnung
Device ICCMDeviceType Asset-Typ
Device SerialNr Seriennummer
Device Manufacturer Hersteller
CommercialDevData PurchasePrice Kaufpreis (brutto)
CommercialDevData PuchaseDate Kaufdatum
CommercialDevData WarrantyEnd Garantieablauf
DeviceProcessNrMapping ProcessNr Vorgangsnummer
Tabelle 7: Asset-Felder
Die Schnittstelle für Lieferanten und Assets lässt sich über den Zugriff auf nur zwei
Tabellen und zwei Sichten realisieren. Es handelt sich um eine überschaubare
Komplexität und daher werden diese Schnittstellen selbst entwickelt.
4.2.3 Syska SQL REWE
Die Kontierung der einzelnen Buchungspositionen soll über eine Schnittstelle in Syska
SQL REWE importiert werden. Syska SQL REWE stellt eine Textschnittstelle, eine COM-
Schnittstelle und einen Webdienst zur Verfügung. Es muss geprüft werden, welche der
vorhandenen Schnittstellen geeignet ist und eine Entscheidung getroffen werden,
welche Schnittstelle tatsächlich eingesetzt wird. Die Dokumentationen der Schnittstellen
befinden sich im Anhang dieser Arbeit.
Seite 27
Für die Nutzung der Textschnittstelle müssen die zu exportierenden Datensätze in einem
vorgegebenen Format in eine Datendatei im Textformat geschrieben werden. In einer
Steuerungsdatei wird dann der Pfad zu dieser Datendatei eingetragen. Eine
Steuerungsdatei kann auf mehrere dieser Datendateien verweisen. Der Import der Daten
erfolgt durch Aufruf der Finanzbuchhaltungssoftware, dem als Parameter der Pfad zur
Steuerungsdatei übergeben wird.
Die COM-Schnittstelle muss durch einen Webdienst gekapselt werden, der das COM-
Objekt instanziiert. Die Dokumentation zur COM-Schnittstelle (Datei OFCK_COM.pdf im
Anhang), die von der Firma Syska zur Verfügung gestellt wurde, ist leider nicht sehr
entwicklerfreundlich.
Die Implementierung der nötigen Methoden für den Zugriff auf die COM erscheint sehr
komplex, wie im Beispiel der Dokumentation auf Seite 55 abgedruckt ist.
Von der Firma Syska existiert ein eigener Webdienst, der die COM-Schnittstelle kapselt
und mehrere Methoden zur Verfügung stellt. Zum Export eines Buchungssatzes kann die
Methode StapelBuchungSave verwendet werden. Leider existiert keine Dokumentation
zu den einzelnen Methoden. Für den Betrieb des Webdienstes muss die COM-
Schnittstelle ebenfalls auf dem Server installiert sein. Die Installation beider
Komponenten auf einem Testsystem verlief reibungslos.
Die Entscheidung fällt auf den Webdienst. Die COM-Schnittstelle müsste durch einen
Webdienst in Eigenentwicklung gekapselt werden, der von Syska bereits zur Verfügung
steht. Der Import von Buchungssätzen erfolgt über den Webdienst in Echtzeit ohne
manuelles Eingreifen oder einen Aufruf der Finanzbuchhaltung, wie es die
Textschnittstelle erforderlich machen würde.
4.2.4 Archivierung
Zur Archivierung in NetApp genügt es, die Dokumente auf einem freigegebenen
Netzwerkpfad abzulegen. NetApp ist dabei über DFS in das Netzwerk eingebunden. Sind
Dokumente als schreibgeschützt markiert, werden diese revisionssicher gespeichert.
Es muss eine Komponente entwickelt werden, die die im XML eingebetteten Dateien
entnehmen und, zusammen mit dem Formular, im Dateisystem ablegen kann.
Seite 28
4.3 Benachrichtigungen
An einigen Stellen des Prozesses ist es sinnvoll, Benachrichtigungen per E-Mail zu
versenden, um Benutzer zu informieren, dass eine Aktion erforderlich ist. Dadurch
können Verzögerungen im Prozessablauf minimiert werden. Alle Benachrichtigungen
beinhalten eine Verknüpfung auf das Formular. Ist ein Skontodatum eingetragen, wird
auch dieses in der E-Mail angezeigt.
Der erste Prüfer wird per E-Mail benachrichtigt, sobald die Rechnungsfreigabe durch ein
Mitglied der Gruppe Rechnungsbearbeiter gestartet wurde.
Hat der erste Prüfer die Rechnung signiert, wird der nächste Prüfer (wenn angegeben)
benachrichtigt.
Haben alle Prüfer die Rechnung signiert, wird die Buchhaltung über die Freigabe der
Rechnung informiert.
4.4 Konvertierung in PDF
Zu Projektbeginn war geplant, die Konvertierung von Dateianhängen zu einem
Bestandteil der Archivierung zu machen. Dies wurde jedoch vom VCI verschoben und
wird in der Einführungsphase nicht mehr umgesetzt.
Trotzdem soll hier der analytische Teil beschrieben und eine Möglichkeit der Realisierung
aufgezeigt werden, wie sie nach der Einführung umgesetzt werden könnte.
Für eine Langzeitarchivierung eignen sich verschiedene Bildformate und das Portable
Document Format (PDF). PDF bietet gegenüber Bildformaten (z.B. TIFF) Möglichkeiten
der Indizierbarkeit und Volltextsuche. PDF-Dokumente können mit vielfältigen
Metainformationen versehen werden, um Dokumente zu kategorisieren. Zudem
verringert eine Konvertierung in PDF meist die Dateigröße erheblich. Der Standard [ISO
19005-1] definiert Anforderungen an die Archivierung elektronischer Dokumente und ist
angelehnt an die PDF Version 1.4. Dieser neue Standard – PDF/A genannt – wird
unterteilt in zwei Klassifizierungen:
1. Als PDF/A-1a wird die vollständige Übereinstimmung mit dem PDF/A-Standard
nach ISO 19005-1 bezeichnet.
2. PDF/A-1b beschreibt Anforderungen, die für PDF/A mindestens erfüllt werden
müssen. Die PDF/A-1b Bestimmungen genügen in den meisten Fällen den
Anforderungen an eine optische Langzeit-Archivierung.
Für dieses Projekt ist eine Konvertierung nach PDF/A-1b ausreichend.
Seite 29
An die Konvertierung werden zwei weitere Anforderungen gestellt:
a) Dateianhänge sollen möglichst automatisch und
b) erst bei der Archivierung des Formulars
nach PDF konvertiert werden.
Es wurde ein Programm (AutoPDF) der Firma May Computer GmbH [MayWeb]
ausgewählt, das folgendes leistet:
Es kann ein Verzeichnis hinterlegt werden, das regelmäßig auf neue Dateien überprüft
wird. Jede neue Datei wird in eine PDF-Datei gleichen Namens konvertiert und auf einem
konfigurierbaren Pfad abgelegt. Können Dokumente nicht konvertiert werden, werden
diese in einem separaten Verzeichnis abgelegt.
Abbildung 6: PDF-Konvertierung
Die Workflow-Engine legt die bei der Archivierung aus dem XML entnommen Dokumente
in dem Verzeichnis ab, das von AutoPDF überwacht wird. Die erzeugten PDF-Dateien
werden dann von AutoPDF auf dem Netzwerkpfad der NetApp abgelegt.
Seite 30
5 Design
Dieses Kapitel bildet den Kern dieser Arbeit. Es wird begonnen, die benötigten Rollen
und deren Aufgaben bzw. Rechte zu beschreiben. Darauf folgen die Definition der
möglichen Zustände, in denen sich ein Vorgang befinden kann und die Übergänge
zwischen Zuständen.
Abschnitt 5.3 beschreibt, wie eine SharePoint-Webseite für den Einsatz dieser Lösung
konfiguriert werden muss. Dabei werden mehrere Listen, Bibliotheken und Ansichten
erstellt.
Die Schnittstellen werden modelliert und die bereitgestellten Methoden beschrieben.
In Abschnitt 5.5 wird das InfoPath-Formular konzeptioniert. Es wird festgelegt, welche
Ansichten es auf das Formular geben wird, welche Felder das Datenschema umfassen
wird, wie die Konsistenz von Benutzereingaben geprüft werden kann und wie die
Rechnungsfreigabe erfolgt.
5.1 Benutzer und Gruppen
Personen können in den folgenden Rollen den Vorgang bearbeiten:
o Bestellbearbeiter
können neue Bestellungen anlegen und vorhandene ändern.
o Liefererfasser
können Lieferungen hinzufügen und bearbeiten. Außerdem können Mitglieder dieser
Gruppe Assets eintragen und verändern.
o Rechnungsbearbeiter
können neue Rechnungen erstellen und vorhandene ändern. Außerdem haben sie
die Möglichkeit, Buchungssätze an das Buchhaltungssystem zu übermitteln.
o Prüfer
können Rechnungen durch digitale Signatur freigeben und Positionen oder
Rechnungsdaten verändern, solange noch keine Signatur durchgeführt wurde.
Abbildung 7: Aktivitäten nach Gruppen
Seite 31
Für diese Rollen werden Gruppen im Active Directory angelegt. Benutzer können dort
hinzugefügt und auch wieder entfernt werden. Ein Benutzer kann in mehreren Gruppen
Mitglied sein.
Wird das Formular von einer Person geöffnet, die keiner der o.g. Rollen zugeordnet ist,
wird nur eine Übersicht angezeigt. Eine Möglichkeit zur Dateneingabe oder Speicherung
besteht dann nicht. Die Übersicht wird gewährt, da hier Informationen über den Status
des Vorgangs angezeigt werden. Dies sind nützliche Informationen für Mitarbeiter, die
sich über den Stand ihrer Bestellung informieren möchten.
5.2 Vorgangsstatus
Ein Vorgang kann sich in verschiedenen Status befinden. Das folgende Diagramm zeigt
die möglichen Status und deren Übergänge.
Abbildung 8: Status des Vorgangs
Ein Statusübergang in eckigen Klammern bedeutet, dass eine Bedingung erfüllt sein
muss. Übergänge ohne eckige Klammern werden durch eine Aktion eines Benutzers (z.B.
Betätigen einer Schaltfläche) ausgelöst. Grundsätzlich ist es möglich, dass sowohl
Bestellungen als auch Rechnungen jederzeit in den Status in Archivierung
übergehen können, wenn der entsprechende Workflow gestartet wird. Der
Übersichtlichkeit halber wurde aber im Diagramm darauf verzichtet.
Seite 32
Ein Bestellformular kann die Status Bestellung erfasst und Lieferung erfasst
erreichen. Eine Rechnung hat die Status Kontierung, Freigabe, Freigegeben und
Abgeschlossen. Die beiden Status in Archivierung und Archiviert können
sowohl von Bestellungen, als auch von Rechnungen erreicht werden.
Gelangt eine Rechnung in den Status Abgeschlossen, ist eine Änderung der meisten
Formularfelder nicht mehr möglich. Lediglich Vorgangsnotizen können noch getätigt
werden.
Der Status in Archivierung ist nur ein Zwischenstatus. Der Workflow verwendet
diesen, wenn als nächstes die Entnahme der Dateianhänge folgt. Sobald die Archivierung
abgeschlossen ist, wird der Status auf Archiviert gesetzt. Es sind keine Änderungen mehr
möglich. Beim Öffnen des Formulars wird nur noch die Ansicht Übersicht angezeigt.
5.3 Konfiguration einer SharePoint-Webseite
Für den Betrieb der Lösung auf einem SharePoint Portal Server wird zunächst eine leere
Teamwebseite benötigt. Dieser Webseite werden danach mehrere Listen und
Bibliotheken hinzugefügt:
Name Typ Beschreibung
Projekte Liste Enthält Projektnamen, die den Bestellungen
zugeordnet werden können.
Skontosätze Liste Liste von Skontoinformationen und deren
Kürzeln. Wird für die Übergabe der
Skontodaten an Syska benötigt.
Datenverbindungen Datenverbindungskatalog Enthält alle Datenverbindungen, die vom
Formular verwendet werden als udcx-
Dateien.
Beschaffungen Formularbibliothek Speicherort der Formulare
Die Liste Projekte enthält nur eine Spalte Projektname. Diese Liste wird beim Öffnen
des Formulars ausgelesen und eine Auswahlbox mit allen Einträgen gefüllt.
Die Liste Skontosätze enthält zwei Spalten: Bezeichnung und Zahlzielkürzel.
Die erste Spalte enthält die Skontoinformationen in Textform, die zweite eine Kurzform,
die der Konvention [OFCK47] der Syska-Schnittstelle entspricht.
Seite 33
Abbildung 9: Liste Skontosätze
Der Datenverbindungskatalog enthält alle Datenverbindungen des InfoPath-Formulars in
dem udcx-Dateiformat, eine XML-Datei, die Verbindungsinformationen zu einer
Datenquelle enthält. Diese Datenverbindungen müssen zuerst genehmigt werden, bevor
diese von einem Formular verwendet werden können.
In der Formularbibliothek Beschaffungen werden alle Formulare als XML-Dateien mit
ihren Metadaten abgespeichert. Diverse Ansichten (siehe 0) auf diese Bibliothek
erleichtern den Zugriff auf die Formulare.
Abbildung 10: SharePoint-Ansicht "Laufende Vorgänge"
Seite 34
5.3.1 SharePoint-Ansichten
Es werden mehrere Ansichten in der Formularbibliothek eingerichtet, die einen Überblick
über laufende und abgeschlossene Vorgänge geben. Weitere Ansichten können jederzeit
neu erstellt oder vorhandene angepasst werden:
Laufende Vorgänge (Standard): Nicht abgeschlossene Vorgänge werden nach
Vorgangsnummer gruppiert in absteigender Reihenfolge angezeigt (siehe
Abbildung 10).
Archivierte/nicht archivierte Vorgänge: Zeigt alle Vorgänge nach
Vorgangsnummer gruppiert an, die archiviert/nicht archiviert wurden.
Nicht freigegebene Rechnungen: Zeigt alle Rechnungen an, die noch nicht von
den Prüfern freigegeben wurden.
Freigegebene, nicht an Syska übergebene Rechnungen: Zeigt alle Rechnungen an,
die von den Prüfern freigegeben, aber noch nicht an die FiBu übergeben wurden.
Rechnungen mit Skonto: Zeigt alle noch nicht an Syska übergebenen Rechnungen,
für die Skonto abgezogen werden kann, nach Skontodatum aufsteigend sortiert
an.
Nach Lieferant: Zeigt alle Vorgänge gruppiert nach dem Lieferanten in
alphabetischer Reihenfolge an.
5.3.2 Berechtigungen
Für jede SharePoint-Webseite können die Berechtigungen separat verwaltet werden,
oder von der übergeordneten Webseite vererbt werden. Für diesen Prozess ist es
notwendig, die Berechtigungen selbst zu verwalten.
Über die Einstellung „Benutzer und Gruppen“ werden die Berechtigungen auf dieser
Webseite verwaltet. Alle Personen, die an dem Prozess aktiv mitwirken, also in einer der
Rollen Bestellbearbeiter, Liefererfasser, Rechnungsbearbeiter oder Prüfer sind, müssen
mindestens über die Berechtigung „teilnehmen“ verfügen. Dafür können die vier AD-
Gruppen als „Mitglieder“ dieser Webseite eingetragen werden. Durch hinzufügen dieser
AD-Gruppen ergibt sich ein weiterer Vorteil: Werden weitere Benutzer diesen Rollen
hinzugefügt, sind sie damit automatisch berechtigt, die Webseite aufzurufen und am
Prozess teilzunehmen.
Seite 35
Abbildung 11: SharePoint Gruppe: Mitglieder
Benutzer und Gruppen, die nur über lesenden Zugriff auf die Webseite verfügen sollen,
können in die Gruppe „Besucher“ der Webseite eingetragen werden. Sie sind in der Lage
vorhandene Daten anzuzeigen und abzurufen, können aber keine Änderungen
vornehmen.
Zusätzlich zu den Gruppen „Besucher“ und „Mitglieder“ gibt es noch die Gruppe
„Besitzer“ der Webseite. Mitglieder dieser Gruppe verfügen über Vollzugriff auf die
gesamte Webseite. Mitglied dieser Gruppe könnte z.B. der für diesen Prozess
verantwortliche Ansprechpartner in der IT-Abteilung sein.
Seite 36
5.3.3 Forms Server
Um Formulare im Browser anzeigen zu können, muss zuerst der Forms Server in der
Zentraladministration konfiguriert werden.
Abbildung 12: Forms Server konfigurieren
Die Haken für das Browserfähigmachen und Rendern müssen in jedem Fall gesetzt sein.
Die Zahlen für die Timeouts sind Empfehlungen, wie sie sich im Testbetrieb bewährt
haben.
Der Schalter für „SSL für http-Authentifizierung von Datenquellen erforderlich“ muss
ausgeschaltet sein, da ansonsten die Webdienstanfragen fehlschlagen.
5.4 Spezifikation der Schnittstellen
In diesem Abschnitt werden die verwendeten Schnittstellen und die Methoden, die sie
anbieten, spezifiziert.
5.4.1 Active Directory
Der Zugriff auf das Active Directory erfolgt mit einem für frühere Projekte von der
HanseVision entwickelten ADWebdienst. Dieser wird im InfoPath Formular als
Datenquelle eingerichtet und stellt über das Lightweight Directory Access Protocol
Seite 37
(LDAP) Anfragen an den Domänencontroller. Für den Zugriff kann ein Benutzername
spezifiziert werden, der für die Abfrage verwendet wird.
Der ADWebdienst stellt mehrere Methoden bereit, von denen für diesen Prozess drei
benötigt werden:
1. IsUserInGroup: Prüft, ob ein Benutzer einer Benutzergruppe zugeordnet ist. Der
Benutzername und die Benutzergruppe werden als Parameter übergeben.
2. GetUsersByGroup: Liefert alle Benutzer einer als Parameter übergebenen
Benutzergruppe.
3. GetUserProperty: Liefert ein bestimmtes Attribut eines Benutzers. Das Attribut und
der Benutzername werden als Parameter übergeben.
Zusätzlich zu den angegebenen Parametern wird eine LDAP-Verbindungszeichenfolge
übergeben, die die Organisationseinheit und Domäne enthält.
Beispiel für eine LDAP-Verbindungszeichenfolge: LDAP://OU=hansevision,
DC=hansevision, DC=de.
Hinweis: Der ADWebdienst wurde nicht von Verfasser implementiert. Für dieses Projekt
wurde dieser Webdienst um ein Installationsprojekt und die Möglichkeit der
Konfiguration vom Verfasser erweitert.
5.4.2 Lieferantenstammdaten
Die Lieferantenstammdaten werden in regelmäßigen Abständen vom VCI aus dem
Adressverwaltungssystem in die Datenbank des Asset-Management Systems Asset.Desk
importiert.
Die Datenbank enthält eine Tabelle Vendor (engl. Lieferant). Für den späteren Export an
das Buchhaltungssystem Syska muss die Datenbank um eine Tabelle erweitert werden, in
der die Kreditorennummer des Lieferanten gespeichert wird.
Für den ausschließlich lesenden Zugriff auf die Lieferantendaten wird eine Sicht auf diese
beiden Tabellen erstellt (VendorView). Diese Ansicht beinhaltet die ID und den
Kurznamen des Lieferanten, einen Ansprechpartner mit Kontaktinformationen und die
Kreditorennummer.
Das Select-Statement für diese Sicht lautet: SELECT Vendor.VendorID, VendorSyskaMapping.SyskaAccountNr,
Vendor.VendorNameShort, Vendor.NameContact, Vendor.PhoneContact,
Vendor.EmailContact, Vendor.TitleContact
FROM Vendor LEFT OUTER JOIN VendorSyskaMapping ON Vendor.VendorID =
VendorSyskaMapping.VendorID;
Seite 38
Der Left Outer Join bewirkt, dass alle Lieferanten in der View enthalten sind,
selbst wenn für diese keine SyskaAccountNr eingetragen wurde.
Der Zugriff auf die Lieferanten erfolgt über drei Methoden, die in dem Interface
IVendorWebMethods definiert werden. Dieses Interface wird von dem für dieses
Projekt entwickelten Asset.Desk-Service implementiert:
1. GetAllVendors: Liefert alle Lieferanten der Ansicht.
2. GetVendorByID: Liefert die Daten eines Lieferanten identifiziert durch die als
Parameter übergebene ID.
3. GetVendorsLike: Gibt alle Lieferanten zurück, die eine als Parameter übergebene
Zeichenkette im Kurznamen haben.
Die Methode GetVendorsLike wird später vom Formular aufgerufen. Dabei kann der
Benutzer eine beliebige Zeichenfolge eingeben. Mit den zurückgegebenen Lieferanten
wird dann ein Auswahlfeld gefüllt, aus dem der Benutzer den gesuchten Lieferanten
auswählen kann.
Einige Daten des Lieferanten werden in einem Abschnitt des Formulars angezeigt, so
dass der Benutzer diese mit den Angaben auf der Bestellung oder Rechnung vergleichen
kann und die Auswahl eines falschen Lieferanten vermieden wird.
5.4.3 Assets
Der Asset.Desk Service implementiert das Interface IAssetWebMethods und stellt
damit folgende Methoden zum Lesen und Schreiben von Assets zur Verfügung:
1. GetAllAssetTypes: Liefert alle Asset-Typen aus der Tabelle DeviceType zurück.
2. GetAssetTypeByTypeName: Gibt den- oder diejenigen Asset-Typen aus der Tabelle
DeviceType zurück, die den übergebenen Namen haben.
3. GetAssetsByProcessID: Gibt alle Assets zurück, die einer übergebenen
Vorgangsnummer zugeordnet sind.
4. GetDeviceByID: Gibt den Datensatz der Tabelle Device mit der übergebenen ID
zurück.
5. SaveAsset: Speichert ein übergebenes Asset in der Datenbank.
6. SaveAssetXML: An diese Methode wird der komplette XML-Knoten „Assets“ aus dem
InfoPath-Datenschema und die Lieferanten-ID und die Vorgangsnummer übergeben.
Die einzelnen Assets werden dann in der Datenbank gespeichert.
Seite 39
Die Unterscheidung, ob beim Aufruf der Speichermethoden ein Insert oder ein Update
ausgeführt wird, erfolgt anhand der AssetID. Ist diese leer, handelt es sich um ein Insert,
andernfalls um ein Update.
Der lesende Zugriff auf die Assets erfolgt über die Sicht DeviceView, die mit dem
folgenen SQL-Statement angelegt werden kann: SELECT DeviceProcessNrMapping.ProcessNr, Device.DevID,
Device.ICCMDeviceType, Device.DeviceName, Device.Manufacturer,
Device.SerialNr, Device.FirstAudit, Device.ImportDate, Device.LastUpdate
FROM Device INNER JOIN DeviceProcessNrMapping ON Device.DevID =
DeviceProcessNrMapping.DevID
Diese Sicht enthält auf Grund des Inner Join nur Assets, die mit diesem Prozess
angelegt wurden.
Schreibende Zugriffe erfolgen direkt in die Tabellen Device, DeviceProcessNrMapping
und CommercialDevData. Die genaue Zuordnung der Felder kann Tabelle 7 auf Seite 26
entnommen werden.
Die Daten der Assets werden nicht redundant im Formular gespeichert. Nach dem
Schließen des Formulars entfernt ein Eventhandler alle Asset-Knoten aus dem XML. Beim
nächsten Öffnen des Formulars werden alle Assets zu diesem Vorgang aus der
Datenbank abgerufen.
Ein SharePoint-Eventhandler ist eine Assembly, die an eine Dokumentenbibliothek oder
Liste gebunden wird. Ausgelöst wird ein Eventhandler durch ein Ereignis, z.B. das
Hinzufügen eines Elementes zu einer Liste.
Die Asset.Desk-Schnittstelle (Lieferantenstammdaten und Assets) wird in Abbildung 13:
Klassendiagramm Asset.Desk-Schnittstelle vollständig dargestellt. Die Klassenstruktur
wurde von Visual Studio 2005 generiert.
Die Klasse Asset bildet das Datenschema eines Assets im Formular ab und wird für die
Datenübergabe zwischen Formular und AssetDeskService benötigt.
Der Quellcode der kompletten Schnittstelle befindet sich im Anhang.
Seite 40
Abbildung 13: Klassendiagramm Asset.Desk-Schnittstelle
Seite 41
5.4.4 Syska
Wie in Abschnitt 4.2.3 beschrieben, wurde beschlossen, den Syska-Webdienst als
Schnittstelle einzusetzen. Zum Speichern von Buchungssätzen in den Stapel des
Mandanten wird die Methode StapelBuchungSave (siehe Anlage D.1 StapelBuchungSave)
verwendet.
Leider kann der Webdienst nicht direkt aus dem Formular heraus aufgerufen werden, da
hierfür die Parameter Mandant und Stapel benötigt werden und die
Rechnungspositionen aus dem Positionsschema extrahiert werden müssten. Zu diesem
Zweck wird ein weiterer Webdienst entwickelt: Der HanseVisionSyskaSoapWrapper.
In einer Konfigurationsdatei muss der Mandant, ein Stapel, ein Präfix für den
Buchungstext und die URL des Syska-Webdienstes angegeben werden.
Der HanseVisionSyskaSoapWrapper bekommt alle Positionen übergeben und filtert dann
die Rechnungspositionen heraus. Zusätzlich wird die Kontonummer des Lieferanten, die
Belegnummer, die Summe der kontierten Positionen, das Belegdatum und
Skontoinformationen an den Webdienst übergeben.
Abbildung 14: HanseVisionSyskaSoapWrapper
Die folgende Abbildung zeigt eine Buchung im Buchungsstapel des Mandanten.
Abbildung 15: Buchungsstapel in Syska SQL REWE FiBu
Seite 42
5.4.5 Archivierung
Angestoßen wird eine Archivierung immer durch einen Benutzer. Dieser hat dazu zwei
Möglichkeiten:
a.) In der Übersichtsansicht der Bestellung die Schaltfläche „Gesamten Vorgang
archivieren“ betätigen. Dann wird die Archivierung aller Formulare dieses Vorgangs
ausgelöst. Dabei wird nicht mehr geprüft, in welchem Status sich die anderen
Formulare befinden. Deshalb wird der Benutzer nach Betätigung der Schaltfläche
aufgefordert, seine Entscheidung zu bestätigen.
b.) In der Formularbibliothek den Workflow „Dieses Formular archivieren“ für ein
einzelnes Formular auslösen. Dieser archiviert nur dieses eine Formular und dessen
Dateianhänge.
Hauptbestandteil bei der Archivierung ist die Entnahme der Dateianhänge. Um dies zu
realisieren, wird eine Komponente zur Entnahme von Dateien aus dem XML benötigt.
Eine Realisierung wäre mit Hilfe eines Eventhandlers oder einer Workflow-Aktivität
möglich.
Eine Workflow-Aktivität wird in Visual Studio entwickelt und auf dem SharePoint Server
veröffentlicht. Solche Aktivitäten stehen danach im SharePoint Designer zur Verwendung
in Workflows zur Verfügung.
Der Aufwand für die Entwicklung einer Aktivität oder eines Eventhandlers ist der gleiche.
Beide können direkt auf das SharePoint-Objektmodell zugreifen und Objekte
manipulieren. Das Knowhow zur Entwicklung beider Komponenten ist vorhanden, das
heißt für andere Aufgabenstellungen wurde schon mehrfach ein Eventhandler bzw. eine
Aktivität entwickelt.
Da es sich bei der Entnahme der Dateien um einen Schritt des Workflows handelt, fällt
die Entscheidung zu Gunsten einer Aktivität: GetFileFromXmlActivity.
Die Dateianhänge werden beim Speichern im Dateisystem nach folgendem Schema
benannt: Vorgangsnummer-Fortlaufende Nummer-Art des Dokumentes-Dateiname.
Beispiel: 167-3-LS-Lieferschein.pdf
Seite 43
5.5 Formular
Die Überlegungen für das Design und die benötigten Felder für das Formular nahmen mit
Abstand die meiste Zeit in Anspruch. Begonnen wurde mit der Frage, welche Ansichten
das Formular haben würde. Es stand schnell fest, dass es für die Erfassung der
Bestelldaten, Lieferung und Rechnung jeweils eine eigene Ansicht geben wird. Zusätzlich
wird es eine Übersichtsansicht, die einen Überblick über alle wichtigen Informationen
des gesamten Vorgangs gibt und eine Positionsübersicht, die alle Positionen in
tabellarischer Form anzeigt, geben.
Die im Formular benötigten Felder wurden identifiziert und ein geeignetes InfoPath-
Datenschema erstellt.
Für die Feinspezifikation war es erforderlich, dass ein Design-Prototyp des Formulars mit
rudimentärer Funktionalität entworfen wird. An dieser Stelle möchte ich Thiemo
Laubach für seine tatkräftige Unterstützung beim Layout des Formulars danken!
Der Design-Prototyp wurde später weiterentwickelt.
5.5.1 Vorteile browserbasierter Formulare in SharePoint
An dieser Stelle werden die entscheidenden Vorteile der Integration von InfoPath-
Formularen mit Hilfe des Forms Servers in SharePoint herausgestellt.
Im InfoPath können Entwickler das Layout, Ansichten und Regeln definieren. Mit
InfoPath-Regeln können Bedingungen und Aktionen definiert werden, die beim Eintritt
bestimmter Ereignisse (z.B. Wertänderung oder Schaltfläche betätigt) ausgeführt
werden. Eine Aktion kann sein: Setzen eines Feldes, eine Datenverbindung abfragen,
Wechseln der Ansicht oder Speichern bzw. Schließen des Formulars.
Über Konsistenzprüfungen kann die korrekte Datenerfassung geprüft und mit bedingten
Formatierungen nicht benötigte Elemente ausgeblendet werden. Mit eingebettetem
Programmcode kann die Funktionalität nahezu beliebig erweitert werden.
Der Forms Server ist in der Lage, InfoPath Formulare im Browser zu rendern, d.h. es wird
kein installierter InfoPath-Client mehr benötigt. Die Berechnung und Ausführung von
Regeln geschieht serverseitig, um die Last auf den Clients zu minimieren. Alle o.g.
Möglichkeiten von InfoPath gelten auch für browserbasierte Formulare.
Eine SharePoint-Webseite stellt eine übersichtliche Zugriffsmöglichkeit auf die Formulare
zur Verfügung. In mehrere Ansichten können vorhandene Vorgänge gruppiert, sortiert
oder ausgeblendet werden. Dafür stehen Felder aus dem Datenschema des Formulars
zur Verfügung.
Seite 44
SharePoint übernimmt weitere Funktionen, wie z.B. die Versionierung, Zugriffkontrolle,
Suche oder Datenhaltung.
Mit Workflows, die erst nach dem Speichern des Formulars starten, ist die Umsetzung
auch komplexerer Geschäftsprozesse möglich. Das Versenden von E-Mails, Anlegen und
Ändern von Elementen in SharePoint-Listen oder Bibliotheken, Abfragen von
Webdiensten oder Zugriffe auf Datenbanken sind nur einige Anwendungsbeispiele von
Workflows.
5.5.2 Formularansichten
Das InfoPath-Formular soll sich den Bearbeitern unterschiedlich präsentieren, so dass
jeweils nur die Informationen angezeigt werden, die für den jeweiligen Arbeitsschritt
nötig sind. Hierzu werden sechs Ansichten realisiert:
1. Übersicht
Zeigt die wichtigsten Informationen des Vorgangs an und ermöglicht die Navigation
zu den Ansichten Bestellung, Lieferung und Rechnung.
Mitglieder der Gruppe Rechnungsbearbeiter haben außerdem die Möglichkeit, über
eine Schaltfläche eine neue Rechnung zu diesem Vorgang zu erstellen.
2. Bestellung
Diese Ansicht ermöglicht es, Bestelldaten und -positionen zu erfassen, einen
Lieferanten auszuwählen und digitalisierte Dokumente (Angebot, Auftrag,
Auftragsbestätigung) anzufügen.
3. Lieferung
Diese Ansicht zeigt im oberen Abschnitt die Bestelldaten schreibgeschützt an.
Lieferscheine können als digitalisiertes Dokument angefügt, neue Lieferungen
hinzugefügt und Assets angelegt oder geändert werden.
4. Rechnung
Nur Mitglieder der Gruppen Rechnungsbearbeiter und Prüfer haben Zugriff auf diese
Ansicht. Es können Rechnungsdaten erfasst und die Rechnung als digitalisiertes
Dokument angefügt werden. Rechnungspositionen können einzeln kontiert und die
Rechnung signiert werden.
5. Positionsübersicht
Gibt einen Überblick über alle Positionen. Hier ist es u.a. möglich, die Art einer
Position festzulegen, also als Buchungsposition, Lieferposition und/oder Rechnungs-
position zu deklarieren.
6. Keine Berechtigung
Seite 45
Diese Ansicht wird angezeigt, wenn ein Benutzer einen neuen Vorgang anlegen
möchte und nicht in der Gruppe Bestellbearbeiter ist.
Das Formular kann in allen Ansichten gespeichert und geschlossen werden.
5.5.3 Datenschema
Das InfoPath-Datenschema gibt die Felder vor, die von einzelnen Formularen gefüllt
werden können. Das Schema wird in mehrere Gruppen unterteilt:
Status: Enthält Felder über den Status des Formulars, in welcher Ansicht sich der
aktuelle Benutzer befindet, den Dateinamen und die Vorgangsnummer. Alle
Felder werden automatisch gesetzt. Die Vorgangsnummer wird beim ersten
Speichern einer Bestellung vergeben.
Benutzergruppen: Enthält den Benutzernamen des aktuellen Benutzers und für
jede Gruppe ein boolesches Feld, das angibt, ob der Benutzer dieser Gruppe
angehört. Die Abfrage mit Hilfe des AD-Webdienstes, in welchen Gruppen ein
Benutzer Mitglied ist, erfolgt beim Öffnen des Formulars.
Bestellung: Enthält alle Informationen, die zu einer Bestellung gehören, z.B. das
Bestelldatum, der verantwortliche Bereich und der Lieferant.
Lieferungen: Enthält im wiederholten Unterabschnitt Lieferung zu jeder Lieferung
das Datum, die Liefernummer und den Lieferschein als Dateianhang.
Rechnung: Enthält die Felder Rechnungsdatum, Rechnungsnummer,
Rechnungsbetrag, Summe kontierte Positionen, Skonto und die Rechnung als
Dateianhang.
Freigabe: Erster und zweiter Prüfer, jeweils mit Benutzername und E-Mail-
Adresse.
Das vollständige Datenschema ist in der Anlage D.3 beigefügt.
Mehrfach diskutiert wurde die Speicherung der Positionen. Es gibt Bestellpositionen,
Lieferpositionen, Rechnungspositionen und Assets.
Zur Diskussion stand die Speicherung in jeweils eigenen wiederholten Abschnitten für
jede Positionsart. Dabei entsteht jedoch eine erhebliche Datenredundanz. Zusätzlich
ergibt sich ein Problem bei der Übernahme von Bestellpositionen zu Lieferpositionen
oder Rechnungspositionen: Mit InfoPath ist das Einfügen von Datensätzen in wiederholte
Abschnitte nicht ohne Programmcode im Formular möglich. Über InfoPath-Regeln kann
nur der jeweils erste Datensatz verändert werden. Die Verwendung von Programmcode
im Formular macht eine so genannte Administratorveröffentlichung notwendig. Dabei
muss das Formular digital signiert und von einem Administrator auf den SharePoint
Seite 46
hochgeladen und genehmigt werden. Ein Formular ohne Programmcode kann ohne
Signatur und mit nur wenigen Mausklicks veröffentlicht werden. Es hat sich nach unserer
Erfahrung als „Best-Practice“ erwiesen, in komplexen Formularen mit mehreren
Benutzerrollen möglichst keinen Programmcode zu verwenden.
Die Alternative zu separaten Abschnitten für jede Positionsart ist die Speicherung aller
Positionen in einem wiederholten Abschnitt und Markieren der jeweiligen Positionsart.
Eine Position kann zu mehr als einem Positionstyp gehören. Jedoch passen Assets nicht
in dieses Positionsschema. Assets haben andere Felder und werden beim Öffnen über
die Schnittstelle in das Formular importiert. Für die Assets wird ein eigener Abschnitt
erstellt.
Position: Jede Position hat eine Positionsbezeichnung, einen Preis (netto), eine
Menge, einen Mehrwertsteuersatz und einen Bruttopreis (berechnet). Für jede
Positionsart gibt es ein boolesches Feld. Zwei weitere Felder werden für die
Kontierung der Rechnungspositionen benötigt: Kontonummer und
Kontobezeichnung.
Asset: Die Felder Bezeichnung, Typ, Seriennummer, Kaufdatum, Kaufpreis,
Garantieende und Hersteller werden mit vom Benutzer eingegebenen Daten
gefüllt. Das Feld Typ ist ein Auswahlfeld mit möglichen Asset-Typen, die von der
Asset-Schnittstelle geliefert werden. Das Feld AssetID wird beim Import der
Assets gefüllt.
Im InfoPath Datenschema vorhandene Felder können in der SharePoint-
Formularbibliothek als Spalten verfügbar gemacht werden. Dabei kann festgelegt
werden, ob ein Feld in der Formularbibliothek bearbeitet werden kann. Über diese
Spalten können dann SharePoint-Ansichten erstellt werden.
5.5.4 Logik
Beim Öffnen des Formulars wird eine geeignete Ansicht abhängig vom Status des
Vorgangs und der Benutzerrolle ausgewählt:
Beim Anlegen eines neuen Vorgangs wird automatisch die Ansicht „Bestellung“ geöffnet,
wenn der Benutzer in der Rolle „Bestellbearbeiter“ ist.
Wird eine Bestellung im Status „Bestellung erfasst“ geöffnet, wird die Ansicht
„Lieferung“ geöffnet, wenn der Benutzer in der Rolle Liefererfasser ist.
Wird eine Rechnung von einem Benutzer in den Rollen „Rechnungsbearbeiter“ oder
„Prüfer“ geöffnet, gelangt dieser in die Ansicht „Rechnung“. Öffnet ein anderer Benutzer
eine Rechnung, wird ihm die Übersichtsansicht angezeigt.
Seite 47
Über Regeln werden an vielen Stellen mathematische Berechnungen ausgeführt. So
berechnen sich der Bruttopreis einer Bestellposition aus dem Bruttopreis, der Menge
und dem MwSt.-Satz und die Bestellsumme automatisch aus der Summe der
Bruttopreise.
Das Einbinden von Datenquellen in Form von Webdiensten in ein InfoPath-Formular
ermöglicht das Empfangen und Senden von Daten von oder an einen Webdienst.
Beim Anlegen einer neuen Bestellung wird die im Active Directory hinterlegte Abteilung
des anlegenden Benutzers automatisch abgefragt und in das Feld „Verantwortlicher
Bereich“ eingetragen.
Als Datenquelle kann auch eine SharePoint-Liste oder Bibliothek verwendet werden. Aus
der Liste „Projekte“ werden die Einträge beim Öffnen des Formulars in einer Auswahlbox
hinterlegt. Ebenso werden die Skontosätze aus einer SharePoint-Liste abgerufen und in
eine Auswahlbox gefüllt.
Mit bedingten Formatierungen wird eine tabellarische Darstellung der einzelnen
Positionsarten umgesetzt. Drei dieser Tabellen wurden untereinander angeordnet und
zeigen jeweils eine Positionsart.
Abbildung 16: Positionsübersicht
Durch Ausblenden von Schaltflächen, mit denen die Ansicht umgeschaltet wird, kann
verhindert werden, dass Benutzer in Ansichten gelangen, für die sie keine Berechtigung
haben.
Seite 48
5.5.5 Konsistenzprüfungen
Um fehlerhaften Eingaben vorzubeugen, werden die im InfoPath-Formular erfassten
Daten gemäß den folgenden Konsistenzbedingungen (je Ansicht) geprüft, bevor eine
Speicherung möglich ist. Bei Verletzung einer Konsistenzregel wird eine Meldung
angezeigt und der Benutzer hat die Möglichkeit, seine Eingaben anzupassen.
Bestellung:
Die Felder Titel, verantwortlicher Bereich, Bestelldatum und Lieferant sind gefüllt
Es wurde mindestens eine Bestellposition eingetragen
Lieferung:
Zu jeder Lieferung wurde ein Lieferdatum eingetragen
Jede Lieferposition wurde einer Lieferung zugeordnet
Summe der Lieferpositionen ist nicht größer als die Bestellsumme
Rechnung:
Die Felder Rechnungsnummer, Rechnungsdatum und Rechnungsbetrag sind gefüllt
Es wurde mindestens eine Rechnungsposition eingetragen
Jede Rechnungsposition wurde einem Konto zugeordnet
Die Summe der kontierten Positionen überschreitet nicht die Rechnungssumme
Die Rechnungssumme überschreitet nicht die Bestellsumme
Die Übergabe der Rechnungsdaten an Syska ist nur möglich, wenn die Rechnung von
allen ausgewählten Prüfern signiert wurde und alle Rechnungspositionen kontiert
wurden.
5.5.6 Freigabe durch digitale Signaturen
Die Prüfer geben die Rechnungspositionen durch ihre digitale Signatur frei. Digitale
X.509-Signaturen sind bereits beim VCI vorhanden und können zur Freigabe verwendet
werden.
Nur einzelne, definierte Abschnitte im Datenschema des Formulars können im Forms
Server digital signiert werden. Die Gültigkeit der Signatur wird automatisch geprüft.
Seite 49
5.6 Workflow-Aktivität: GetFileFromXmlActivity
Um die Archivierung zu realisieren, muss eine Workflow-Aktivität in Visual Studio
implementiert werden.
Die GetFileFromXmlActivity entnimmt alle Dateianhänge aus einer XML-Datei und legt
diese im Dateisystem ab.
Folgende Konfigurationsparameter werden benötigt:
Pfad: Pfad im Dateisystem oder UNC-Pfad, an dem entnommene Dokumente
abgelegt werden sollen
Schreibgeschützt: ja/nein. Bei ja werden die Dateien schreibgeschützt abgelegt.
Als Schreibschutz wird das Read-Only-Attribut der Datei verwendet.
Löschen der Dokumente nach Entnahme: ja/nein. Bei ja werden die Dateien aus
dem XML gelöscht.
Seite 50
6 Implementierung
Nachdem der Design-Prototyp des Formulars für die Feinspezifikation entwickelt und
vom VCI abgenommen wurde, begann die eigentliche Implementierungsphase mit der
Umsetzung der Schnittstellen. Diese Schnittstellen sind im Hinblick auf eine mögliche
Wiederverwendung in anderen Projekten entwickelt worden. Die Webdienste bieten
neben den speziellen Methoden, die für die Übergabe von XML-Knoten erforderlich sind,
auch allgemeine Methoden, die von anderen Systemen genutzt werden können.
Zuerst wurde der Zugriff auf die Lieferantenstammdaten realisiert.
6.1 Lieferantenstammdaten
Die Zugriffe auf die Datenbank erfolgen über ein DataSet, das über einen grafischen
Designer in Visual Studio komfortabel erstellt werden kann.
Ein DataSet besteht aus einer oder mehreren Daten-Tabellen, die als Zwischenspeicher
für die Ergebnisse von Abfragen verwendet werden, die für jede Tabelle erstellt werden
können. Die Abfragen können zur Entwicklungszeit getestet werden.
Abbildung 17: Asset.Desk Service DataSet
Nach dem Erstellen der Datenbank-Abfragen mussten diese nur noch von einer
Webdienst-Methode aufgerufen und die Ergebnisse zurückgeliefert werden.
Seite 51
Am Beispiel der Lieferantensuche wird hier der Quellcode abgedruckt. Die vollständigen
Projektmappen finden sich im Anhang.
Die Methode GetVendorsLike des Webdienstes, ruft die gleichnamige Methode des
DBConnectors auf: /// <summary>
/// Liefert alle in der Tabelle Vendors gespeicherten Lieferanten zurück, deren
/// ShortName die übergebene Teilzeichenkette enthält.
/// </summary>
/// <param name="query">Teilzeichenkette</param>
/// <returns>Generic List (Vendor) von Lieferanten</returns>
[WebMethod]
public List<Vendor> GetVendorsLike(string query)
{
return dbconn.GetVendorsLike(query);
}
Der DBConnector initialisiert einen TableAdapter der VendorView und führt auf diesem
die Methode GetVendorsLike auf. Die gefundenen Lieferanten kommen als Datensätze
zurück und werden an einen Konstruktor des Vendor-Objektes übergeben:
public List<Vendor> GetVendorsLike(string query)
{
//Instanzieren einer GenericList zur Aufnahme der Lieferanten und eines
//TableAdapters
List<Vendor> foundVendors = new List<Vendor>();
VendorViewTableAdapter vendorTA = new VendorViewTableAdapter();
AssetDeskDS.VendorViewDataTable vendorDataTable =
VendorTA.GetVendorsLike(query);
//Füllen der Ergebnisliste mit den Lieferanten mit Hilfe des erweiterten
//Konstruktors der Vendor-Klasse.
foreach (AssetDeskDS.VendorViewRow aRow in vendorDataTable.Rows)
{
foundVendors.Add(new Vendor(aRow));
}
return foundVendors;
}
Da die benötigten Abfragen auf dem DataSet definiert wurden, können der Webdienst
und der DBConnector die Methodenaufrufe größtenteils durchreichen. Die Aufbereitung
der Ergebnisse geschieht im DBConnector.
Sobald die Schnittstelle funktionstüchtig war, wurde diese in das Formular integriert. Der
Benutzer hat die Möglichkeit eine Zeichenkette in ein Textfeld einzugeben und kann
danach die Schaltfläche „suchen“ betätigen. Dabei werden mehrere InfoPath-Regeln
ausgeführt:
Als Abfrageparameter (queryString) der Datenquelle wird die eingegebene
Zeichenkette gesetzt.
Die Datenquelle wird abgefragt
Die zurückgegebenen Lieferanten werden in eine Auswahlbox gefüllt
Seite 52
Wählt der Benutzer nun einen der gefundenen Lieferanten aus, werden weitere
Informationen zu diesem Lieferanten eingeblendet:
Abbildung 18: Lieferanteninformationen
Mit der fertigen Lieferantenschnittstelle konnte die Ansicht Bestellung fertig gestellt
werden. Screenshots zu allen Ansichten befinden sich in der Anlage D.2.
6.2 Assets
Das Formular ruft beim Speichern die Methode SaveAssetXML des AssetDeskService auf
und übergibt den gesamten Knoten „Assets“, die ID des Lieferanten und die
Vorgangsnummer als Aufrufparameter. Durch Übergabe des gesamten Knotens wird die
Aufgabe des Zerlegens in einzelne Assets an den Webdienst delegiert, wodurch
vermieden wird, dass Programmcode im Formular verwendet wird. Die Übergabe der
einzelnen Assets ist leider nicht möglich.
Beim Öffnen des Formulars werden automatisch die in der Datenbank gespeicherten
Assets zu diesem Vorgang abgerufen. Dies erfolgt über die Methode
GetAssetsByProcessID des AssetDeskServices. Die Rückgabe erfolgt als Liste von Asset-
Objekten, deren Felder in der gleichen Reihenfolge wie im InfoPath-Datenschema
angeordnet sind.
6.3 Syska
Die Übergabe der Buchungsdaten wird manuell angestoßen und ist nur möglich, wenn
die Rechnung von den Prüfern freigegeben wurde. Zur Übergabe betätigt ein Mitarbeiter
in der Rolle Rechnungsbearbeiter die Schaltfläche „Rechnungspositionen an Syska
exportieren“ in der Ansicht Rechnung.
Da die Daten nicht direkt an den Syska-Webdienst übergeben werden können, wurde ein
zusätzlicher Webdienst (HanseVisionSyskaSoapWrapper) entwickelt, der die Daten aus
dem Formular aufbereitet und an den Syska-Webdienst weitergibt. Überdies kann der
Seite 53
Wrapper Unzulänglichkeiten des Syska-Webdienstes (keine Rückmeldung, wenn
Kontonummer nicht vorhanden) kompensieren und auf diese Weise die Stabilität dieser
Schnittstelle verbessern.
6.4 Archivierung
Im Zuge der Umsetzung der Archivierung stellte sich heraus, dass eine weitere Workflow-
Aktivität benötigt wird. Während des Designs wurde davon ausgegangen, dass das
Setzen mehrerer Felder, die einer Bedingung genügen mit bereits vorhandenen
Aktivitäten möglich ist. Dies ist jedoch falsch. Es war nötig, eine weitere Workflow-
Aktivität zu implementieren: SetFieldInMultipleListItemsActivity.
Diese Aktivität setzt ein Feld von allen Elementen einer Liste oder Bibliothek, das in
einem Vergleichsfeld wertgleich mit dem auslösenden Element ist. Die Aktivität wird
beim Archivieren des gesamten Vorgangs benötigt. Dabei wird bei allen Formularen mit
der gleichen Vorgangsnummer (Vergleichsfeld) das Feld Status auf den Wert „in
Archivierung“ gesetzt.
Folgende Konfigurationsparameter werden benötigt:
Vergleichsfeld
Feld, das gesetzt wird
Wert, der gesetzt wird
Durch eine sehr intensive Auseinandersetzung mit den Schnittstellen und den Backend-
Systemen bereits im Vorfeld der Entwicklung in der Analyse und dem Design konnten
viele Probleme, wie z.B. die Kapselung des Syska-Webdienstes durch einen weiteren
Webdienst, bereits im Vorfeld gelöst werden. Für die Feinspezifikation wurde bereits ein
Formular-Prototyp mit rudimentärer Funktionalität entwickelt, der in der
Implementierungsphase weiterentwickelt wurde. Dadurch konnte der Schwerpunkt ganz
deutlich auf die Entwicklung der Schnittstellen gelegt werden.
Seite 54
7 Deployment
Für die Installation der entwickelten Lösung in der Umgebung eines Kunden gelten
immer besondere Bedingungen, wie sie in einer Testumgebung nur schwer, oder mit
nicht mehr angemessenem Aufwand nachgebildet werden können. Dies gilt
insbesondere für die Verteilung der einzelnen Systeme auf verschiedene Server. Die
Testumgebung bestand in diesem Fall aus zwei Windows Server 2003 R2 Servern:
1. Domänencontroller, MOSS 2007
2. Asset.Desk, Syska SQL REWE und Archivierung
Beim VCI sind die genannten Systeme jeweils auf einzelne Server verteilt.
Alle Webdienste sollen mit minimalen Berechtigungen ausgeführt werden, so dass keine
Sicherheitsrisiken entstehen. Daher wurden für die Webdienste eigene Service-Accounts
(Domänen-Benutzer, die nur für die Ausführung dieser Webdienste verwendet werden)
erstellt. Diesen wurde für den jeweiligen Server, auf dem der Webdienst installiert wird,
die Berechtigung zugewiesen, Webdienste auszuführen und erhielten ausreichende
Zugriffrechte auf die jeweilige Datenbank.
In der Testphase wird auf einer Kopie der Asset.Desk Datenbank gearbeitet, die um die
Tabellen VendorSyskaMapping und DeviceProcessNrMapping und um die Sichten
VendorView und DeviceView erweitert wurde.
Um die Installation der benötigten Webdienste zu vereinfachen, wurden
Installationspakete (sog. Web-Setup Projekte) unter Visual Studio erstellt. Diese
umfassen alle benötigten Dateien.
Insgesamt sind vier Webdienste zu installieren:
1. Syska-Webdienst
2. HanseVisionSyskaSoapWrapper
3. AssetDeskService
4. HanseVisionADWebdienst
Die Installation der Webdienste erfolgte auf verschiedenen Servern. Die Syska COM-
Schnittstelle, der Syska-Webdienst und der HanseVisionSyskaSoapWrapper wurden auf
dem gleichen Server installiert, auf dem auch die Syska-Datenbank liegt.
Ebenso wurde auch der AssetDeskService auf dem gleichen Server installiert, auf dem
bereits die Asset.Desk Software installiert ist.
Der für die Abfrage von Benutzerdaten und Gruppen aus dem Active Directory benötigte
HanseVisionADWebdienst wird auf dem SharePoint-Server installiert.
Seite 55
Die drei Webdienste wurden getestet und konnten sich erfolgreich zu den jeweiligen
Datenbanken bzw. zum AD verbinden.
Nach der Installation der Schnittstellen wurde die SharePoint-Webseite eingerichtet, wie
in Kapitel 5.3 beschrieben.
Nachdem die benötigten Bibliotheken und Listen erstellt wurden, mussten die
Datenverbindungsdateien aus dem Testsystem einzeln angepasst werden.
Beispiel für eine udcx-Datenverbindungsdatei, die Daten aus der SharePoint-Liste
„Projekte“ abruft: <?xml version="1.0" encoding="UTF-8"?>
<?MicrosoftWindowsSharePointServices
ContentTypeID="0x010100B4CBD48E029A4ad8B62CB0E41868F2B0"?>
<udc:DataSource MajorVersion="2" MinorVersion="0"
xmlns:udc="http://schemas.microsoft.com/office/infopath/2006/udc">
<udc:Name>SPList: Projekte</udc:Name>
<udc:Description>Format: UDC V2; Connection Type: SharePointList; Purpose:
ReadOnly; Generated by Microsoft Office InfoPath 2007 on 2007-02-17 at
18:55:10 by laptopmh\Matthias.</udc:Description>
<udc:Type MajorVersion="2" MinorVersion="0" Type="SharePointList">
<udc:SubType MajorVersion="0" MinorVersion="0" Type=""/>
</udc:Type>
<udc:ConnectionInfo Purpose="ReadOnly" AltDataSource="">
<udc:WsdlUrl/>
<udc:SelectCommand>
<udc:ListId>{538A710D-8F78-4FD5-A631-36985781F7A3}</udc:ListId>
<udc:WebUrl>http://vci/</udc:WebUrl>
<udc:ConnectionString/>
<udc:ServiceUrl UseFormsServiceProxy="false"/>
<udc:SoapAction/>
<udc:Query/>
</udc:SelectCommand>
</udc:ConnectionInfo>
</udc:DataSource>
Diese Datenverbindungsdatei ist dem Testsystem entnommen. Um diese beim VCI
verwenden zu können, muss die ListID und die WebUrl angepasst werden. Danach kann
die Datei in den Datenverbindungskatalog hochgeladen werden.
Nachdem die Datenverbindungsdateien angepasst und hochgeladen wurden, müssen
diese für die Verwendung durch InfoPath-Formulare von einer Person in der Rolle
„Besitzer der Webseite“ genehmigt werden.
Seite 56
Abbildung 19: InfoPath Datenverbindungen
Danach sollten die Datenverbindungen im InfoPath noch einmal überprüft werden. Dies
geschieht mit wenigen Mausklicks mit Hilfe des Datenverbindungs-Assistenten. Kann
eine Datenquelle nicht erreicht werden, deutet dies auf einen Fehler in der
Datenverbindungsdatei hin.
Sind alle Datenverbindungen korrekt, muss das Formular mit einem Assistenten
veröffentlicht werden. Nach der Veröffentlichung kann man sich das Formular direkt
anzeigen lassen:
Seite 57
Abbildung 20: Formularansicht Bestellung
In der ersten Testphase wird die Syska-Schnittstelle noch nicht integriert. Die Übergabe
von Buchungen soll erst erfolgen, wenn die Schritte Bestellung, Lieferung und Rechnung
getestet sind.
Seite 58
8 Resümee
In dieser Arbeit wurde beschrieben, wie das Bestellwesen beim Verband der Chemischen
Industrie mit Hilfe des 2007 Microsoft Office Systems an die aktuellen Anforderungen
angepasst wurde.
In diesem Kapitel werden die Ergebnisse dieser Arbeit beschrieben, die Tragfähigkeit
dieser Lösung diskutiert und mögliche Erweiterungen aufgeführt.
8.1 Zusammenfassung der Arbeit
Mit Hilfe von InfoPath-Formularen und dem Microsoft Office SharePoint Server 2007
wurde das Bestellwesen als Geschäftsprozess neu umgesetzt. Die Benutzerinteraktion
erfolgte über ein Formular, das sich –je nach Bearbeiter– unterschiedlich präsentiert und
jeweils die Informationen anzeigt, die für den aktuellen Bearbeitungsschritt erforderlich
sind.
Der Forms Server ermöglicht, dass die Formulare mit Hilfe eines Browsers angezeigt
werden können. Dadurch ist eine Installation von InfoPath auf dem Client nicht mehr
erforderlich.
Als zentraler Einstiegspunkt in den Prozess wird eine SharePoint-Webseite verwendet.
Neue Vorgänge werden dort angelegt und gespeichert. Viele Ansichten geben eine
Übersicht über laufende und abgeschlossene Vorgänge und ermöglichen ein schnelles
Auffinden einzelner Vorgänge.
In Abschnitt 3.2 wurden sechs Hauptziele identifiziert. Wie diese Ziele erreicht wurden,
wird im Folgenden beschrieben:
1. Einfaches Handling
Die Dateneingabe erfolgt über Formulare, die übersichtlich strukturiert sind und nicht
größer als eine Bildschirmseite sind. Es gibt keine Untermenüs und nur wenige
Schaltflächen zum Umschalten der Ansicht und zum Speichern bzw. Abbrechen.
2. Optimierung der Datenerfassung
Alle Daten müssen nur ein einziges Mal bei der Bestellung erfasst werden. In den
Ansichten Lieferung und Rechnung stehen diese Daten wieder zur Verfügung.
Der Prozess kann papierlos ablaufen, da die Dokumente eingescannt und als
Dateianhänge dem Formular angefügt werden können.
3. Integration von Backendsystemen
Durch die Integration der Lieferantenstammdaten, des Asset-Managements und der
Finanzbuchhaltungssoftware mit Hilfe von Webdiensten wird ein mehrfacher
Erfassungsaufwand vermieden und ein schneller, nahtloser und automatisierter
Datenfluss zwischen den verschiedenen am Prozess beteiligten Fachabteilungen und
Systemen ermöglicht.
Seite 59
4. Übersicht überlaufende Prozesse
Viele Ansichten in der SharePoint-Formularbibliothek geben einen Überblick über
laufende und abgeschlossene Vorgänge. Vorhandene Ansichten können angepasst
und neue erstellt werden. Dadurch wird ermöglicht, dass jeder Benutzer genau die
Informationen erhält, die er benötigt.
5. Verkürzung der Durchlaufzeit des Prozesses
Durch Benachrichtigungen der Prüfer, sobald eine neue Rechnung zur Prüfung
vorliegt und der Buchhaltung, sobald eine Rechnung freigegeben wurde, sowie der
automatischen Datenübernahmen innerhalb des Formulars und der Schnittstellen,
können kürzere Reaktionszeiten erreicht werden und es verringern sich die
manuellen Arbeitsschritte der beteiligten Personen.
Die Benutzer müssen sich Informationen nicht mehr selbst abholen, sie werden
informiert, wenn sie eine Aktion ausführen sollen oder können.
6. Archivierung abgeschlossener Vorgänge
Nach Abschluss eines Vorgangs kann dieser, einschließlich aller Dateianhänge im
Langzeitarchivierungssystem abgelegt werden. Dies geschieht automatisch und
wurde über einen Workflow umgesetzt. Die Archivierung muss lediglich vom
Benutzer mit wenigen Mausklicks angestoßen werden.
8.2 Diskussion
Rückblickend auf das Projekt war es eine richtige Entscheidung, mehr Zeit in die Analyse
und das Design der Lösung zu investieren. Insbesondere die Einarbeitung in die Backend-
Systeme hat einige Zeit in Anspruch genommen, die sich letztendlich aber gelohnt hat.
In zukünftigen Projekten werde ich diese Entscheidung wieder zu treffen haben und ich
bin sicher, dass es sich lohnen wird, mehr Aufwand in die konzeptionelle Planung zu
investieren, auch wenn dies über den in der Projektplanung abgeschätzten Aufwand
hinaus geht. Die Vorteile einer intensiveren Planung resultieren, nach meinen
Erfahrungen in diesem Projekt, in einer kürzeren und flüssigeren
Implementierungsphase.
Die Anbindung der Backend-Systeme über Webdienste und damit einen Schritt hin zu
einer Service-orientierten Architektur (SOA) zu machen, war ebenso eine gute
Entscheidung. Da Interfaces die Schnittstellen nach außen hin beschreiben, wirken sich
Veränderungen am Programmcode einer Schnittstelle nicht auf andere Komponenten
aus. Updates für eine Schnittstelle können eingespielt werden, ohne Seiteneffekte
befürchten zu müssen.
Seite 60
Die Lösung wurde beim VCI ausgerollt und befindet sich aktuell in einer Testphase. Das
Formular wurde gut angenommen. Für die Bestellbearbeiter ergibt sich ein
Mehraufwand gegenüber dem bisherigen Prozessablauf, da sie die Bestellpositionen
erfassen müssen. Durch eine sinngemäße Gruppierung von Bestellpositionen kann der
Erfassungsaufwand für die Bestellbearbeiter aber reduziert werden. Die Liefererfasser
und Rechnungsbearbeiter haben nur einen sehr geringen Erfassungsaufwand, die diese
die bereits existierenden Positionen übernehmen können.
Noch nicht abschließend entschieden sind zwei Punkte:
Erfassung der Mehrwertsteuer: Der VCI rechnet komplett in Bruttobeträgen, auch
im Asset-Management. Die Übergabe der Buchungspositionen erfolgt ebenfalls
brutto. Daher könnte auf eine Erfassung der Mehrwertsteuer verzichtet werden.
Erstellen von Assets aus vorhandenen Lieferpositionen heraus: Vorteilhaft wäre
eine Funktion, die aus vorhandenen Lieferpositionen heraus neue Assets anlegen
kann. Dies ist auf Grund des Datenschemas und der Beschränkung beim Einfügen
in wiederholte Abschnitte durch InfoPath nur mit Code umzusetzen.
Von Seiten des VCI wurden zwei Change-Requests geäußert:
1. Die Kontonummern und Kontobezeichnungen sollen in einer SharePoint-Liste
eingetragen werden und dann im Formular in einer Auswahlbox zur Verfügung
stehen. Bislang muss die Kontonummer manuell eingegeben werden. Diese wird
dann gegen die Syska-Schnittstelle geprüft und bei korrekter Kontonummer die
Kontobezeichnung eingetragen. Auf diese Weise wurde verhindert, dass falsche
Kontonummern an die Finanzbuchhaltung exportiert werden konnten.
Da es sich beim VCI nur um einen sehr begrenzten Nummernkreis handelt, ist der
einmalige Aufwand der Datenerfassung in einer SharePoint-Liste überschaubar.
Auch der Aufwand für die Umsetzung dieses Change-Requests ist gering, da nur die
Datenverbindung zur SharePoint-Liste hinzugefügt und wenige Regeln angepasst
werden müssen.
2. In Rechnungen kontierte Positionen sollen in der Bestellung als kontiert vermerkt
werden. Dieser Request ist aufwendiger, da Rechnungen als separates Formular
angelegt werden. Um diese neue Anforderung zu realisieren ist ein Rückbezug auf
Daten in einem anderen Formular (dem Bestellformular) erforderlich.
Dies kann nicht mehr allein mit InfoPath-Regeln erfolgen. Hierzu ist eine weitere
Komponente, entweder eine Workflow-Aktivität, oder ein Eventhandler, erforderlich.
Seite 61
8.3 Fazit und Ausblick
Das 2007 Microsoft Office System, insbesondere InfoPath und SharePoint sind für die
Abbildung von Prozessen hervorragend geeignet. Im Zusammenspiel mit der Windows
Workflow Foundation wird die Umsetzung auch komplexerer Geschäftsprozesse
ermöglicht. Eine SharePoint-Webseite kann als „Prozess-Zentrale“ eingesetzt werden.
Das einheitliche und bekannte Look & Feel der Office-Reihe dient der
Benutzerakzeptanz, insbesondere in der Einführungsphase.
Beschaffungsmanagement und Bestellwesen sind als Geschäftsprozesse in jedem
Unternehmen vorhanden. Beim Kundenkontakt auf Veranstaltungen und in Workshops
wurde bereits mit Firmen, die ein konkretes Interesse an der Einführung eines
einheitlichen Beschaffungsmanagements auf SharePoint-Basis haben, Kontakt
aufgenommen. Daher bin ich sicher, dass die hier gewonnene Praxiserfahrung weitere
Male erfolgreich eingesetzt werden kann.
Zuletzt bleibt noch zu sagen, dass ich nach Abschluss des Studiums bei der Layer2 GmbH
in eine Festanstellung übernommen werde. Der Einsatz im Bereich Portale und Workflow
wird mir mit Sicherheit reichlich Gelegenheit geben, meine in diesem Projekt
erworbenen Kenntnisse über die Umsetzung von Geschäftsprozessen mit Microsoft
Office 2007 einzusetzen und weiter zu vertiefen.
Seite 62
A. Glossar
Asset Anlage, Anlagegut oder Inventargut mit wirtschaftlichem Wert für
ein Unternehmen. Dabei kann es sich um Gebäude, Einrichtung,
aber auch Hard- und Software handeln. Der Begriff kommt
ursprünglich aus der Finanzbranche.
Assembly Eine .NET Assembly ist eine Datei mit der Endung dll oder exe und
enthält vorkompilierten .NET-Code. Zusätzlich können weitere
Dateien in einer Assembly verpackt werden. Eine genaue
Beschreibung kann in [Richter06] nachgelesen warden.
DFS Distributed File System (übersetzt: Verteiltes Dateisystem): Unter
Microsoft Server Systemen ein Dienst, der den Zugriff
Verzeichnisse, die physikalisch über mehrere Server verteilt sind,
nach außen wie auf ein Verzeichnis erlaubt. Dadurch wird
gegenüber dem Benutzer der tatsächliche Speicherort verborgen.
Domäne Eine Domäne besteht aus mehreren Rechnern (Server und
Clients), Peripheriegeräten, Benutzern und Gruppen. Über eine
Domäne kann das Single-Sign-On für Benutzer eingerichtet
werden.
Domänen-Controller Ein Domänencontroller ist ein Microsoft Server, der eine Domäne
mit Hilfe des Active Directory verwaltet.
Lightweight Directory
Access Protocol
Netzwerkprotokoll in der Anwendungsschicht, das für den Zugriff
auf Verzeichnisdienste verwendet wird. Die Spezifikation findet
sich in RFC 2251, http://tools.ietf.org/html/rfc2251.
Single-Sign-On Einmalige Authentifizierung eines Benutzers. Danach wird ihm
ohne erneute Anmeldung der Zugriff auf alle Daten und
Programme gewährt, für die er berechtigt ist.
Stored Procedure Funktion in einer Datenbank, die eine oder mehrere Aktionen
serverseitig ausführt.
X.509 Von der ITU-T veröffentlichter Standard für digitale Zertifikate zur
Identifikation einer Person oder eines Computers. Vgl. [RFC3280]
Seite 63
B. Literaturverzeichnis
[Andrew06] Paul Andrew et al, Presenting Windows Workflow Foundation Beta Edition, Sams
Publishing, 2006, ISBN: 0-672-32848-8
[Christ03] Oliver Christ, Content-Management in der Praxis, Springer-Verlag Berlin,
Heidelberg, New York, 2003, ISBN: 3-540-00103-4
[FCSWeb] Webseite der Firma FCS Fair Computer Systems GmbH, http://www.fair-
computer.de, letzter Zugriff am 25.02.2007
[Gamma96] Erich Gamma et al, Entwurfsmuster – Elemente wiederverwendbarer objekt-
orientierter Software, Addison-Wesley, 1996, 1. Auflage, ISBN: 3-89319-950-0
[Gurzki04] Thorsten Gurzki et al, Was ist ein Portal? Definition und Einsatz von
Unternehmensportalen, Whitepaper, Fraunhofer Institut Arbeitswirtschaft und
Organisation, 2002-2004.
http://www.gurzki.de/publications/padem/Was%20ist%20ein%20Portal/, letzter
Zugriff am 01.03.2007
[Harel87] David Harel, Statecharts: A Visual Formalism for Complex Systems, Science of
Computer Programming 8, Herausgeber: Elsevier Science Publishers (North
Holland), 1987, Seiten 231-274
[Hillier05] Scot P. Hillier, Advanced SharePoint Services Solutions, Springer-Verlag, New
York, Heidelberg, 2005, ISBN: 1-59059-456-8
[HMD225] Joachim Schelp, Robert Winter, Enterprise Portals und Enterprise Application
Integration, HMD – Praxis der Wirtschaftsinformatik, Juni 2002, ISBN: 3-89864-
160-0, Seite 6-20
[IDS2005] Pressemitteilung über die Studie „Business Process Report 2005“ der Firma IDS
Scheer, http://www.ids-scheer.com/international/german/44888, letzter Zugriff
am 12.03.2007
[ISO 19005-1] ISO-19005-1 – Document management – Electronic document file format for
long-term preservation – Part 1: Use of PDF 1.4 (PDF/A-1), veröffentlicht:
28.09.2005.
[Jeschke05] Joachim Jeschke et al, Microsoft Office InfoPath 2003 – Das Handbuch, Microsoft
Press Deutschland, Unterschleißheim, 2005, ISBN: 3-86063-182-9
[Kahlbrandt05] Bernd Kahlbrandt, Software-Engineering, Skript zur Vorlesung Software-
Engineering an der HAW-Hamburg, 2005
[Larman98] Craig Larman, Applying UML and Patterns – An Introduction to Object-Oriented
Analysis and Design, Prentice Hall PTR, Upper Saddle River, New Jersey, 1998,
ISBN: 0-13-748880-7
[Lorenzen] Klaus F. Lorenzen, Wissenschaftliche Anforderungen an Diplomarbeiten und
Kriterien ihrer Beurteilung und Das Literaturverzeichnis in wissenschaftlichen
Arbeiten , Download über http://www.bui.fh-hamburg.de/pers/klaus.lorenzen/,
letzter Zugriff am 10.03.2007
[LundKWeb] Webseite der Firma Dr. Lauer und Karrenbauer, http://www.lundk.de/
[MayWeb] Webseite der Firma May Computer GmbH, http://www.pdfprinter.at, letzter
Zugriff 07.03.2007
Seite 64
[MeridioWeb] Webseite der Firma Meridio Ltd, http://www.meridio.com/
[MSTechNetAD] http://www.microsoft.com/technet/prodtechnol/windowsserver2003/de/library
/ServerHelp/a9d684f0-90b1-4c67-8dca-7ebf803a003d.mspx?mfr=true, letzter
Zugriff 01.03.2007
[NetAppWeb] Webseite der Firma Network Appliance, Inc., http://www.netapp.com/, letzter
Zugriff am 05.03.2007
[Newcomer05] Eric Newcomer, Greg Lomow, Understandig SOA with Web Services, Addison-
Wesley, Upper Saddle River, New Jersey, 2005, ISBN: 0-321-18086-0
[Oestereich01] Bernd Oestereich, Objektorientierte Softwareentwicklung – Analyse und Design
mit der Unified Modeling Language, Oldenbourg Verlag, München, Wien, 2001,
ISBN: 3-486-25573-8
[Oestereich03] Bernd Oestereich et al, Objektorientierte Geschäftsprozessmodellierung mit der
UML, dpunkt.verlag GmbH, Heidelberg, 1. Auflage, 2003, ISBN: 3-89864-237-2
[OFCK47] Die Konvention der Skontosätze ist in der Dokumentation zur Syska-Schnittstelle
(OFCK_COM.pdf) auf Seite 47 im Anhang zu finden.
[Office07] Offizielle Office2007 Webseite von Microsoft, http://office.microsoft.com/de-
de/sharepointserver/default.aspx, letzter Zugriff am 26.02.2007
[RFC3280] Internet X.509 Public Key Infrastructure - Certificate and Certificate Revocation
List (CRL) Profile, http://tools.ietf.org/html/rfc3280, letzer Zugriff am 12.03.2007
[Richter06] Microsoft .NET Framework – Programmierung in C#, Jeffrey Richter, Microsoft
Press Deutschland, Unterschleißheim, 2006, 2. Auflage, ISBN: 3-86063-984-6
[SyskaWeb] Webseite der Firma Syska GmbH, http://www.syska.de, letzter Zugriff am
25.02.2007
[WFov] Windows Workflow Foundation Overview, http://msdn2.microsoft.com/en-
us/netframework/aa663340.aspx, letzter Zugriff am 26.02.2007
Seite 65
C. Index
.NET Framework ............................................ 10 Abteilung ....................................................... 47 Active Directory ......... 11, 15, 24, 31, 36, 47, 54 Administratorveröffentlichung ..................... 45 Anforderung .................................................. 13 Anforderungsanalyse ................................ 6, 19 Angebot ................................................... 13, 44 Ansicht ................................................. 9, 33, 46 Anwendungsfall ............................................. 20 Applikation ...................................................... 7 Architektur ...................................................... 4 Archivierung .............. 17, 24, 27, 32, 42, 49, 59 ASP.NET ................................................... 10, 12 Assembly ....................................................... 39 Asset ................................ 22, 25, 38, 46, 52, 58 Asset.Desk ............................. 16, 25, 37, 39, 54 AssetDeskService ........................................... 54 Attribut .......................................................... 37 Auftragsbestätigung ...................................... 22 Aufwandsschätzung ........................................ 6 Authentifizierung .......................................... 36 AutoPDF......................................................... 29 Benachrichtigung .......................... 4, 19, 23, 28 Benutzerrolle ..................................... 30, 31, 46 Berechtigung ................................................. 34 Beschaffungsprozess ....................................... 4 Besitzer der Webseite ................................... 55 Bestellbearbeiter ......................... 30, 34, 46, 60 Bestellung .................. 13, 22, 38, 44, 45, 48, 52 Bibliothek ....................... SharePoint-Bibliothek Browser ......................................... 8, 10, 43, 58 Buchhaltung .................................................. 14 Buchungskonto .............................................. 48 Buchungsstapel ............................................. 41 COM......................................................... 26, 54 CommercialDevData ............................... 26, 39 Corporate Design .......................................... 12 DataSet .......................................................... 50 Dateianhang ...................................... 32, 42, 49 Dateisystem ................................................... 49 Datenbank ................................................. 8, 54 Datenerfassung ............................................... 9 Datenquelle ................................... 8, 36, 51, 56 Datensatz ....................................................... 45 Datenschema....... 25, 30, 38, 39, 43, 45, 46, 52 Datensicherung ............................................. 17
Datenübergabe ............................................. 19 Datenverbindung ...................................... 9, 60 Datenverbindungsdatei ................................ 55 Datenverbindungskatalog ...................... 33, 55 Device ..................................................... 25, 39 DeviceProcessNrMapping....................... 39, 54 DeviceType ................................................... 38 DeviceView ........................................26, 39, 54 DFS ................................................................ 27 Dokumentfreigabe .......................................... 3 Domäne ........................................................ 37 Domänencontroller ................................ 37, 54 Eventhandler .....................................39, 42, 60 Feinspezifikation .......................... 18, 24, 43, 50 Finanzbuchhaltungssoftware ..............4, 16, 58 Forms Server ................................ 10, 36, 43, 58 Formular ... 4, 25, 30, 38, 42, 43, 48, 50, 51, 52,
55, 58 Formularbibliothek ....................................... 46 Formularvorlage ............................................. 9 Freigabe ............................. Rechnungsfreigabe Frontpage ..................................................... 12 Genehmigungsprozess.................................... 3 Geschäftsdaten ............................................... 8 Geschäftsprozess ...................................... 3, 58 GetAssetsByProcessID .................................. 52 GetFileFromXmlActivity ................................ 42 HanseVision .................................................... 5 HanseVisionADWebdienst ...................... 36, 54 HanseVisionSyskaSoapWrapper ............. 41, 54 IAssetWebMethods ................................ 38 InfoPath ............................. 9, 30, 33, 43, 55, 58 Infrastruktur ................................................... 3 Installation .................................................... 54 Installationspaket ......................................... 54 Interface ....................................................... 59 Inventargut ................................................... 22 ISO 19005-1 .................................................. 28 IVendorWebMethods ............................. 38 Key Performance Indicator ............................. 8 Klassenbibliothek .......................................... 10 Kollaboration .................................................. 7 Konfigurationsparameter ............................. 49 Konsistenzregel ............................................. 48 Kontierung .............................................. 13, 26 Kreditorennummer ....................................... 37
Seite 66
Laufzeitumgebung ......................................... 10 Layer2 .............................................................. 5 LDAP .............................................................. 15 Lieferant ...................................... 23, 34, 41, 52 Lieferantenstammdaten........ 17, 25, 37, 50, 58 Liefererfasser ............................... 30, 34, 46, 60 Lieferung ............................... 13, 22, 44, 45, 48 Lightweight Directory Access Protocol.......... 36 Liste .............SharePoint-Liste, SharePoint-Liste Mandant ........................................................ 41 Meridio .......................................................... 17 Metadaten ..................................................... 33 MOSS 2007 ................................................ 7, 54 NetApp .................................................... 17, 27 Organisationseinheit ..................................... 37 PDF ................................................................ 28 Personalisierung .............................................. 7 Portal ............................... Unternehmensportal Position .......................................................... 46 Positionsart ................................................... 46 Positionsübersicht ......................................... 44 Projektkommunikation.................................... 6 Projektmanagement........................................ 6 Prototyp ........................................................ 17 Prozessfluss ............................................. 19, 28 Prüfer ......................... 23, 28, 30, 34, 44, 45, 48 Qualitätssicherung .......................................... 6 Rechnung ......................... 13, 23, 38, 44, 45, 48 Rechnungsbearbeiter ...... 23, 30, 34, 44, 46, 60 Rechnungs-Dashboard .................................. 14 Rechnungsfreigabe .................. 3, 19, 23, 30, 34 Rechnungsposition ........................................ 48 revisionssicher ................................... 15, 17, 27 Risikobewertung........................................ 4, 18 SaveAssetXML ............................................... 52 Schaltfläche ................................................... 47 Schnittstelle ................................... 4, 14, 19, 36 Service-Account ............................................. 54 SharePoint ................................... 32, 42, 43, 58 SharePoint Designer ........................ 4, 8, 12, 42 SharePoint-Webseite .................................... 55 Sicherheitsrisiko ............................................ 54 Sicht ................................................... 25, 37, 39 Signatur ............................................. 13, 23, 48 Single-Sign-On ................................................. 7 Skonto ....................... 15, 23, 28, 32, 34, 41, 45
SnapLock ....................................................... 17 SSL ................................................................. 36 StapelBuchungSave ................................ 27, 41 State Maschine Workflow ............................ 11 Status .................................................31, 45, 46 Steuerelement .............................................. 10 Steuerungsdatei ............................................ 27 Stored Procedure .................................... 16, 24 Syska SQL REWE.................................16, 26, 54 Syska-Soap Service ....................................... 54 Teamwebseite .............................................. 32 Testphase ...................................................... 54 Testumgebung .............................................. 54 Textschnittstelle ........................................... 27 TIFF ............................................................... 28 Timeout ........................................................ 36 udcx-Dateiformat ......................................... 33 UNC ............................................................... 49 Urlaubsantrag ................................................. 3 VendorSyskaMapping ................................... 54 VendorView .......................................25, 37, 54 Verantwortlicher Bereich ............................. 47 Veröffentlichung ........................................... 56 Verteiler ........................................................ 15 Verzeichnisdienst .......................................... 11 Visual Studio .............................. 4, 8, 11, 42, 50 Vollzugriff ...................................................... 35 Vorgang................................................... 19, 42 Webdienst .... 15, 17, 23, 24, 25, 26, 41, 50, 52,
53, 54, 58 Windows Communication Foundation ......... 10 Windows Presentation Foundation .............. 10 Windows Server 2003 ..................................... 8 Windows SharePoint Services ........................ 7 Windows Workflow Foundation ................... 10 Workflow .............................................8, 32, 42 Workflow-Aktivität ...................... 42, 49, 53, 60 Workflow-Designer ....................................... 11 Workflow-Engine .......................................... 29 WSS 3.0 .............. Windows SharePoint Services X.509 ....................................................... 23, 48 XML .................................... 9, 11, 27, 29, 33, 42 XOML ............................................................ 11 ZAM ........................................................ 15, 25 Zentraladministration ................................... 36 Zustand ......................................................... 11
Seite 67
D. Anlagen
D.1 StapelBuchungSave
Methodendefinition (gekürzt) StapelBuchungSave des Syska-Webdienstes POST /ofck.asmx HTTP/1.1
Host: syskasoap
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://syska.de/ofckwebservices/StapelBuchungSave"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<StapelBuchungSave xmlns="http://syska.de/ofckwebservices/">
<mandantID>int</mandantID>
<stapelID>int</stapelID>
<stapelBuchung>
<auftragID>int</auftragID>
<belegDatum>string</belegDatum>
<belegNr>string</belegNr>
<buchungsart>baLfdBuchung or baEroeffnung or baAbschluss or
baSteuerumbuchung or baUmbuchung or baAZRechnung or baAZSchlussrechnung or
baAZSchlussKomplettOhneAZ or baAZSchlussKomplettMitAZ</buchungsart>
<dmsDocumentID>string</dmsDocumentID>
<kalenderJahr>int</kalenderJahr>
<kategorie>string</kategorie>
<kurs>double</kurs>
<periode>perAbsInvalid or perAbs01 or perAbs02 or perAbs03 or perAbs04 or
perAbs05 or perAbs06 or perAbs07 or perAbs08 or perAbs09 or perAbs10 or
perAbs11 or perAbs12 or perAbs13</periode>
<stapelLfdBuchNr>int</stapelLfdBuchNr>
<stapelNr>int</stapelNr>
<stapelID>int</stapelID>
<verdichten>int</verdichten>
<verdichtenNachVZ>int</verdichtenNachVZ>
<waehrung>string</waehrung>
<zahlungsSperre>string</zahlungsSperre>
<anzahlungID>int</anzahlungID>
<zeileData>
<StapelBelegZeileData>
<sollHabenKennzeichen>Soll or Haben</sollHabenKennzeichen>
<konto>int</konto>
<einmalAdressRefid>int</einmalAdressRefid>
<bruttoBetrag>double</bruttoBetrag>
<eigenBetrag>double</eigenBetrag>
<buchungsText>string</buchungsText>
<steuerArtID>int</steuerArtID>
<steuerBetrag>double</steuerBetrag>
<eigenSteuerBetrag>double</eigenSteuerBetrag>
<kostenSchablone>string</kostenSchablone>
<kostenArt>int</kostenArt>
<valutaDatum>string</valutaDatum>
<opBelegNr>string</opBelegNr>
<zahlziel>string</zahlziel>
<esr>string</esr>
<koreData xsi:nil="true" />
<inventarNr>string</inventarNr>
<unterNr>int</unterNr>
<anbuKostenStelle>string</anbuKostenStelle>
<clearingFlag>cfUseDefault or cfKein or cfDEBI_Abbuchung or
cfDEBI_Einzug or cfKRED_Gutschrift or cfKRED_ESR or
cfKRED_Scheck</clearingFlag>
<skontierFaehig>skfEntsprechendStamm or skfNicht or
skfGesamtBruttoBetrag or skfNurNettoBetrag</skontierFaehig>
</StapelBelegZeileData>
<StapelBelegZeileData />
</zeileData>
Seite 68
<rechnungID>string</rechnungID>
</stapelBuchung>
</StapelBuchungSave>
</soap:Body>
</soap:Envelope>
D.2 Screenshots der Ansichten
Bestellung:
Seite 69
Lieferung:
Positionsübersicht:
Seite 70
Rechnung:
Seite 71
Übersicht:
Keine Berechtigung:
Seite 72
D.3 Datenschema <my:BestellProzess xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:dfs="http://schemas.microsoft.com/office/infopath/2003/dataFormSolution"
xmlns:tns="http://tempuri.org/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://www.vci.de/"
xmlns:ns2="http://syska.de/ofckwebservices/"
xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2006-12-08T11:48:58"
xmlns:xd="http://schemas.microsoft.com/office/infopath/2003">
<my:Status>
<my:isRechnung>false</my:isRechnung>
<my:workflowStatus />
<my:dateiname />
<my:aktuelleAnsicht>Uebersicht</my:aktuelleAnsicht>
<my:konsistent>true</my:konsistent>
</my:Status>
<my:Benutzergruppen>
<my:userName />
<my:isBestellbearbeiter>false</my:isBestellbearbeiter>
<my:isLiefererfasser>false</my:isLiefererfasser>
<my:isPruefer>false</my:isPruefer>
<my:isRechnungsbearbeiter>false</my:isRechnungsbearbeiter>
</my:Benutzergruppen>
<my:Uebersicht>
<my:vorgangsNr />
<my:titel />
<my:memo />
<my:naechsterIndexLieferungen>2</my:naechsterIndexLieferungen>
<my:naechsterIndexPosition>1</my:naechsterIndexPosition>
<my:anzahlLieferungen>1</my:anzahlLieferungen>
<my:anzahlPositionen>1</my:anzahlPositionen>
<my:anzahlGeaenderteAssets>0</my:anzahlGeaenderteAssets>
<my:anzahlSignaturen />
</my:Uebersicht>
<my:Bestellung>
<my:beschreibung />
<my:verantwortlicherBereich />
<my:projekt />
<my:bestelltAm />
<my:summeBestPos />
<my:anzahlBestPos />
<my:LieferantBestellung>
<my:lieferantID />
<my:lieferantName />
<my:lieferantAnsprechpartnerName />
<my:lieferantAnsprechpartnerTel />
<my:lieferantAnsprechpartnerEmail />
<my:syskaAccountNr />
</my:LieferantBestellung>
<my:AnhaengeBestellung>
<my:angebotDatei />
<my:bestellungDatei />
<my:auftBestDatei />
</my:AnhaengeBestellung>
<my:lieferantQueryString />
<my:LieferantComboBoxSichtbar>false</my:LieferantComboBoxSichtbar>
<my:lieferantenInformationenSichtbar>false</my:lieferantenInformationenSichtbar>
<my:lieferantenAuswahlComboBox />
</my:Bestellung>
<my:Lieferungen>
<my:summeAlleLieferPos>0</my:summeAlleLieferPos>
<my:Lieferung>
<my:lieferNummer>1</my:lieferNummer>
<my:lieferdatum />
<my:summeLieferPos />
<my:anzahlLieferPos />
Seite 73
<my:AnhaengeLieferung>
<my:lieferscheinDatei />
</my:AnhaengeLieferung>
</my:Lieferung>
</my:Lieferungen>
<my:Rechnung>
<my:rechnungsDatum />
<my:rechnungsNummer />
<my:rechnungsBetrag />
<my:rechnungsEmpfängerName />
<my:rechnungsEmpfängerID />
<my:anzahlRechnungsPos>0</my:anzahlRechnungsPos>
<my:summeKontiertePos />
<my:skonto>false</my:skonto>
<my:zahlzielKrz />
<my:AnhaengeRechnung>
<my:rechnungDatei />
</my:AnhaengeRechnung>
<my:anSyskaExportiert>false</my:anSyskaExportiert>
<my:skontoDatum />
</my:Rechnung>
<my:Positionen>
<my:Position>
<my:posBezeichnung />
<my:posPreis>0.00</my:posPreis>
<my:bestellMenge>0</my:bestellMenge>
<my:lieferMenge>0</my:lieferMenge>
<my:zugeordneteLieferung>1</my:zugeordneteLieferung>
<my:rechnungMenge>0</my:rechnungMenge>
<my:mwst>19</my:mwst>
<my:bruttoPosPreisBestellung />
<my:bruttoPosPreisLieferung />
<my:bruttoPosPreisRechnung />
<my:PositionsTyp>
<my:isBestellPos>true</my:isBestellPos>
<my:isLieferPos>false</my:isLieferPos>
<my:isRechnungPos>false</my:isRechnungPos>
</my:PositionsTyp>
<my:Kontierungsdaten>
<my:kontoNummer />
<my:kontoBez />
</my:Kontierungsdaten>
</my:Position>
</my:Positionen>
<my:Assets>
<my:Asset>
<my:AssetID />
<my:AssetTyp />
<my:SerienNummer />
<my:GarantieAblauf />
<my:Hersteller />
<my:AssetChanged>true</my:AssetChanged>
<my:KaufDatum />
<my:KaufPreis>0.00</my:KaufPreis>
<my:Bezeichnung />
</my:Asset>
</my:Assets>
<my:Workflow>
<my:freigabeGestartet>false</my:freigabeGestartet>
<my:prueferBenachrichtigen />
<my:buchhaltungBenachrichtigen>false</my:buchhaltungBenachrichtigen>
<my:Pruefer1>
<my:pruefer1Name />
<my:pruefer1EMail />
<my:pruefer1HatSigniert>false</my:pruefer1HatSigniert>
</my:Pruefer1>
<my:Pruefer2>
<my:pruefer2Name />
<my:pruefer2EMail />
<my:pruefer2HatSigniert>true</my:pruefer2HatSigniert>
</my:Pruefer2>
</my:Workflow>
Seite 74
<my:optArchivierungsabschnitt>
<my:archivierungBestätigt>false</my:archivierungBestätigt>
<my:buttonArchivierenGeklickt>false</my:buttonArchivierenGeklickt>
<my:vorherigerStatus />
<my:optHaken />
</my:optArchivierungsabschnitt>
<my:optSignaturenAbschnitt />
<my:signaturen1>
<my:signaturen2 />
</my:signaturen1>
<xd:SchemaInfo LocalName="BestellProzess"
NamespaceURI="http://schemas.microsoft.com/office/infopath/2003/myXSD/2006-12-
08T11:48:58">
<xd:DataConnection Name="SPList: Skontosaetze">
<xd:DataConnection Name="SPBib: Beschaffungen (Vorgangsnummer)">
<xd:DataConnection Name="HVSyskaService: GetKontoBez">
<xd:DataConnection Name="HVADService: GetUsersByGroup">
<xd:DataConnection Name="HanseVisionAssetService: getAssetsByProcessID">
<xd:DataConnection Name="HanseVisionAssetService: getAllAssetTypes">
<xd:DataConnection Name="HanseVisionAssetService: getVendorByID">
<xd:DataConnection Name="HVADService: GetUserProperty">
<xd:DataConnection Name="SPList: Projekte">
<xd:DataConnection Name="HVAdService: IsUserInGroup">
<xd:DataConnection Name="HanseVisionAssetService: getVendorsLike">
</my:BestellProzess>
Seite 75
E. Anhang
Der Anhang befindet sich auf der beiliegenden CD-ROM und enthält:
Anforderungsanalyse (gekürzt um Aufwandsschätzung)
Feinspezifikation Version 1.2
Diese Bachelorarbeit
Dokumentation der Schnittstellen
o Syska OFCK_COM
o Beschreibung der Steuerungs-Datei für automatisierte REWE-Aktionen
o SyskaSOAPService20
(diese Dokumente können auch über die Homepage von Syska bezogen werden)
Quellcode in Form von Visual Studio 2005 Projektmappen
o Asset.Desk-Schnittstelle (5 Projektmappen)
o HanseVisionSyskaSoapWrapper
o Workflow-Aktivität: GetFileFromXmlActivity
o Workflow-Aktivität: SetFieldInMultipleListItemsActivity
o XmlDeleteNodesEventhandler
InfoPath-Formular
Pressemitteilung über eine Studie von IDS Scheer zum Thema Geschäftsprozesse
Alle Dokumente liegen im Format PDF vor.
Versicherung über die Selbstständigkeit Hiermit versichere ich, dass ich die vorliegende Arbeit im Sinne der Prüfungsordnung nach §22(4) ohne fremde Hilfe selbstständig verfasst und nur die angegebenen Hilfsmittel benutzt habe. ______________________________ ______________________________ Ort, Datum Unterschrift
Recommended