Diplomarbeit - Publication Server of Ostfalia University of Applied

Werbung
Fachhochschule Braunschweig/ Wolfenbüttel
- University of Applied Sciences –
Fachbereich: Informatik
Fachrichtung: Medieninformatik
Diplomarbeit
vorgelegt von:
Sylvia Brink
Matr.-Nr.: 9968198
vorgelegt am:
14.12.2004
Entwicklung einer Plattform zur abteilungsübergreifenden
Pflege von BW-Objekten für das SAP Business Information
Warehouse einer Automobilbank
Angefertigt bei der Volkswagen Financial Services AG, Braunschweig
Abteilung I-SEB (Systementwicklung Business Warehouse)
1. Prüfer: Prof. Dr. rer. nat. habil. R. Rüdiger (FH BS/WF)
2. Prüfer: Dipl.-Phys. Frank Semrau (VWFSAG)
Betreuer: Dipl-Inform. Uwe Arnold (VWFSAG)
Inhaltsverzeichnis
1.
Einleitung............................................................................................. 1
1.1.
1.2.
1.3.
2.
Aufbau der Arbeit ................................................................................................................1
Motivation ...........................................................................................................................3
Volkswagen Financial Services ...........................................................................................4
Die Firma SAP und das SAP BW ........................................................ 6
2.1.
2.2.
2.3.
2.4.
2.4.1.
2.4.2.
2.4.3.
3.
Ist- und Sollzustand ........................................................................... 25
3.1.
3.2.
4.
IST-Zustand .......................................................................................................................25
SOLL-Zustand ...................................................................................................................28
Einsatz von Software-Techniken ....................................................... 31
4.1.
4.1.1.
4.1.2.
4.1.3.
4.1.4.
4.2.
4.3.
4.4.
4.5.
4.6.
4.7.
4.8.
4.9.
5.
Die Firma SAP und ihre Produkte ......................................................................................6
Die MySAP-Technologie ....................................................................................................7
Das Data Warehouse............................................................................................................9
SAP BW ............................................................................................................................11
Aufbau/ Architektur ......................................................................................................11
Datenfluss .....................................................................................................................14
InfoObject .....................................................................................................................20
XML ..................................................................................................................................31
Grundlagen XML..........................................................................................................32
Die Stylesheets CSS/ XSL ............................................................................................35
Weitere XML-Begriffe .................................................................................................37
Gründe für die Entscheidung für XML .........................................................................38
Oracle-Datenbank ..............................................................................................................40
.NET Technologie..............................................................................................................43
Visual Basic.net .................................................................................................................44
ADO.net.............................................................................................................................45
ASP.net / Webserver..........................................................................................................45
Anbindung an das SAP BW: Der SAP .NET-Connector..................................................46
Die TREX-Suchmaschine..................................................................................................47
Aufbau der Dokumentationsverwaltung ............................................................................48
Anzeigen und Speichern von Daten .................................................. 50
5.1.
SAP .NET Connector.........................................................................................................50
5.1.1.
Erstellung einer Proxy-Klasse.......................................................................................50
5.1.2.
Kommunikation von .NET per SAP-Funktionsbaustein RFC_READ_TABLE..........52
5.1.3.
Verwendung eines Proxys mit VB................................................................................55
5.1.4.
Verwendung von Funktionsbausteinen und Tabellen ...................................................57
5.2.
Oracle – Datenbank vwfsdw1e ..........................................................................................58
5.2.1.
Logischer Datenbankentwurf........................................................................................58
5.2.2.
Physischer Datenbankentwurf.......................................................................................59
6.
Prozess der Erstellung eines InfoObjects und seiner Dokumentation
im SAP BW-System ..................................................................................... 66
6.1.
6.2.
6.3.
6.3.1.
6.3.2.
6.3.3.
6.3.4.
6.4.
6.4.1.
6.4.2.
7.
Erläuterung des Geschäftsprozesses ..................................................................................66
Überblick/ Hauptseite ........................................................................................................68
Erstellung von HTML-Dokumentationen aus relationalen Daten .....................................69
Anlage einer XML-Dokumentation in der Datenbank..................................................70
Transformation mittels XSL in das HTML-Format ......................................................72
Anzeige der Dokumentationen......................................................................................72
Anlage der Dokumentationen im SAP BW-System......................................................73
Anlegen eines InfoObjects im SAP BW-System ...............................................................73
Vollständigkeitsprüfung................................................................................................74
Anlage des InfoObjects per Funktionsbaustein im SAP BW........................................74
Ausblick ............................................................................................. 76
7.1.
Rollen.................................................................................................................................76
7.1.1.
Realisierung der Rollen.................................................................................................77
7.1.2.
Geschäftsprozess...........................................................................................................78
7.1.3.
Anwendungsfälle ..........................................................................................................81
7.2.
7.3.
7.4.
7.5.
7.6.
7.7.
7.7.1.
7.7.2.
7.8.
7.9.
8.
Versionisierung, Historisierung .........................................................................................85
Benutzereinstellungen........................................................................................................86
Migration vorhandener Daten in die Oracle-Datenbank....................................................87
Erweiterung um zusätzliche BW-Objekte..........................................................................88
Einführung einer weiteren Sprache....................................................................................89
Seitenaufbau/ Treeview .....................................................................................................89
Einführung und Installation ..........................................................................................89
Erklärung der Datenbank-Tabellen ...............................................................................91
Anzeige einer Online-Dokumentation ...............................................................................93
TREX/ SAP Enterprise Portal............................................................................................94
Schlusswort ....................................................................................... 96
8.1.
8.2.
8.3.
Fazit ...................................................................................................................................96
Danksagung .......................................................................................................................98
Selbständigkeitserklärung..................................................................................................98
I. Anhang................................................................................................... 99
II.
Abkürzungsverzeichnis.................................................................... 119
III.
Literaturverzeichnis ......................................................................... 120
IV.
Abbildungsverzeichnis..................................................................... 126
V.
Begriffserklärungen erstellter Programmteile .................................. 127
1. Einleitung
Diese Diplomarbeit beschäftigt sich mit der Entwicklung einer Plattform für
die abteilungsübergreifende Pflege von BW-Objekten für das SAP Business
Information Warehouse der Volkswagen Financial Services AG.
1.1. Aufbau der Arbeit
Die ersten vier Kapitel geben einen Überblick über die nötigen Grundlagen
für die Erstellung dieser Plattform. In Kapitel 1 - Einleitung ist die Motivation
für diese Arbeit dargestellt. Die Firma SAP und vor allem ihr Data-Warehouse Produkt, das SAP Business Information Warehouse (SAP BW), werden in Kapitel 2 – Die Firma SAP und das SAP BW erläutert. Dabei gewinnt
der Leser einen tieferen Einblick in den Aufbau und die Struktur des SAP
BW. Kapitel 3 - Ist- und Sollzustand schildert den Ist-Zustand und auf Basis
dieser bildet sich der konkrete Soll-Zustand mit all seinen Anforderungen
heraus. Auf Grundlage der daraus resultierenden Erfordernisse an das Softwareprogramm werden in Kapitel 4 die geeigneten Softwaretools und Techniken knapp erläutert. Das Unterkapitel XML ist aufgrund der hohen Relevanz der XML-Technik ausführlicher.
Der zweite Teil der Diplomarbeit beschäftigt sich mit der Praxis der Erstellung
einer Plattform für die Pflege von BW-Objekten. Die Vorraussetzung für eine
solche Dokumentationsverwaltung ist die Möglichkeit der Verwendung von
bereits vorhandenen Daten des SAP-Systems und die Aussicht auf Archivierung neuer und Zwischenspeicherung temporärer Daten. Daher werden in
Kapitel 5 - Datenverwaltung die Techniken des Erhalts von Daten aus dem
SAP-System mit Hilfe des SAP .NET-Connectors und der Datenbankentwurf
der neuen Oracle-Datenbank erläutert.
Die Vorgehensweise der Erschaffung einer InfoObject-Dokumentation und
der Anlage des InfoObjects im SAP BW Entwicklungssystem (FBE) wird in
Kapitel 6 - Prozess der Erstellung eines InfoObjects und seiner Dokumentation im BW beschrieben, Weiterhin werden die Implementierungstechniken
Seite 1
mit Schwerpunkt auf die in Oracle programmierten Funktionen und Prozeduren und auf den mit VB umgesetzten Code erläutert. In Kapitel 7 - Ausblick
werden zusätzliche Möglichkeiten und Methoden für den Programmausbau
angesprochen. Zum Ende der Arbeit werden in einem Schlusswort (Kapitel 8)
über die Probleme und Chancen dieser Arbeit berichtet.
Im Anhang sind die wichtigsten erstellten Programme und Dokumente zu
finden.
Seite 2
1.2. Motivation
Anlass der Diplomarbeit ist eine zunehmende Unübersichtlichkeit über die
Zusammenhänge der BW-Objekte des SAP Business Information Warehouse-Systems (kurz: SAP BW).
Die Unübersichtlichkeit ergibt sich aus dem verteilten Zugriff auf das SAP
BW System der VW FS AG. Dabei greifen verschiedene Entwicklungsabteilungen, unter anderem auch im Ausland, auf das System zu und entwickeln
Lösungen auf dieser Basis. Zudem sind diverse Quellsysteme an das SAP
BW angebunden, so dass es Bedarf gibt, vorhandene bzw. noch zu
schaffende Schnittstellen zu identifizieren. Sonst gäbe es die Gefahr, dass
gleiche Inhalte mehrfach in BW-Objekte importiert und verarbeitet werden.
BW-Objekte sind die Objekte, aus denen das SAP Business Information
Warehouse besteht. Sie erfüllen diverse technische und betriebswirtschaftliche Funktionen. Da die Anzahl von BW-Objekten durch die große Zahl von
Entwicklungen sehr stark ansteigt, verlieren die Anwender des SAP BW
immer mehr die Übersicht über Herkunft und Verwendung dieser Objekte
und verwenden so sehr viel Zeit für die Beschaffung von Informationen, die
sie an verschiedenen Orten suchen müssen.
Die Motivation dieser Diplomarbeit ist es, alle relevanten Informationen zusammenzutragen, auf Basis dieser ein Konzept zu erstellen und dieses ansatzweise zu realisieren.
Dabei sollen folgende Hauptanforderungen erfüllt sein:
Es soll eine Suchfunktion für die Recherche und das Finden von
Dokumentationen geben und ein einheitlicher Prozess zur Erstellung
und Verwaltung von Dokumentationen mit dem Ziel der Qualitätssicherung geschaffen werden. Von Vorteil ist zudem eine einheitliche Speicherung und permanente Ablage aller den BW-Objekten betreffenden
Daten in einer Datenbank. Soll ein BW-Objekt neu angelegt werden,
werden alle Parameter des BW-Objekts vorerst in der Datenbank
gespeichert um schließlich für die Anlage des BW-Objektes und seiner
Dokumentation verwendet werden zu können.
Seite 3
Für diese Hauptanforderungen wird ein Konzept erarbeitet, in dem die notwendigen Leistungsmerkmale, die die Dokumentenverwaltung haben soll,
herausgestellt, aufbereitet und in Zusammenhang gebracht werden. Basierend auf dieser theoretischen Grundlage wird ein Teil der Anforderungen
implementiert.
1.3. Volkswagen Financial Services
Die Tochtergesellschaft der VW AG ist die Volkswagen Financial Services
(VWFSAG), mit Hauptsitz in Braunschweig. Sie hat circa 4500 Mitarbeiter
weltweit und ist der größte automobile Finanzdienstleister in Europa und
bietet hauptsächlich Dienstleistungen wie die Kundenfinanzierung und das
Leasinggeschäft für Kraftfahrzeuge der Eigenmarke an.
Die VWFSAG besteht aus einer hierarchischen Organisationsstruktur.
Auf oberster Ebene befinden sich die beiden Bereiche Market-/Sales Care
Center und Service-/Support Center. Die Market Center sind für den Kundenservice der Firmen-, Privat- und Großkunden da, während die
Sales
Care Center für die Händlergeschäfte zuständig sind. Die Tätigkeiten der
Support Center dienen der gesamten Koordination der Bank (z.B. PersonalSteuerung).
Die Service Center sind Auftragnehmer der Market Center, die in diesem
Falle als Auftraggeber bzw. Kunde auftreten. Die Kosten werden intern verrechnet. Neben dem Service Center Interne Services und Customer Services
existiert das Service Center Informatik, in dem SAP Systeme und andere
Informationssysteme für die Eigennutzung entwickelt und gewartet werden.
Dieses ist unterteilt in die Bereiche Zentralfunktion, Systembetrieb und Systementwicklung 1-4. Die Systementwicklung 4, in der sich auch die Abteilung
I-SEB befindet, entwickelt und wartet die Systeme der Unternehmenssteuerung. I-SEB beschäftigt sich mit dem SAP Business Information Warehouse,
ein Data Warehouse-System, das Daten aus verschiedenen Systemen zentral zur Auswertung bereitstellt. Die Abteilung besteht aus etwa 15 internen
und 20 externen Mitarbeitern. Ihr Aufgabenbereich ist es, im Auftrag der
Seite 4
Fachbereiche Systeme und Programme für das BW zu entwickeln und die
Funktionalität und Korrektheit bestehender BW-basierter Systeme zu gewährleisten.
Weiterhin ist die Systementwicklung 1 für die Finanzierungs- und Leasingprodukte, für den ZGP (Zentraler Geschäftspartner) und für das SAP-Portal,
die Systementwicklung 2 unter anderem für den Bereich der Versicherungen
und die Systementwicklung 3 für die SAP-Systeme FI, BCA und CRM
zuständig. 1
TP
PT
Abbildung 1-1: Organisationsstruktur Informatik VWFS
TP
1
PT
[VWint2-04]
Seite 5
2. Die Firma SAP und das SAP BW
Der folgende Abschnitt gibt einen allgemeinen Überblick über die Geschichte
und aktuellen Geschehnisse der SAP und geht im Besonderen auf die Bedeutung und die Architektur des SAP Business Information Warehouse ein.
2.1. Die Firma SAP und ihre Produkte
Die Firma SAP AG, mit Sitz in Walldorf, existiert seit 1972 und stellt erfolgreich betriebswirtschaftliche Standard-Anwendersoftware her. SAP bedeutet
ursprünglich „Systeme, Anwendungen und Produkte“.
Bei dem ersten Produkt der SAP AG handelte es sich um eine Finanzbuchhaltungssoftware mit dem Namen RF. Die Software, die in Assembler programmiert wurde und unter DOS lief, ist auch unter dem Namen R/1 (Realtime-System, Version 1) bekannt. Für den Nachfolger R/2 wurde zur besseren Programmierung ABAP (Advanced Business Application Programming),
die gültige SAP-Entwicklungssprache, erfunden. Anfangs wurde ABAP nur
für die Erstellung von Reports benutzt, später wurde sie zu einer Interpretersprache.
Das heutige System R/3 wurde 1987 konzipiert und umfasst grundlegende
Neuerungen im Bereich der Client/Server-Architektur. Dieses System ist
nicht mehr nur zweiteilig, sondern besteht aus drei Schichten: der Präsentationsschicht, der Applikationsschicht und der Datenbankschicht. Weiterhin
gibt es eine Webserver-Schicht, so dass SAP-Anwendungen aus dem Webbrowser aufgerufen werden können.
Verwendet wurden in dem R/3 System auch erstmals relationale Datenbanken, einheitliche grafische Oberflächen und plattformunabhängige Anwendungen.
Zu Anfang lief R/3 nur auf UNIX-Plattformen, doch im Jahre 1993 wurde die
Portierung auf Windows vollzogen. Weitere Plattformen folgten in den Jahren
darauf. Innerhalb weniger Jahre wurde R/3 um weitere Funktionalitäten wie
die Umgestaltung zu einem objektorientierten System mit der Einführung von
Seite 6
Business Objekten und der objektorientierten Weiterentwicklung von ABAP
mit ABAP Objects ergänzt. Das Laufzeitsystem des R/3 selbst ist in den Programmiersprachen C, C++ und Java geschrieben, während die zentralen R/3
Anwenderprogramme in ABAP/4 und ABAP Objects programmiert werden.
Das R/3 System wurde in Module aufgeteilt und bietet so eine einheitliche
Sicht auf alle Daten und Geschäftsprozesse. Es werden betriebswirtschaftliche Anwendungsbereiche wie Controlling, Anlagenwirtschaft, Materialwirtschaft, Vertriebslogistik, Qualitätsmanagement und einige mehr abgedeckt.
Die bekanntesten SAP-Module sind die Module für die Bereiche Kundenverwaltung (SAP CRM, Customer Relationship Management), Finanzbuchhaltung (SAP FI, Financial Accounting), Data Warehouse (SAP BW) und Bankkunden (BCA, Bank Customer Accounts).
Diese Standardanwendungen sind an die Bedürfnisse des Betriebes
anpassbar. Eine solche Produktanpassung an Kundenwünsche nennt man
Customizing.
Die Strategie von SAP AG hat einen großen wirtschaftlichen Erfolg. Nach der
Studie „Client / Server Enterprise Applications: Leading Vendors and Market
Performance“ der IDC (International Data Corporation) vom Mai 1997 ist die
SAP AG mit dem System R/3 der weltweit erfolgreichste Anbieter unternehmensweiter betriebswirtschaftlicher Client/ Server-Anwendungen.2 In dem
TP
PT
Jahr 1995 gab es weltweit 4000 Systeme und schon im Jahr 1997 erhöhte
sich die Anzahl um das Dreifache auf 13.000 Systeme weltweit.
2.2. Die MySAP-Technologie
Mit MySAP.com bezeichnet man die Entwicklung der SAP- Standardsoftware
zu einer webbasierten E-Business-Applikation3. Diese ist im Begriff, das SysTP
PT
tem R/3 abzulösen. Es ist ein Gesamtpaket, bestehend aus unternehmensübergreifenden Prozessen und Services, Verbindungen von Endnutzern
untereinander, Geschäftsprozessen und Daten. Komponenten der MySAP-
2
TP
PT
TP
3
PT
[Buc98]
[MySAP01]
Seite 7
Technologie sind der WebApplication-Server, Portale, SAP-Module und
Anwendungen.
Der webbasierte Austausch von Daten ist möglich durch den Einsatz eines
Web Application Servers. Auf Basis dieser Technik können Webanwendungen entweder mit ABAP oder aber auch mit Java programmiert werden, da
der Web Application Server seit Version 6.2 J2EE- konform ist. Laut dem
SAP-Vorstand H. Plattner können „künftig [...] Anwendungskomponenten
gleichberechtigt entweder über ABAP-, Java Beans- oder Java-Anwendungen erstellt werden4“. Die Computerwoche schrieb weiter, dass die „Die
TP
PT
SAP AG […] auf ihrer Hausmesse Sapphire in New Orleans einen weiteren
Ausbau ihrer langjährigen Partnerschaft mit Microsoft angekündigt [hat]. Im
Mittelpunkt stehen dabei Web-Services und die Integration der SAP-Infrastruktursoftware Netweaver mit Microsofts .NET.“5.
TP
PT
Eine weitere wichtige Komponente ist das SAP Enterprise Portal. Hierbei
handelt es sich um eine einheitliche Web-Benutzeroberfläche, in der alle
SAP-Anwendungen und Non-SAP-Anwendungen vereint sind. Durch einmaliges Einloggen (single-sign-on) kann ein SAP-Anwender auf alle Anwendungen, für die er eine Berechtigung besitzt, zugreifen. Weiterhin werden der
Wissensaustausch in virtuellen Projectrooms sowie der Zugriff von außerhalb
über WebServices von diversen internetfähigen Endgeräten (PDA, PC’s)
möglich sein. Auch das SAP BW der VWFSAG wird zurzeit in das SAP
Enterprise Portal 6.0 gehoben.
4
TP
PT
TP
5
PT
[CoWo01]
[CoWo04]
Seite 8
2.3. Das Data Warehouse
„Ein Data Warehouse (deutsch: Datenlager) ermöglicht eine globale Sicht auf
heterogene und verteilte Datenbestände, indem die für die globale Sicht relevanten Daten aus den Datenquellen zu einem gemeinsamen konsistenten
Datenbestand zusammengeführt werden.“6
TP
PT
Das Konzept des Data-Warehouse-Systems wurde 1992 von Immon eingeführt. Er definierte auch als Erster den Begriff Data- Warehouse:
„A data warehouse is a subject-oriented, integrated, non-volatile, time-variant
collection of data in support of management’s decisions.”7 8
TP
PT
TP
PT
Subject-oriented bedeutet, dass der Informationsbedarf von Entscheidungsträgern durch die Unterstützung übergreifender Auswertungsmöglichkeiten
aus verschiedenen Perspektiven gedeckt werden soll. Subjekte sind hierbei
z.B. Produkt und Kunde.
Mit integrated ist eine integrierte Datenbasis gemeint, in welcher Daten aus
diversen Datenquellen zusammengefasst sind. Da diese Daten langfristig
(time-variant) gespeichert werden, ist es möglich, auf dem Faktor Zeit basierende Analysen durchzuführen. Eine stabile und persistente (nonvolatile)
Datenbasis garantiert, dass Informationen nicht mehr entfernt und geändert
werden können.
Dieses besagt, dass Daten aus verschiedenen Quellsystemen einheitlich im
Data Warehouse existieren, wo sie zur weiteren Verwendung bereitliegen.
So ist das Data Warehouse oftmals Ausgangsbasis für das Data-Mining.
Data-Mining heißt, dass bestimmte Daten aus den großen Datenmengen des
Data Warehouse extrahiert und schließlich ausgewertet werden. Bei der
Auswertung werden die Daten auf Muster und bestimmte Strukturen hin
6
[NetLex]
[Reu04]
8
[VWint1-03]
TP
PT
7
TP
PT
TP
PT
Seite 9
untersucht. Ein Unternehmen erhält so Erkenntnisse über aktuelle Zustände,
die bei der Entscheidungsfindung bedeutsam sind.
Auf diese Weise kann ein Unternehmen schnell auf Veränderungen reagieren. Ohne ein Data Warehouse- System würde man Zusammenhänge
verschiedener Daten oftmals nicht oder sehr spät erkennen und es könnten
Maßnahmen zu wirtschaftlichen Verbesserungen nicht in genügender Weise
getroffen werden.
Es folgt ein einfaches Beispiel für den Nutzen eines Data Warehouse-Systems:
Ein Unternehmen bemerkt einen Engpass bei der Lieferung eines Produktes
„Produkt 1“. Die Auswertung ergibt Folgendes:
Es wird die Dimension Produkt mit der Dimension Zeit (Monat) ausgewertet.
Das Ergebnis dieser Auswertung ist die Produktmenge. Nach Vereinigung
dieser beiden Dimensionen erhält man z.B. die Erkenntnis, dass in den
Monaten Mai-August mehr von Produkt 1 als in den übrigen Monaten verkauft wurde.
Das Unternehmen kann jetzt auf diese Erkenntnis reagieren, indem es in den
Sommermonaten mehr Produkte herstellt und zum Verkauf bereitstellt als in
den Wintermonaten. Hinzugefügt wird jetzt noch eine weitere Dimension
Region. Schaut man jetzt noch einmal auf die Sommermonate, kann daraus
die Tatsache erfolgen, dass in den südlichen Regionen überproportional viele
Produkte verkauft werden. Doch in den nördlichen Regionen werden fast
genau so viele Produkte wie in den Wintermonaten verkauft.
Für das Unternehmen ändert sich jetzt die Sachlage insofern, als dass der
Transport der Produkte nicht gleichverteilt in alle Regionen geschehen darf,
sondern der größte Teil in den Süden geliefert werden muss.
Es handelt sich hierbei um eine 3-dimensionale Abfrage (Zeit, Region, Produkt). Aus dieser Abfrage resultiert die Anzahl der verkauften Produkte (Produktmenge), aufgeteilt nach Region und Zeit.
Seite 10
Wird dieser Zusammenhang grafisch dargestellt, wie in Abbildung 2-1,
spricht man auch von einem Hypercube. In einem SAP BW- System wird
dieser als InfoCube bezeichnet.
Abbildung 2-1- Produktanalyse
2.4. SAP BW
Im Folgenden wird die Architektur des Data Warehouse-Systems SAP BW,
welches 1998 von SAP eingeführt wurde, näher erläutert. Weiterhin folgt eine
Darstellung der wichtigsten Bestandteile des BW. Abschließend werden der
Datenfluss, die Zusammenhänge und die Funktionen der einzelnen BW-Objekte beschrieben.
2.4.1.
Aufbau/ Architektur
Die Client / Server- Architektur des SAP BW teilt sich in folgende drei
Schichten auf: Datenbankschicht, Applikationsschicht und Präsentationsschicht (Abbildung 2-2).
In der Datenbankschicht sind sowohl Anwendungsdaten aus verschiedenen
Quellsystemen als auch Verwaltungsdaten, Customizing-Einstellungen,
ABAP-Quelltexte und anderes abgelegt. Als Datenbanken werden relationale
Datenbanken wie Oracle-Datenbanken - die auch bei der VWFSAG im Einsatz sind - MS-SQL-Server und DB2 eingesetzt. Diese Daten können im
Seite 11
ABAP-Dictionary eingesehen werden. Das ABAP-Dictionary ist das Metadata-Repository9 für die Datenstrukturen des SAP BW.10 Im ABAP-Dictionary
TP
PT
TP
PT
können diverse Tabellen angezeigt werden. Zum Beispiel befinden sich in
der Tabelle rsdiobj Informationen über alle InfoObjects des Systems. Eine
Tabelle besteht aus mehreren Zeilen, welche wiederum aus einzelnen Feldern bestehen. Die technischen Eigenschaften eines Feldes werden dabei
als Domäne und die semantischen als Datenelement bezeichnet. Zum Beispiel könnte zu dem Feld Alter, welches das Alter von Personen beschreibt,
ein weiteres Feld SystemAlter betrachtet werden, das ebenfalls ein Alter
beschreibt, also dieselben technischen Eigenschaften und somit die gleiche
Domäne besitzt. Beide Felder haben aber eine unterschiedliche Semantik,
gehören also unterschiedlichen Datenelementen an.
Beziehungen von
Tabellen untereinander bestehen nach dem relationalen Datenbankmodell
durch Fremdschlüssel. Tabellen werden später für die Anzeige von Daten in
der Dokumentationsverwaltung relevant sein.
Die Applikationsschicht bildet das eigentliche BW-Basissystem. Hier werden
Anwendungsprozesse - zumeist ABAP-Programme – ausgeführt, die technisch auf einem oder mehreren Applikationsservern laufen.
Die
Präsentationsschicht
ist
die
Bezeichnung
für
die
SAP-
Benutzeroberfläche (SAP GUI), welche auf den Client-PC’s installiert ist. Von
dieser aus macht der Anwender Ein- und Ausgaben, die an die Applikationsschicht zur Verarbeitung weitergeleitet werden.
TP
9
PT
TP
Repository (engl.) = Behälter, Aufbewahrungsort
[Meh03], S.16
10
PT
Seite 12
Abbildung 2-2: Architektur des SAP BW
Jeder Anwender muss sich zu Anfang einer SAP-Sitzung mit Username und
Passwort anmelden. Um eine Anwendung zu öffnen ist die Angabe eines
Transaktionscodes notwendig. Jede Transaktion wird durch ein eigenes Bildschirmbild repräsentiert. Die graphische Darstellung des Bildschirms
zusammen mit den zugehörigen Abläufen wird als Dynpro (Dynamisches
Programm) bezeichnet. Beispiele für Transaktionen sind rsa1 für die Administrator Workbench und rrmx für den Business Explorer Analyzer.
In der Administrator Workbench als zentrales Verwaltungswerkzeug werden
z.B. verschiedene Daten des SAP BW gepflegt, der gesamte Datenbereitstellungsprozess gesteuert, Datenladevorgänge eingeplant und angestoßen
und Metadaten und Dokumentationen modifiziert.
Mit dem Business Explorer Analyzer werden Reports zur Datenanalyse
erstellt. Mithilfe von Daten, die einen unterschiedlichen Detaillierungsgrad
(z.B. Jahr, Monat) aufweisen, kann nach unterschiedlichen Sichten ausgewertet werden. Eine Möglichkeit der Sicht ist z.B. die Anzahl der verkauften
Produkte eines bestimmten
Monats, eine weitere mögliche Sicht ist der
Seite 13
Monat mit den am meisten verkauften Produkten eines Jahres. Das Reporting erfolgt mittels Queries11 auf Stamm- und Bewegungsdaten.
TP
PT
Im SAP BW gibt es die drei Daten: Stammdaten, Bewegungsdaten sowie die
aufzubereitenden Metadaten. Stammdaten sind die Daten eines Unternehmens, die sich im Laufe der Zeit kaum oder nicht verändern. Dieses können
z.B. Informationen über Kunden oder Produkte (z.B. Produktname, Produktnummer) sein.
Bewegungsdaten sind Daten, die meist durch Daten-Transaktionen zustande
kommen. So ist der Vorgang eines Verkaufs den Bewegungsdaten (wie z.B.
Umsatzzahlen) zuzuordnen. Ein Vorgang bezieht sich immer auf Stammdaten wie z.B. einen Kunden oder ein Produkt und auf einen Zeitpunkt oder raum.
Mithilfe von Metadaten können Daten näher beschrieben werden. Ein BWObjekt besteht aus technischen und fachlichen Metadaten. Die technischen
Metadaten sind z.B. das Datenformat (INT, CHAR …) bzw. die Ablagestruktur und die Anzahl der Zeichen einer Beschreibung. Technische Metadaten
sind unbedingt notwendig, da ohne Speicherstruktur kein Objekt existieren
kann.
Fachliche Metadaten sind Informationen über die BW-Objekte selbst, wie den
Ersteller und Verantwortlichen eines BW-Objektes, die letzte Aktualisierung,
eine betriebswirtschaftliche Beschreibung des BW-Objektes usw.
Zu den Metadaten gehören auch die BW-Objekt-Dokumentationen, die
Gegenstand dieser Diplomarbeit sind. Diese Dokumentationen befinden sich
in der R/3 Datenbank.
2.4.2.
Datenfluss
Um Daten auswerten zu können, werden diese aus Quellsystemen extrahiert
und im BW-System zur Datenanalyse modifiziert und aufbereitet. Dieser Pro-
TP
11
PT
Query (engl.) = Abfrage; basierend auf der SQL-Syntax
Seite 14
zess wird als Staging bezeichnet. In dem Staging-Prozess durchlaufen die
Daten vier logische Ebenen12:
TP
•
Extraction Layer13
•
Inflow Layer
•
Transformation Layer
•
Integration Layer
TP
PT
PT
Die einzelnen Layer sind die Schnittstellen zwischen den oben genannten
Schichten (s. Abbildung 2-2). Der Extraction Layer ist die Schnittstelle zwischen den Quellsystemen und der Datenbankschicht, wo
Daten aus
verschiedenen Quellsystemen extrahiert und in so genannten DataSources
der Datenbankschicht gespeichert werden. Der Inflow Layer stellt Funktionen
für das Einrichten und Definieren der Quellsysteme und deren Metadaten zur
Verfügung. Im Transformation Layer, der Schnittstelle zwischen der Datenbankschicht und der Applikationsschicht, werden die Daten homogenisiert
und in InfoSources abgelegt. Im Integration Layer werden die Daten für das
Reporting vorbereitet. Sie bildet somit die Verbindung zur Präsentationsschicht.
Zur Verdeutlichung des Prozesses der Datenaufbereitung erfolgt eine detaillierte Beschreibung.
Extraction Layer
In dem Extraction Layer werden Daten aus verschiedenen Quellsystemen
extrahiert und in
DataSources gespeichert. Diese Quellsysteme können
SAP Systeme, einfache Dateien (Flat Files), operative Datenbanksysteme
und auch andere BW-Systeme sein, die wiederum als Datenquelle an das
BW angeschlossen werden. Eine DataSource ist eine flache Speicherstruktur
mit Datenfeldern ähnlich einer relationalen Tabelle und kann nur Daten aus
einem Quellsystem aufnehmen. Eine DataSource ist aufgrund der quellsys-
12
TP
PT
TP
13
PT
[Meh03]
Layer (engl.) = Schicht, Ebene
Seite 15
temspezifischen Struktur der Daten quellsystemabhängig bzw. –orientiert.
Der Extraktor wird für jede DataSource spezifisch erstellt. Ein Quellsystem
kann dagegen seine Daten in mehrere DataSources einfügen.
Um eine Extraktion in die DataSources durchführen zu können, müssen
Metadaten der Daten vorhanden sein. Diese Metadaten enthalten unter
anderem Informationen über die Strukturierung der zu extrahierenden Daten.
Für Quellsysteme, wie z.B. Flat Files, die keine Metadaten enthalten, müssen
diese definiert werden (s. Abschnitt „Inflow Layer“).
Wurden Daten aus einem Quellsystem in eine DataSource extrahiert, so ist
es möglich, die DataSource um zusätzliche Felder zu erweitern. Diese Felder
müssen mit Daten versorgt werden. Ändern und Löschen der Daten ist aber
nicht möglich.
Abbildung 2-3 zeigt – unter Vorwegnahme der höheren Schichten – den
Datenfluss des SAP BW mit dem Datenziel InfoCube.
Abbildung 2-3: Datenfluss
Seite 16
Inflow Layer
Der Inflow Layer bildet die Schnittstelle zwischen der DataSource und der
PSA-Tabelle (Persistant Staging Area). Weiterhin erfolgt hier die Einrichtung
der Quellsysteme an das SAP BW und die Definition der Metadaten14.
TP
PT
Die Möglichkeit, die Daten der DataSource in der PSA, einer flachen Tabelle,
zwischenzuspeichern ist optional. Mithilfe von PSA-Tabellen sind die Prüfung
auf Datenqualität und Wartungen möglich.
Transformation Layer
Die aus dem Extraction Layer extrahierten Daten liegen noch in quellsystemspezifischer Form vor. Dies bedeutet, dass die Daten von unterschiedlicher
Semantik und Struktur sind. Semantik heißt z.B., dass die Materialnummer
eines Produktes in mehreren Quellsystemen vorkommt, die Nummer des
Produktes dort aber unterschiedlich ist. Struktur besagt dagegen, dass in
einem Quellsystem das Datum z.B. die Struktur yyyymmdd und in einem
anderen die Struktur ddmmyy haben kann. Die Daten müssen deshalb für
die Weiterverarbeitung homogenisiert, d.h. vereinheitlicht werden.
Die Transformation in ein semantisch und strukturell einheitliches Format
geschieht durch das Definieren von Übertragungsregeln. Mithilfe der Übertragungsregeln gelangen die quellsystemspezifischen Daten der DataSource
in die InfoSources. Sie werden technisch mit Mapping, Zuweisung von Konstanten, ABAP-Routinen oder Formeln erstellt. Sehr viele Möglichkeiten der
Definition einer Übertragungsregel bieten dagegen ABAP-Routinen.
Die Daten einer InfoSource können aus mehreren Quellsystemen bzw.
DataSources stammen und sind aufgrund ihrer Homogenisierung einheitlich
und somit qualitativ hochwertig. Eine InfoSource ist somit im Gegensatz zu
einer DataSource quellsystemunabhängig. Eine DataSource kann aber nur
an eine InfoSource angebunden werden.
Die Definition der Zielstruktur der Homogenisierung wird als Kommunikationsstruktur bezeichnet.
TP
14
PT
[Meh03], S.18
Seite 17
Integration Layer
Die transformierten Bewegungsdaten werden in InfoProvider fortgeschrieben.
InfoProvider sind alle BW-Objekte, die für das Reporting genutzt werden.
Diese sind betriebswirtschaftliche abgeschlossene Bereiche. Zu diesen
gehören InfoCubes, ODS-Objekte und InfoObjects. Diese werden auch als
Datenziele bezeichnet, da sie die letzte Stufe des Staging-Prozesses sind.
Ferner sind InfoSets und Multiprovider InfoProvider, jedoch ohne eigene
physische Datenhaltung.
Für die Fortschreibung von Daten der InfoSources in die Datenziele, müssen
Fortschreibungsregeln definiert werden. Fortschreibungsregeln sind Datenziel-spezifisch, d.h. es wird für jedes Datenfeld eines Datenzieles die Fortschreibungsart festgelegt. Jede InfoSource kann dabei Daten in mehrere
Datenziele fortschreiben. Mögliche Fortschreibungsarten sind: keine Fortschreibung, Überschreiben und Minimum, Maximum, Addition (Abbildung
2-4).
Abbildung 2-4. einfaches Bsp. einer additiven Fortschreibung
Der wichtigste InfoProvider ist der multidimensionale InfoCube (s. Abbildung
2-1), der die Grundlage der Datenanalyse darstellt und extra für diese konzi-
Seite 18
piert und optimiert wurde. Ein InfoCube deckt einen betriebswirtschaftlichen
Bereich ab (z.B. Vertrieb ) und ist prädestiniert für das Reporting aus hochverdichteten, unveränderlichen Daten.
Weiterhin gibt es ODS-Objekte, die den Vorteil der sofortigen Verfügbarkeit
haben (transaktionale ODS-Objekte), aber auch den Nachteil der schlechteren Performance und Qualitätssicherung bei größeren Datenmengen aufweisen. ODS-Objekte dienen der Speicherung von Daten, die sich schnell
verändern. Das ODS-Objekt hat den Vorteil des Delta-Mechanismus, weswegen Daten bei der Volkswagen Bank oftmals erst in ein ODS und dann in
die InfoCubes gelangen. Mit dem Delta-Verfahren kann ermittelt werden,
welche Datensätze sich zwischen zwei Monatstabellen geändert haben bzw.
neu hinzugekommen sind.
InfoCubes sind nach einem Star-Schema aufgebaut Die zentrale Faktentabelle ist mit den Dimensionstabellen über eine eindeutige Dimensions-ID
(Dim-ID) verknüpft (s. Abbildung 2-5). Eine Dimensionstabelle enthält
Datenfelder und mindestens ein Schlüsselfeld.
Abbildung 2-5: Star-Schema
Wenn von einem Datenfeld (z.B. Produktnummer) gesprochen wird, dann ist
damit technisch gesehen ein InfoObject gemeint. InfoObjects sind die
kleinste Einheit im SAP BW. Jedes BW-Objekt besteht aus einer Menge von
Seite 19
InfoObjects und ist ohne sie nicht existent. Stamm- und Bewegungsdaten
sind in InfoObjects gespeichert. Eine detaillierte Erläuterung der InfoObjects
folgt in Kapitel 2.4.3.
Weitere BW-Objekte
Für eine DataSource werden ein oder mehrere InfoPackages definiert. In
einem InfoPackage werden Steuerparameter für Ladeprozesse festgelegt
(Transferstruktur).
Oftmals ist eine Datenanalyse auf mehreren Datenzielen notwendig, denn
InfoCubes decken ja nur einen betriebswirtschaftlichen Bereich ab. Besitzen
die Datenziele eine gemeinsame Schnittmenge, dann kann man mit Hilfe von
Multiprovidern die heterogenen Daten der InfoProvider in einem gemeinsamen Kontext darstellen.
Eine weitere Möglichkeit der Analyse und des Reporting ist das Anlegen
eines InfoSets. Im BW-System der Volkswagen Bank werden zumeist InfoSets verwendet, da dort auf ODS-Objekten selber nicht analysiert wird. InfoSets haben wie Multiprovider keine eigene physische Datenhaltung, sondern
erhalten temporär zum Zeitpunkt der Analyse die nötigen Daten aus den
angegebenen (ODS-) Objekten.
2.4.3.
InfoObject
Diese Diplomarbeit beschäftigt sich primär mit dem BW-Objekt InfoObject,
weswegen dieses nun ausführlich beschrieben wird.
Ein InfoObject - als kleinste Einheit im BW - ist ein betriebswirtschaftlicher
Basis-Informationsträger. Es ist zwingender Bestandteil für die Existenz
eines BW-Objekts. Ein InfoCube kann höchstens 16 Dimensionen haben und
besteht immer aus mehreren InfoObjects. Höchstens 253 InfoObjects sind
eine Dimension dieses InfoCubes.
Ein InfoObject kann von dem Typ Kennzahl (engl.: keyfigure), Merkmal
(engl.: characteristic), Zeitmerkmal oder Einheit sein. Kennzahlen gehören zu
den Bewegungsdaten und sind Werte und Mengen wie z.B. Umsatz und
Seite 20
Lagerbestände. Umsatz ist eine Flussgröße, das heißt, dass der Umsatz sich
auf einen Zeitraum bezieht. Dagegen ist Lagerbestand eine Bestandsgröße,
die sich auf einen Zeitpunkt bezieht.
Merkmale dienen der Auswertung von Kennzahlen. So sind z.B. Region und
Produkt Merkmale, die zusammen mit der Kennzahl Umsatz eine Basis zur
Auswertung ergeben (Kapitel 2.3).
Da der Umsatz zeitraumbezogen ist, muss eine weitere Dimension hinzugefügt werden. Diese Dimension ist das Zeitmerkmal. Die Dimension Zeitmerkmal ist ein fester Bestandteil eines InfoCubes, da ohne die Dimension
Zeit nichts existieren kann. So gibt es im Business Content unter anderem
die bereits bestehenden Zeitmerkmale Kalendertag (0calday) und -monat
(0calmonth). Mit Business Content werden unter anderem alle bei der Auslieferung bereits konfigurierten InfoObjects bezeichnet. Man kann ausschließlich Zeitmerkmale des Business Content benutzen, das Anlegen eigener Zeitmerkmale ist nicht möglich.
Eine Einheit ist eine zusätzliche Information eines Betrages oder einer
Menge, z.B. Gramm, Stück, EUR. Dabei handelt es sich immer um eine
Mengeneinheit oder um eine Währung.
Beziehungen von BW-Objekten untereinander
Ein InfoObject ist Teil eines jeden BW-Objekt-Typs. Wie oben erwähnt, kann
ein InfoObject Bestandteil mehrerer InfoCubes sein. Genauso enthält ein
InfoCube mehrere InfoObjects. Die Beziehung von InfoObjects zu InfoCubes
ist also eine m:n- Beziehung. In der Welt der relationalen Datenbanken sind
m:n- Beziehungen problematisch bzw. nicht darstellbar. Für die Nutzer des
BW-Systems führt dieser Sachverhalt analog zur Unübersichtlichkeit
(Abbildung 2-6).
Seite 21
Abbildung 2-6: m:n-Beziehung InfoCube-InfoObject
Da alle BW-Objekte miteinander entweder in einer n:m oder 1:n- Beziehung
stehen, wird die Komplexität der Zusammenhänge noch sehr viel größer.
Diese Komplexität soll in der Dokumentationsverwaltung übersichtlich dargestellt werden.
Begriffserklärungen
Im Folgenden werden einige Begriffe15 erklärt, welche in Zusammenhang mit
TP
PT
InfoObjects stehen und wichtige Metadaten-Parameter für die Anlage von
InfoObjects sind:
Attribute
Attribute sind Merkmale, die von anderen Merkmalen abhängig sind. Diese
sind zusätzliche Informationen für das Hauptmerkmal. Das Merkmal „Auftraggeber“ hat zum Beispiel die Attribute „Auftraggeberland“ und „Aktiengesellschaft“. Ein Merkmal kann sowohl Attribut für ein anderes Merkmal als
auch ein eigenständiges Attribut sein.
Navigationsattribute
Ist ein InfoObject ein Navigationsattribut, dann kann beim Reporting ein Filter
gesetzt werden (z.B. ist AG, ist nicht AG).
TP
15
PT
[Kle04]
Seite 22
Hierarchien (alle InfoObject-Typen)
Durch Hierarchien können in Queries Stammdatenbeziehungen in einer
Baumstruktur dargestellt werden. Das Beispiel eines referenzierten Knotens
wird näher erläutert. Die Konzernhierarchie (Abbildung 2-7) ist zum Infoobjekt
Kunde angelegt. Alle Konzernmütter und -töchter haben jeweils eine eigene
Kunden-Nr. In den Hierarchieknoten sind dann diese Konzern-Kunden-Nr
eingetragen. Die Knotentexte werden dynamisch aus den Kundenstammtexten gefüllt.
Abbildung 2-7: Beispiel einer Hierarchie
Klammerung (Merkmal)
Mehrere Merkmale können miteinander zu einem neuen Merkmal geklammert werden. Das Merkmal Werk und das Merkmal Material können z.B. zu
einem neuen Merkmal zusammengefasst (geklammert) werden. Bei der
Klammerung von Merkmalen werden lediglich die Schlüssel der beteiligten
Merkmale zu einem neuen Schlüssel hintereinander gestellt. Die Stammdaten dieses so definierten Merkmals sind völlig unabhängig von den Stammdaten der beteiligten Merkmale.
Referenzmerkmal (Merkmal)
Merkmale, welche auf andere Merkmale referenziert werden, haben im
Gegensatz zu den geklammerten Merkmalen keine eigenen Stammdaten
sondern 'erben' die Stammdaten des Basis- Merkmals. Das Infoobjekt Kunde
zum Beispiel hat eigene Stammdaten. Da ein Zwischenhändler auch ein
Seite 23
Kunde ist, d. h. auch er hat eine Kunden-Nr, ist er ein eigenes Infoobjekt mit
Referenz auf das Infoobjekt Kunde. Dieses referenzierte InfoObject hat somit
physisch keine Stammdaten sondern benutzt die Stammdaten des InfoObjects Kunde.
Aggregation (Kennzahl)
Die Aggregation wird für die Verdichtung von Daten benötigt. Zumeist werden Werte aufsummiert. Zum Beispiel verdichtet das Produktaggregat die
Kennzahlen pro Produkt-Nr und Zeit.
Seite 24
3. Ist- und Sollzustand
3.1. IST-Zustand
In diesem Unterkapitel wird der IST-Zustand der Dokumentationsverwaltung
des SAP BW beschrieben. Zur Beschaffung unterschiedlicher Informationen
über ein BW-Objekt, muss derzeit an unterschiedlichen Orten im BW System
gesucht werden.
Anzeige und Verwaltung von BW-Objekt-Dokumentationen
Wird beispielsweise die betriebswirtschaftliche Beschreibung gesucht, so
muss im Administrator Workbench unter der Sicht Dokumente nachgesehen
werden (Abbildung 3-1). Dort sind alle vorhandenen Dokumentationen zu
einigen BW-Objekten abgelegt. Eine Dokumentation, die vorher per Word,
HTML, XML etc. angefertigt wurde, kann dort einzeln hochgeladen werden.
Danach wird sie dem BW-Objekt, dem sie angehört, zugewiesen und im
System gespeichert (Abbildung 3-1).
Abbildung 3-1: Dokumentationen im BW
Seite 25
Um nicht jede Dokumentation manuell anlegen zu müssen, gibt es bisher
eine von Mitarbeitern selbst erstellte Access-Datenbank. Diese wird allerdings innerhalb eines bestimmten Projekts verwendet. In einer Tabelle der
Datenbank werden alle Daten für die Dokumentation gespeichert. Mithilfe
eines Visual Basic-Programms werden dann HTML-Dokumentationen mit
vorgegebener Struktur generiert, gespeichert und mit einer Routine allesamt
in das BW hochgeladen. Dort können die Dokumentationen einzeln modifiziert werden. Dieses Vorgehen ist ein erster Ansatz zur gleichzeitigen
Erstellung von mehreren Dokumentationen.
Mängel:
•
es existiert nicht zu jedem BW-Objekt eine Dokumentation
•
vorhandene Dokumentationen haben verschiedene Formate (HTML,
DOC, VISIO)
•
Dokumentationen sind oftmals unvollständig, teilweise steht in Dokumentationen nur ein Satz
•
es gibt keine Zuständigkeiten für das Anlegen und Pflegen von Dokumentationen
•
Änderungen bezüglich eines BW-Objektes werden oftmals nicht
aktualisiert.
•
Änderungen sind umständlich, da entweder der Quellcode direkt oder
mit Hilfe eines externen Editor-Programms angepasst werden muss
•
aktuelle Anmerkungen wie z.B. eine E-Mail oder ein Kommentar sind
schon längst veraltet
•
die Suche nach einem BW-Objekt erschwert sich, wenn man den
technischen Namen nicht kennt
•
der Prozess des manuellen Erstellens oder Füllens der vorhandenen
Access-Datenbank bis hin zu dem Hochladen der Dokumentation ist
recht umständlich.
•
Informationen zu BW-Objekten sind an diversen Stellen verteilt: Die
Dokumentationen der einzelnen Projekte sind in Excel-Tabellen und
Seite 26
Word-Dokumenten auf den Netzlaufwerken zu finden. Informationen
über und die Meta-Daten sowie die Dokumentationen der BW-Objekte
befinden sich an verschiedenen Orten des SAP BW
•
ersetzt man die alte durch eine neue Dokumentationsversion, geht die
alte Version verloren, fehlende Historie
Positive Eigenschaften:
•
das HTML-Format ist ein Schritt in die richtige Richtung; HTML ist
eine softwareunabhängige Metasprache und aufgrund der Designmöglichkeiten gut für die Anzeige einer Dokumentation geeignet
•
es existiert eine Art Vorab-Standard für InfoObjects, der nur ein wenig
ergänzt und angepasst werden muss
Online-Anzeige des Datenflusses
Weitere Informationen, die angefordert werden können, sind Metadaten-Informationen zu dem Datenfluss, zur Herkunft und Verwendung eines BWObjektes. Beispielsweise stellt sich die Frage, in welchen ODS-Objekten und
InfoCubes ein InfoObject enthalten ist.
Dazu gibt es die Möglichkeit, sich pro BW-Objekt eine Online-Dokumentation anzeigen zu lassen. Über den Browser kann sich der Benutzer per Web
Application Server auf dem BW-Produktivsystem anmelden und dort zu den
gewünschten Informationen navigieren. Der Bezug der BW-Objekte zueinander ist hierarchisch verlinkt. Diese Online-Dokumentation soll später in die
Dokumentation eingebaut werden.
Die Struktur der Online-Dokumentation ist in drei Teile eingeteilt16:
TP
•
allgemeine Angaben (Erstellungsdatum, technischer Name, System,
Beschreibung (kurz), Beschreibung (lang) )
TP
16
PT
PT
•
BW-Objekt- Dokumentation (s.o.)
•
Links zu Online-Dokumentationen abhängiger BW-Objekte
[SAPHlp]
Seite 27
Mängel:
•
unübersichtlich, da die Seite bei BW-Objekten mit „viel Datenfluss“
sehr lang wird und der Überblick über die gesamte Seite verloren
geht.
•
nur Lesezugriff, d.h. das Modifizieren einer BW-Objekt-Dokumentation
ist von dort aus nicht möglich
Positive Eigenschaften
•
mit dem Web Application Server ist eine einfache Darstellung des
Datenflusses über den Browser möglich
•
die Links der abhängigen BW-Objekte werden dynamisch erzeugt und
sind so immer auf dem neuesten Stand
3.2. SOLL-Zustand
Aus den aufgezählten Mängeln des Ist-Zustands und aus Mitarbeiterbefragungen entstehen die Anforderungen an die neue Dokumentationsverwaltung.
Da zu Beginn dieser Arbeit kaum Informationen über das Arbeitsgebiet vorlagen, wurden die internen Mitarbeiter teils per Interview, teils per Fragebogen (Anhang A, S.99) befragt. Aufgrund der großen Anzahl, erfolgte die
T
T
Befragung der externen Mitarbeiter ausschließlich per Fragebogen17. So
TP
PT
konnten diverse Kritikpunkte des Ist-Zustands, Wünsche zu deren Verbesserung und Informationen über die Mitarbeiter (Bedarf an Dokumentenverwaltung, Kenntnisse über das SAP BW) ermittelt werden.
Die Mitarbeiter machten diverse Vorschläge
•
zu dem Prozess der Dokumentationserstellung
•
zu Zuständigkeiten und Qualitätssicherung
Seite 28
•
zu der Einführung eines Change Request-Verfahrens bei Anmerkungen und Änderungswünschen
•
zu der Informationsbeschaffung: automatische Benachrichtigung per
Email oder Holpflicht
•
zu den Suchmöglichkeiten (Schlagwortsuche)
•
zu dem Umfang der Druckfunktionen
Aus den Auswertungen der Fragebögen und der Mitarbeiterbefragungen folgen die groben Anforderungen des SOLL-Zustands. Es soll eine plattformunabhängige Anwendung erstellt werden, auf die jeder Anwender, der Zugang
zu dem SAP BW hat -- auch von außerhalb -- zugreifen kann:
•
die Sprache soll von Deutsch auf Englisch umschaltbar sein, da auch
ausländische Mitarbeiter auf diese Dokumentationen zugreifen werden. Auch wird der Inhalt der Dokumentationen mehrsprachig erstellt
(Deutsch, Englisch und Französisch)
•
persönliche Einstellungen sollen möglich sein: Möglichkeit der
Anzeige von relevanten Informationen
•
Einführung
T
von
Zuständigkeiten
bzw.
Rollen:
T
Fachbereichsverantwortlicher bzw. Auftraggeber(Customer), zuständiger Entwickler (Developer), Supervisor (Kontrolle der Dokumentationen) und normaler Anwender ohne Sonderstatus
•
Einführung von Berechtigungen (Lesen, Schreiben, Ändern, Freigeben) analog zu den Zuständigkeiten
•
Anzeige aktueller Informationen und Anmerkungen zu einem BW-Objekt
•
komfortable
Navigation
zwischen
den
in
Bezug
stehenden
Dokumentationen und Meta-Daten der BW-Objekte
•
Für die Beschaffung von Informationen besteht Holpflicht; eine EmailBenachrichtigung erfolgt nur, wenn ein Mitarbeiter im Rahmen des
Erstellprozesses für eine Dokumentation zuständig ist
•
Einrichtung eines Versionsmanagements erwünscht
Seite 29
•
Die Darstellung des Datenflusses per Web Applikation Server, bzw.
die Einbindung der bestehenden Seiten
•
Im Falle der Dokumentationserstellung ist die Erstellung einer webbasierten Anwendung nötig, damit sich im Außendienst befindliche Mitarbeiter die Anwendung von jedem internetfähigen Endgerät nutzen
können
•
Einführung eines Prozesses zur Erstellung eines BW-Objektes, welcher die Qualität der Dokumentationen sicherstellt: der Entwickler
erstellt als Vorbedingung für das Anlegen eines InfoObjects im SAP
BW eine Dokumentation. Der Auftraggeber vom Fachbereich ergänzt
sie um die betriebswirtschaftlichen Informationen und der Supervisor
kontrolliert und gibt die Dokumentation frei. Die Teilimplementierung
dieses Meilensteins wird in Kapitel 6 ausführlich beschrieben.
Weiterhin ist die Auswahl geeigneter Programmiertechniken und Tools notwendig. Diese müssen diverse Kriterien wie z.B. die Plattformunabhängigkeit, die Schnittstelle zu einer Datenbank, den Austausch der Dokumentationen mit der SAP-Datenbank und die grafische Darstellung der Dokumentationen erfüllen.
In Kapitel 4 werden diese Techniken und Tools näher beschrieben.
Seite 30
4. Einsatz von Software-Techniken
Bei der Wahl der geeigneten Techniken, Sprachen und Systeme spielt
sowohl ihre Präsenz in der Volkswagen Bank als auch ihre Qualität und ihr
Funktions- und Leistungsumfang eine Rolle.
Die gewählten Sprachen und Techniken müssen miteinander kommunizieren
können und diversen Anforderungen gerecht werden:
•
Plattformunabhängigkeit (bei späterer Migration)
•
geeignete Schnittstellen für die Anbindung an die anderen Systeme
und den Datenaustausch
•
Möglichkeit der Darstellung und Speicherung von Dokumentationen
und Daten
•
Webbasiertes GUI
•
Suchmöglichkeiten
In den folgenden Unterkapiteln werden die in Frage kommenden Techniken
vorgestellt. Dafür werden Leistungs- und Funktionsumfang erarbeitet und
erste Entscheidungen über die Auswahl getroffen. Am Ende dieses Kapitels
ist der komplette Aufbau der Anwendung in Form einer Grafik zu sehen.
4.1. XML
XML wird an dieser Stelle ausführlich erläutert, da die XML-Technik der
Erstellung, Darstellung und Speicherung von Dokumentationen grundlegender und wichtigster Bestandteil der Dokumentationsverwaltung ist.
Seite 31
4.1.1.
Grundlagen XML
XML (Extensible Markup Language) ist seit 1998 ein Standard des W3C18.
TP
PT
Seinen Ursprung hat XML in SGML (Standard Generalized Markup Language).
SGML ist der erste Markup-Formalismus und entstand aus dem Bedarf nach
system- und softwareunabhängiger Datenspeicherung. Da SGML jedoch als
zu kompliziert empfunden wurde, ist nun XML, das ursprünglich ein Teil von
SGML war, der würdige vereinfachte Nachfolger mit ähnlich hohem Leistungsumfang wie seine Vorgängersprache SGML.
Aufbau und Struktur
Ein XML-Dokument besteht aus miteinander vermengten Zeichendaten und
Markup. Markup bezeichnet unter anderem
•
Start-Tags:
<…>
•
End-Tags:
</…>
•
Entity-Referenzen: „<“ muss im Text als > geschrieben werden
•
Kommentare:
<!-- -->
Sämtlicher Text, der kein Markup ist, bildet die Zeichendaten des Dokuments.
XML-Dokumente beginnen mit einer XML-Deklaration (Prolog):
<? xml version="1.0" encoding="ISO-8859-15"?>
T
In dieser stehen die verwendete XML-Version und ggf. die Kodierungs- deklaration des ISO-Standards 8859 (u.a. Deutscher Zeichensatz).
Weiterhin muss ein XML-Dokument aus mindestens einem Element, dem
Wurzelelement bestehen (s. Abbildung 4-1).
TP
18
PT
W3C: World Wide Web Consortium
Seite 32
Zwischen diesen Tags befinden sich die Kindelemente, die wiederum Kindelemente enthalten können. Jedes Element bis auf das Wurzelelement hat
umgekehrt auch Eltern (übergeordnete Elemente).Weiterhin gibt es die
Bezeichnung Geschwister für gleichrangige Elemente, Vorfahren für alle
untergeordneten Elemente und Nachfahren für alle übergeordneten Elemente. Durch diese Verschachtelung entsteht eine baumähnliche Struktur.
Analog zur der Bezeichnung Wurzelelement werden kinderlose Elemente
auch als Blätter bezeichnet.
Abbildung 4-1: Baumdarstellung eines XML-Dokuments
Beispiele zur Verwandtschaft der Knoten
Das Element Teilnehmer ist
•
Kind von Seminar
•
Vater und Nachfahre von Anzahl
•
Geschwisterteil von Name und Treffen
In Beispiel 4-1 wird der Baum als XML-Dokument dargestellt:
<?xml version="1.0! encoding="ISO 8559-15"?>
<Seminar>
<Name>
</Name>
T
<Teilnehmer>
<Anzahl></Anzahl>
Seite 33
</Teilnehmer>
<Treffen>
</Treffen>
</Seminar>
Beispiel 4-1: XML-Dokument
Wohlgeformtheit
Ein XML-Dokument muss wohlgeformt sein, d.h. es muss sich an die syntaktischen Regeln der XML-Spezifikationen halten. Die wichtigsten Kriterien,
die erfüllt sein müssen, damit ein Dokument wohlgeformt ist, sind:
•
in der ersten Zeile steht die XML-Deklaration mit Version und Kodierungsdeklaration
•
es existiert genau ein Stamm-Element
•
jedes Start-Tag muss auch ein End-Tag haben
•
die Elemente müssen ordnungsgemäß ineinander verschachtelt sein
Beispiel 4-1 ist wohlgeformt und wird aufgrund dessen im Browser dargestellt. Ist ein Dokument nicht wohlgeformt, wird im Browser statt des Baumes
eine Fehlermeldung angezeigt.
Elemente und Attribute
Dem XML-Dokument aus Beispiel 4-1 fehlen natürlich noch die Inhalte.
Zwischen dem Start- und dem End-Tag der Element kann man Daten als
Inhalt einfügen. Dateninhalt haben nur kinderlose Elemente. In Beispiel 2
wurden in die Blattelemente Inhalte eingefügt:
<?xml version="1.0! encoding="ISO 8559-15"?>
<Seminar>
<Name>
XML Workshop
</Name>
<Teilnehmer>
<Anzahl>10</Anzahl>
</Teilnehmer>
Seite 34
<Treffen Ort="Raum10" Zeit=“Donnerstag“>
</Treffen>
</Seminar>
Beispiel 4-2: XML-Dokument mit Inhalt
Neben Elementen können optional Attribute angegeben werden.
Attribute werden in den Start-Tag des Elements geschrieben und geben die
Eigenschaften eines Elementes wieder.
4.1.2.
Die Stylesheets CSS/ XSL
XML ist sehr gut für den plattformunabhängigen Austausch von Daten geeignet. Weiterhin können XML-Dokumente auch zur Ansicht bereitgestellt werden. Ein XML-Dokument für den Austausch von Daten hat zumeist eine
simplere Struktur als ein für die Ansicht definiertes Dokument. Denn um ein
Dokument in einem Browser anzeigen zu können, bedarf es eines Stylesheets. Ohne Stylesheet erfolgt die Anzeige eines Dokumentes im Browser
wie in Beispiel 4-2. Um den XML-Inhalt in einem Browser anzuzeigen ist eine
Möglichkeit, das XML-Dokument in HTML umzuwandeln.
Am bekanntesten sind dafür die standardisierten Darstellungssprachen CSS
(Cascading Stylesheets) und XSL (XML Stylesheet Language).
Für die Darstellung von HTML wird CSS, welches schon seit 1996 besteht,
standardmäßig genutzt um eine individuelle Formatierung zu erreichen. CSS
kann aber auch für die Darstellung eines XML-Dokuments verwendet werden. CSS ist die ältere der beiden Methoden und wird durch die neue XSL
Technik abgelöst.
XSL
Mit XSL gibt es eine weitere Variante, einen Style zu definieren. XSL ist mit
der Transformationssprache XSLT (XSL-Transformations) eng verknüpft.
Per XSLT kann ein XML-Dokument in diverse andere Formate (z.B. PDF und
HTML) transformiert, d.h. umgewandelt werden. Ein XML- Prozessor, der
z.B. auch Bestandteil des Internet Explorers ist, nimmt diese Transformation
Seite 35
vor. Die Regeln, wie ein Dokument transformiert wird, werden mit Templates
aufgestellt, die mit XPath definiert werden. XPath selektiert Teile eines XMLDokuments mittels Pfadangaben. Das Beispiel unten zeigt ein simples XSLStylesheet. Alle Elemente, denen keine XSL- Anweisung vorangeht, wie zum
Beispiel der HTML-Code, werden einfach in den Ausgabebaum kopiert.
<?xml version="1.0" encoding="ISO-8859-15"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html> <!-- Non-XSLT Elements are simply copied -->
<head>
<title>Seminar</title>
</head>
<h1>Seminar</h1>
<table border="1">
<tr>
<th>Name</th>
<th>Zeit</th>
</tr>
<!-- Now find templates to transform my children -->
<xsl:apply-templates select="Seminar"/>
</table>
</html>
</xsl:template>
<!--*********** Template *********-->
<xsl:template match="Seminar">
<tr>
<td>
<xsl:value-of select="Name"/>
</td>
<td>
<xsl:value-of select="Treffen"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
Beispiel 4-3: XSL-Dokument
Ergebnis dieser XSL-Vorlage, verknüpft mit unserer XML-Datei, ist eine
HTML-basierte Darstellung in Tabellenform:
Seite 36
Abbildung 4-2: XML-Dokument-Anzeige per XSLT
Vor- und Nachteile CSS/ XSL
Das CSS-Stylesheet ist einfacher zu erlernen, hat aber begrenzte Möglichkeiten. XSL ist vor allen Dingen für Transformationen von XML in andere
Formate unabdinglich und hat den Vorteil, dass es in XML beschrieben ist
und somit selbst als XML-Dokument behandelt und verarbeitet werden kann.
Es gibt sehr viele Möglichkeiten mit XSL, XML- Dokumente darzustellen, z.B.
kann man Elemente sortiert aufzeigen (xsl:sort) und sie an Bedingungen
knüpfen (xsl:if). XSL besitzt zahlreiche weitere Möglichkeiten der Darstellung
und Transformation von XML- Dokumenten.
4.1.3.
Weitere XML-Begriffe
Validierung: DTD und XSD
Validierung bedeutet, dass ein Dokument mittels eines Parsers auf Gültigkeit
hin überprüft wird. Gültigkeitsregeln kann man selber aufstellen. Es ist
manchmal notwendig zu definieren, dass ein Element unbedingt Inhalt haben
muss. So kann man definieren, dass z.B. die Anzahl der Teilnehmer eines
Seminars eingetragen sein muss. Diese darf aber nur genau einmal angegeben werden, da sich sonst Inkonsistenzen ergeben. Wird nun versucht, in
einem XML-Dokument einen Eintrag zu machen, der nicht den aufgestellten
Regeln entspricht, gibt der Parser eine Fehlermeldung aus.
Die zwei bekanntesten Möglichkeiten, die Struktur eines XML-Dokumentes
festzulegen ist die DTD (Document Type Definition) und XSD (XML Schema
Definition).
Seite 37
Die DTD Spezifikationen wurden vom W3C Konsortium vorgeschlagen, während die XML Schemas auf einen Vorschlag von Microsoft basieren aber
kürzlich vom W3C Konsortium vereinheitlicht und standardisiert wurden.
DOM (Document Object Model):
T
T
DOM gibt ein Dokument in Form eines Baumes wieder. Die meisten XMLParser implementieren einen von zwei API’s: entweder DOM oder SAX
(Simple API for XML).
XPath (XML Path Language):
T
T
DOM nimmt sich XPath zur Hilfe, um einzelne Knoten eines Dokumentes
ansprechen
zu
können.
Dieses
geschieht
per
Pfadangabe
(z.B.
/Seminar/Teilnehmer). Der Standard XPath 2.0 existiert seit Ende 200319 und
TP
PT
enthält einige Neuerungen.
Datenorientiertes und Dokumentenorientiertes XML
Datenorientierte Dokumente sind im Gegensatz zu dokumentenorientierten
XML-Dokumenten eher für den Datenaustausch als für die Ansicht gedacht
und weisen eine einfachere Struktur auf. Die Dokumentationen der Dokumentationsverwaltung tendieren zu dem dokumentenorientierten XML, da sie
letztendlich zur Ansicht genutzt werden und von unterschiedlicher Struktur
sind.
4.1.4.
Gründe für die Entscheidung für XML
Für die Aufstellung eins Konzeptes für die Dokumentationsverwaltung ist es
wichtig, frühzeitig zu definieren, in welchem Format die Dokumentationen
vorliegen sollen. Dieses Format wird das XML-Format sein. XML ist derzeit
der einzige Standard, der eine so breite Palette an Möglichkeiten für die
Bearbeitung und Kategorisierung der Daten, dem Datenaustausch zwischen
Systemen und Anwendungen sowie der Datenanzeige, unterstützt.
Gerade Dokumentationen enthalten sehr viele Daten, deren Darstellung,
Speicherung und Verarbeitung eine Herausforderung darstellt. Der XML-
TP
19
PT
[W3C]
Seite 38
Standard mit seiner hohen Flexibilität und Erweiterbarkeit hat eine Fülle von
Möglichkeiten für diese Herausforderung geschaffen.
XML ist dafür bekannt, dass es einen großen Overhead hat. Dieses stellt bei
den geringen Kosten für Speicherplatz und immer schneller werdenden
Rechnersystemen aber immer weniger ein Problem dar.
HTML alleine genügt nicht für den Datenaustausch und die Datenbearbeitung, da die Baumstruktur von HTML-Dokumenten für das Selektieren von
Knoten aufgrund uneindeutiger Tagbezeichnungen nicht geeignet ist. HTML
ist trotz fehlenden Eigenschaften von enormer Wichtigkeit für die BrowserDarstellung von Internetseiten und Anwendungen und kommt daher auch
zum Einsatz, nämlich dann, wenn das fertige XML-Dokument für die Ablage
im SAP BW in das HTML-Format transformiert wird.
Für die Transformation wird aufgrund der XML-Syntax und der verschiedenen Stylegebungsmöglichkeiten XSL eingesetzt. Glücklicherweise unterstützen SAP und Microsoft die beiden Formate und es gibt in dem .NET Framework und in der Oracle-Datenbank zahlreiche Klassen und Methoden zu ihrer
Bearbeitung.
Seite 39
4.2. Oracle-Datenbank
Oracle ist ein objekt-relationales Datenbanksystem. Bei relationalen Datenbanken werden per SQL-Anweisungen (Structured Query Language) Anfragen an die Datenbank ausgeführt20. Mit der DDL (Data Definition Language)
TP
PT
ist das Anlegen von Tabellen, Spalten, Constraints und Triggern realisierbar.
Das Manipulieren von Daten ist per INSERT, UPDATE oder DELETE (DML,
data manipulation language) möglich. Objekt-relational ist eine Erweiterung
der relationalen Datenbank um Objekte. Objekte sind z.B. Tabellen, Klassen
und Tupel (Zeilen). Außerdem
existieren SQL-Spracherweiterungen wie
prozedurale Sprachen. Die Dokumentationsverwaltung benötigt die OracleInstanz für die Zwischenspeicherung von XML-Dokumenten und die permanente Speicherung anderer Daten (Rechte, User, Suchfunktionen). Für diese
Arbeit wurde eine neue Oracle-Instanz mit dem Namen vwfsdw1e aufgesetzt.
Es handelt sich um die Version 9i Release, die auf der Entwicklungsumgebung liegt. Die Version 9i enthält einige Neuerungen bei der Speicherung
und Bearbeitung von XML, auf die im Folgenden eingegangen werden soll.
Es gibt drei Möglichkeiten der Speicherung von XML-Dokumenten:
•
LOB (Large Object): LOB: CLOB (Character LOB), BLOB (Binary
T
T
LOB). Methode, eine große Menge (bis zu 4GB) unstrukturierter Daten
in einer Tabellenspalte zu speichern
•
Relational: Verteilung der Elemente/ Attribute auf rel. Tabellen (ohne
T
T
Tags), Datenorientiert
•
Decomposed (strukturiert):
T
T
geringerer Speicherbedarf, weil Tags
nicht gespeichert werden müssen, Zugriff aus einzelne Elemente
schneller. Liegt ein XML-Schema vor, kann man eine XML-Dokumentation
in relationale Tabellen zerlegen und umgekehrt. XMLTYPE:
neu entwickelter Datentyp, der das Speichern und Abfragen von XMLDokumenten möglich macht. XMLType ist intern als CLOB definiert,
TP
20
PT
[Mül]
Seite 40
Dokumentenorientiert (unregelmäßige Struktur), Composed (unstrukturierte Speicherung), XML-Validierung möglich
Vor- und Nachteile XMLTYPE zu der relationalen Speicherung
Die Möglichkeit, ein XML-Document als CLOB/BLOB zu speichern, kann
verworfen werden, da der neue Datentyp XMLTYPE, der intern als CLOB
verwaltet wird, mehr Features für die Speicherung hat. Es bleibt nur abzuwiegen, ob ein XML-Document als XMLTYPE oder aber in relationalen
Tabellen gespeichert werden sollte.
Vorteile von XMLType
•
XPath ist Standard für den Zugriff auf Inhalte der XML-Datei
•
SQL arbeitet zunehmend mit XML zusammen21,
•
das Original-Dokument geht nicht verloren (XMLTYPE beinhaltet
TP
PT
Dokumentation Byte für Byte),
•
Validierung, Volltextindex und DOM-Zugriff auf XML möglich.
•
Ein sehr wichtiger Aspekt ist, dass das Einfügen von XML-Dokumenten mit variabler Struktur einfacher ist!
•
Weiterhin sind diverse Funktionen und Operationen vorhanden um
XML-Dokumente abzufragen und zu bearbeiten. Diese werden bei der
Erstellung
von
HTML-Dokumentationen
verwendet
(Kapitel
Nachteile von XMLType
•
Zugriff und Update nur auf ganzem Dokument möglich
•
Kombination mit rel. Daten schwierig
•
Mittelmäßige DML Performance
•
verbraucht mehr Speicherplatz (aufgrund des XML-Overhead)
Seite 41
5).
Diverse Funktionen und Packages
Funktionen:
ExistsNode():
Überprüfung der Existenz eines Knotens per XPath,
Extract():
extrahiert einen oder mehrere Knoten, die der XPathAngabe entsprechen,
ExtractValue():
liefert den Inhalt eines Knotens
Xmltransform:
Transformation von XML per XSL
Weitere:
updatexml, xmlelement, xmlforest, xmlsequenz,
xmlconcat, xmlagg
Package:
Dbms_xmlgen:
Generierung von XML aus relational gespeicherten Daten
Weitere:
Dmbs_xmlschema, Sys_xmlgen
Fazit:
In der Dokumentationsverwaltung werden die Daten erst in relationaler Form
in den Datenbanktabellen gespeichert. Erst wenn das XML- bzw. HTML-Dokument benötigt wird, wird aus diesen Daten ein Dokument vom Typ
XMLTYPE durch oben genannte Funktionen und Packages erzeugt. Die
Speicherung von relationalen Daten hat den Vorteil, dass diese per SQL
einfacher zu manipulieren und im DataGrid anzuzeigen sind. Auch ist den
meisten Entwicklern, wenn das Programm später weiterentwickelt werden
soll, die relationale Speicherung besser bekannt. Die XML-Dokumentationen
unterscheiden sich nur gering in ihrem Aufbau und weisen eine einheitliche
Struktur auf, weswegen die Generierung von XML-Dokumenten aus relational abgelegten Daten problemlos möglich ist.
TP
21
PT
ISO-Standard 9075 -14:2003: definiert, wie SQL mit XML zusammenarbeitet
Seite 42
4.3. .NET Technologie
Die .NET Strategie wird seit Mitte 2000 von Microsoft stetig weiterentwickelt.
Der Begriff .NET umfasst verschiedene Techniken und lässt sich schwerlich
in einem Satz zusammenfassen. Auf dem ersten Blick ist .NET ein Marketingbegriff, der die Zukunftsträchtigkeit webbasierter Anwendungen, vor allen
Dingen von XML-WebServices herausstellt. WebServices sind Webdienste,
die wiederum von anderen Anwendungen genutzt werden können.
Ein Entwickler hat den Versuch gemacht, den Begriff .NET in einem Satz zu
definieren:
.NET ist die neue Programmierumgebung von Microsoft, die als Nachfolger
von COM eine einheitliche Laufzeitumgebung für alle Programmiersprachen,
eine umfangreiche Klassenbibliothek, eine Infrastruktur für die Ausführung
von Programmen und Komponenten und neue Sprachencompiler, die einen
Zwischencode erzeugen, der von der Laufzeitumgebung vor der Ausführung
in Maschinencode kompiliert wird, für alle Programmierer zur Verfügung
stellt.22
TP
PT
Diese Aussage soll im Folgenden näher erläutert werden.
•
.NET ist eine Ansammlung und Weiterentwicklung zum Teil schon
bestehender Techniken und Programmiersprachen . Einige Beispiele
sind ASP, C++, Visual Basic, ADO und diverse Server. Die neu von
Microsoft entwickelten Sprachen heißen C#23, J#, Oberon.net u.a.
TP
•
PT
Der wichtigste Bestandteil von .NET ist das .NET Framework SDK.
Dieses enthält die Hauptbestandteile Common Language Runtime
(CLR, deutsch: Laufzeitumgebung) und die .NET Framework Klassenbibliothek. Die CLR des .NET Frameworks ist, genau wie die
Virtual Machine von Java, plattformunabhängig. Die CLR führt den
TP
22
PT
[Mo01]
Seite 43
Code aus. Bevor ein Programm von der CLR ausgeführt werden kann,
wird der Code in IL (Intermediate Language), eine plattformunabhängige Zwischensprache, umgewandelt.
•
Aufgrund der Plattformunabhängigkeit können Compiler oder eine
Implementierungen von .NET erstellt werden. Im Rahmen des MonoProjektes24 werden daher sowohl ein Compiler für C# als auch ein
TP
PT
.NET Framework für Linux entwickelt, die beide als Open Source verfügbar sind.
•
Das .NET Framework enthält eine umfangreiche Klassenbibliothek,
auf die alle wichtigen Entwicklungssprachen zugreifen können
•
Das wichtigste Tool von Microsoft für die .NET-Entwicklung ist das
Visual Studio .NET.
Dieses ist eine integrierte Entwicklungsumge-
bung, die Editor, diverse Assistenten für Windows-, Web-, Web-Service und Konsolenanwendungen, einen Designer für Formulare, ausführliche Dokumentationen, Debugger und Klassenbrowser vereint.
4.4. Visual Basic.net
Visual Basic hat ihren Ursprung in der Sprache Basic, welche 1964 erfunden
wurde. Im Laufe der Jahre wurde VB durch das Hinzufügen vieler Funktionen
verbessert. Mit dem Schritt von VB 6 zu VB.net wurden überflüssige Funktionen beseitigt und neue Funktionen hinzugefügt.
VB.NET Programme nutzen, wie alle .NET-Sprachen, die Klassen des .NET
Framework und haben daher in etwa den gleichen Funktionsumfang. Die
Syntax der Sprachen ähnelt sich, so dass der Umstieg von C# auf Visual
Basic nicht sehr schwerfällt.
23
TP
PT
TP
24
PT
[Bri03]
[Mono]
Seite 44
Da die Mitarbeiter der Abteilung eher Visual Basic als C# Kenntnisse haben,
wird das Programm in Visual Basic entwickelt..
4.5. ADO.net
Mit ADO.net (Microsoft ActiveX Data Objects) wird der Zugriff auf Datenbanken realisiert. In der .Net-Klassenbibliothek befinden sich die von ADO verwendeten Klassen im Namensraum System.Data. Die Verbindung zu der
Oracle-Datenbank geschieht mit dem OleDb-Provider (Object Linking and
Embedding Provider).
Der wichtigste Unterschied von ADO.net zu ADO ist die leistungsfähige
Unterstützung von XML. ADO.NET verwendet selbst XML als Format für den
Datenaustausch zwischen den einzelnen Applikationen. Weiterhin ist die
Einführung von DataSets eine Neuerung. Diese speichern den abgefragten
Datenbankinhalt zwischen, so dass keine Verbindung zur Datenbank nötig ist
um Informationen darzustellen.
4.6. ASP.net / Webserver
ASP („Active Server Pages“) dient zur Erzeugung dynamischer Webseiten
und ist eine Erweiterung des IIS (Internet Information Services). IIS ist ein
Webserver, dessen Hauptaufgabe es ist, Verbindungen von Remoteclients
anzunehmen,
eingehende
HTTP-Anforderungen
zu
beantworten,
Usereingaben durch einen Sitzungsstatus zu verwalten, sowie diverse
Sicherheitsaspekte zu gewährleisten.
Eine ASP-Seite besteht aus HTML-Code und - optional - Scriptcode (z.B. VB,
Java Script). Ruft der Client eine ASP-Seite auf, so schickt er eine Anfrage
an den IIS (Request). Der IIS antwortet dem Client (Response) und die ASPSeite wird angezeigt.
Erwähnenswert ist das ASP.NET-Steuerelement DataGrid. Es sieht einer
Tabelle ähnlich und wird für die Bindung von Daten aus einer Datenquelle
verwendet. Weiterhin stellt es eine Vielfalt von Funktionen zur Verfügung, wie
es sie bisher für dynamische Webanwendungen nicht gab. Das DataGrid
Seite 45
kann seine Daten per ADO aus einer Datenbank beziehen. Dabei kann der
Datenbankinhalt in einem DataSet zwischengespeichert werden, so dass
eine permanente Verbindung zu der Datenbank nicht mehr nötig ist.
Das DataGrid in Verbindung mit dem DataSet wird das zentrale Steuerelement der Dokumentationsverwaltung sein.
Abbildung 4-3: DataGrid-Beispiel
4.7. Anbindung an das SAP BW: Der SAP .NET-Connector
Das neuste technische Konzept der SAP ist der SAP NetWeaver. Er ist die
Integrations- und Anwendungsplattform, heterogene Umgebungen, Informationen und Geschäftsprozesse technologie- und organisationsübergreifend
zusammenführt. Alle zukünftigen Lösungen werden auf SAP NetWeaver aufbauen.
Der SAP NetWeaver ermöglicht die vollständige Interoperabilität mit Microsoft .NET. Die Interoperabilität wird auf Ebene der Anwendungsplattformen
über den Web Application Server, eine der zentralen Komponenten des
NetWeaver, bereitgestellt.
Mit dem SAP.NET-Connector können auf .NET basierende Windowsanwendungen, Webanwendungen und WebServices erstellt werden, welche dann
Zugriff auf Geschäftsfunktionen des SAP-Systems haben. In diesem Fall sind
die .NET-Anwendung der Client und das SAP-System der Server (Outside-
Seite 46
in). Umgekehrt kann auch eine SAP-Anwendung als Client auf einen .NET
Service (Server) zugreifen (Inside-out).
Der Datenaustausch geschieht hier mit RFC, es kann aber auch SOAP eingesetzt werden, welches für WebServices verwendet wird.
Systemvoraussetzungen und Installation
Um mit dem SAP.NET-Connector arbeiten zu können ist das Visual Studio.net und der Zugang zu einigen DLL’s des SAP-Systems Vorraussetzung.
Ist der SAP GUI auf dem System installiert, sollte die Verbindung zu SAP
erfolgreich herzustellen sein.
Der SAP .NET-Connector kann kostenlos im SAP Service Marketplace heruntergeladen werden25 . Zusätzlich ist die Installation der Java Runtime EnviTP
PT
ronment26 notwendig. Nach der erfolgreichen Installation dieser beiden
TP
PT
Komponenten steht bei der Erstellung eines neuen Projektes im Visual Studio das ICON .SAP Connector Class im Visual Studio .NET zur Auswahl. Bei
dieser Klasse handelt es sich um eine Proxyklasse. Ein Proxy ist ein Programm, das zwischen Server und Client vermittelt und das nur in C# geneH
H
H
H
riert werden kann.
Die Grundvoraussetzungen für die Anbindung an ein SAP-System sind
geschaffen.
4.8. Die TREX-Suchmaschine
Zu Anfang der Diplomarbeit wurde festgestellt, dass noch keine Suchmaschine für das Metadata Repository des BW existiert und TREX (Text Retrieval and Classification) installiert werden müsste.
Bei TREX handelt es sich um eine SAP-eigene Suchmaschine, welche über
diverse Suchfunktionen verfügt, von der allgemeinen Abfrage bis hin zu speziellen Begriffsabfragen. Außerdem ermöglicht der TREX-Server verschiedene Text-Mining-Funktionen
(exakte Suche, Phrasensuche, Boolesche
Suche, Fuzzysuche, linguistische Suche, Wildcard-Suche). Text Mining ist
TP
25
PT
[DowNET]
Seite 47
eine Sammlung von Techniken und Algorithmen zur automatischen Analyse
unstrukturierter Daten. Es sind hier ebenso alle Suchfunktionen vorhanden,
über die auch gängige Suchmaschinen im Internet verfügen.
Recherchen ergaben, dass TREX im Umfeld von VW bisher noch nicht produktiv im Einsatz ist. Diverse Testinstallationen sind jedoch vorhanden. Da
der Aufwand des Customizing von TREX als sehr hoch und somit teuer eingeschätzt wurde (ca. 40 Personentage), musste der Einsatz von TREX auf
das Jahr 2005 verschoben werden. TREX wird dann über das SAP Enterprise Portal zugänglich sein und für alle SAP-Module zur Verfügung stehen.
Die Anbindung von TREX an die Dokumentationsverwaltung wird dann von
geringem Aufwand sein, da beides webbasiert ist und sich die fertigen
Dokumentationen ganz normal im Metadata-Repository, auf welches TREX
zugreift, befinden.
4.9. Aufbau der Dokumentationsverwaltung
Aus den in diesem Kapitel beschriebenen Komponenten ergibt sich folgender
Aufbau.
Die Landschaft besteht aus drei Schichten. Zur Datenbankschicht gehören
zum einen die Datenbank vwfsdw1e mit den gesammelten Daten und den
sich in Bearbeitung befindlichen Dokumentationen und das SAP Portal, welches unter anderem aus dem SAP BW und dem in naher Zukunft
integriertern Suchmaschine TREX besteht. Das Portal ist durch den SAP
.NET-Connector mit der Applikationsschicht, bestehend aus IIS, den ASPXSeiten und dem Visual Basic Code, verbunden. Per Visual Basic bzw. ADO
wird sowohl mit der Datenbank als auch über SAP .NET Connector mit dem
SAP-System kommuniziert. Auf dem Client wird schließlich das Programm
angezeigt. Dieser sendet Http-Requests zum IIS, welcher nach Erhalt einer
Antwort dem Client per Http-Response das Ergebnis anzeigt.
TP
26
PT
[DowJRE]
Seite 48
Abbildung 4-4: Aufbau der Dokumentationsverwaltung
Seite 49
5. Anzeigen und Speichern von Daten
Damit der Benutzer diverse Informationen zu InfoObjects und ihren Dokumentationen einsehen kann, ist die Anzeige von im SAP-System befindlichen
Daten notwendig. Hierfür wird der SAP .NET-Connector verwendet. Weiterhin ist die Speicherung von Daten erforderlich, die der Anwender vor der
Anlage eines neuen InfoObjects sammelt. Diese werden wiederum in einer
separaten Oracle-Datenbank gespeichert. Wird ein InfoObject und seine
Dokumentation im BW angelegt, so gelangen die in der Oracle-Datenbank
gespeicherten Daten per SAP .NET-Connector in das SAP BW-System.
Im Folgenden werden zuerst der praktische Einsatz des SAP .NET-Connectors und anschließend der Aufbau der Oracle-Datenbank dargestellt.
5.1. SAP .NET Connector
In Kapitel 4 der SAP .NET-Connector und seine Installation bereits erwähnt.
Nachstehend wird erläutert, wie eine Proxy-Klasse erstellt wird und wie man
diese verwendet um SAP-Daten zu erhalten.
5.1.1.
Erstellung einer Proxy-Klasse
Um ein neues Projekt anzulegen, wird im Visual Studio die SAP Connector
Class ausgewählt (Abbildung 5-1).
Seite 50
Abbildung 5-1: Auswahl der SAP Proxy-Klasse
Nach der Erstellung des Projekts erscheint ein Assistent (Abbildung 5-2).
Diesem müssen alle Angaben zur Verbindung mit dem gewünschten SAPSystem mitgeteilt werden. Weiterhin ist der Objekttyp auswählbar. Bei dem
Client Proxy ist das .NET- Programm der Client und das SAP-System der
Server. Bei Auswahl des Server Stub ist das SAP-System der Client.
Abbildung 5-2: Der NET Connector Assistent (Logon)
Im nächsten Schritt können mithilfe eines Filters alle Funktionsbausteine des
SAP-Systems angezeigt werden. Je nach Bedarf werden ein oder mehrere
benötigte Funktionsbausteine ausgewählt (Abbildung 5-3).
Seite 51
Abbildung 5-3: Der NET Connector Assistent 2 (FuBa-Auswahl)
Nach erfolgreicher Generierung der Proxy-Klasse kann diese nun für den
Austausch von Daten mit dem SAP-System verwendet werden.
5.1.2.
Kommunikation von .NET per SAP-Funktionsbaustein
RFC_READ_TABLE
Für das Auslesen von Inhalten einer SAP-internen Tabelle wird der Funktionsbaustein RFC_READ_TABLE verwendet. Funktionsbausteine sind die
mit Abstand am häufigsten verwendete Methode, um anwendungsübergreifende wieder verwendbare Softwarekomponenten für ein SAP-System abzubilden. Dieser Funktionsbaustein hat die Aufgabe die Inhalte von SAP-Tabellen anzuzeigen.
Um eine Liste von InfoObjects anzeigen zu können, muss der Inhalt der
Tabelle RSDIOBJT ausgelesen werden. Diese Tabelle enthält eine Liste aller
InfoObjects mit Langtext (TXTLG), Kurztext (TXTSH) und der jeweiligen
Sprache dieser Texte (LANGU) sowie der Objektversion (OBJVERS)
(Abbildung 5-4)
Seite 52
Abbildung 5-4: SE16, Tabelle RSDIOBJT
Der Funktionsbaustein RFC_READ_TABLE
Zuerst erfolgt ein kurzer Einblick in die Funktionalität des Funktionsbausteins
RFC_READ_TABLE. Der Aufruf eines Funktionsbaustein kann sowohl innerhalb eines SAP-Systems als auch von anderen SAP-Systemen und Fremdsystemen per RFC (Remote Function Call) erfolgen. Da dieser Funktionsbaustein RFC-fähig ist, kann er von Außen, in diesem Fall mittels des SAP
.NET-Connector, aufgerufen werden27.
TP
PT
Im Deklarationsteil werden diverse Parameter angegeben: die Importparameter, welche beim Aufruf des Funktionsbausteins übergeben werden müssen, die Exportparameter, die nach Durchlauf des Programms an den Aufrufenden zurückgegeben werden, die Exceptions, die die Aufgabe haben, auf
einen Fehler im Programm zu reagieren und die Tabellenparameter, welche
die Parameter in Form von Tabellen definieren (Abbildung 5-5).
Der Quelltext selber wird durch FUNCTION und ENDFUNCTION eingeschlossen. Im Quelltext wird der Inhalt der gewünschten Tabelle mittels einer
Query ausgelesen und alle Inhalte in die Ausgabetabelle DATA geschrieben.
TP
27
PT
[Kel03]
Seite 53
Abbildung 5-5: Funktionsbaustein RFC_READ_TABLE
Erklärung der Importparameter
Um Daten ein oder mehrere Spalten einer Tabelle zu erhalten, müssen dem
Funktionsbaustein RFC_READ_TABLE folgende Import-Parameter von
außen übergeben werden:
Importparameter
Bedeutung
Delimiter
Markierung von Feldgrenzen
No_Data
falls <> NULL, wird nur Fields (s.u.)
gefüllt
Query_Table
Tabelle, aus der gelesen wird
Rowcount
Anzahl der zurückzugebenden Datensätze (Rows, Zeilen)
Rowskips
Anzahl der Zeilen, die übersprungen
werden sollen
Data
gelesene Daten (out), d.h. Inhalt der
Spalten
Seite 54
Fields
Namen der Tabellenfelder
Options
Selektionsangaben (Where-Clause)
Der Wert der zu dem Visual Basic-Programm zurückgegeben wird, ist Data.
Dieser Table-Parameter enthält die Inhalte der Tabelle.
5.1.3.
Verwendung eines Proxys mit VB
In der Dokumentationsverwaltung ist das SAP-System immer der Server und
die Visual Basic .NET- Anwendung der Client.
Wie oben beschrieben, wird mithilfe des Assistenten für den Funktionsbaustein RFC_READ_TABLE eine Proxy- Klasse erstellt. Diese heißt in der
Dokumentationsverwaltung
ebenfalls Rfc_Read_Table. Da der Quellcode
automatisch generiert wurde, wird auf diesen nicht weiter eingegangen.
Da die Proxy-Klasse in C# generiert ist, die Dokumentationsverwaltung aber
in Visual Basic implementiert ist, muss von einem separaten VB-Projekt aus
auf
die
Proxy-Klasse
zugegriffen
werden.
Diese
Klasse
heißt
IOBJListFromBW und kann ebenfalls im Anhang (Anhang B, S.104) eingesehen werden. Um den Quellcode besser verständlich zu machen, wird die
Implementierung erläutert.
Ist
das
VB-Projekt
erstellt,
muss
die
DLL
der
Proxy-Klasse,
die
SAP.Connector.dll und zusätzlich – bei einer Webanwendung – die
System.Web.Services.dll. in das Projekt eingebunden werden.
Die generierte Proxy-Klasse wird benötigt, um die Felder der Tabelle
(FIELDS) und die Selektionskriterien (OPTIONS) festzulegen. Die benötigten
Felder sind in diesem Fall der technische Name des InfoObjects (IOBJNM)
und der Langtext (TXTLG). Das erste Selektionskriterium bestimmt, ob die
InfoObjects mit dem deutschen oder dem englischen Langtext erscheinen
soll und das 2.Selektionskrieterium legt fest, dass nur die InfoObjects der
Objektversion A (= Aktiv) gezeigt werden sollen.
Seite 55
Weiterhin wird eine neue Instanz der SAP.Connector.Destination-Klasse erzeugt. Die Benutzer- und Systemdaten werden hier festgelegt, so dass der
Verbindungsaufbau zum SAP-System erfolgen kann.
Jetzt kann das Destination-Objekt initialisiert und die Verbindung zum SAPSystem geöffnet werden. Die Parameter, die der Funktionsbaustein zum
Ausführen benötigt, werden der Proxy-Klasse Rfc_Read_Table übergeben.
Diese Parameter wurden vorher festgelegt:
Rfc_Read_Table
(delimiter,
no_data,
Query_Table,
Rowcount,
Rowskips,
rsdiobj,
sapTableFields, sapTableOptions)
Der Aufruf der Klasse IOBJListFromBW, die mit der zuvor generierten ProxyKlasse kommuniziert, bewirkt wiederum den Aufruf des Funktionsbausteins
RFC_READ_TABLE. War dieser Aufruf erfolgreich, gibt der Funktionsbaustein den Rückgabeparameter DATA an die Klasse zurück, welcher den
Inhalt der gewünschten Tabellenspalten enthält.
Gespeichert wird der Inhalt der Spalten IOBJNM und TXTSH letztendlich in
der Variablen rsdiobj, welche vom Typ Tab512Table ist. Der erhaltene Inhalt
muss noch in zwei separate Spalten geteilt werden, einem DataTable zugeordnet und einem DataSet zugewiesen werden, welches schließlich an das
DataGrid gebunden wird.
Neuer User für den Zugriff auf RFC_READ_TABLE
Der Großteil der User hat im Normalfall keine Berechtigung per RFC auf
Funktionsbausteine zuzugreifen.
Damit jeder User der Dokumentationsverwaltung mithilfe des Funktionsbausteins RFC_READ_TABLE die SAP-Daten der internen Tabellen angezeigt
bekommt, wurde ein neuer User test02 eingeführt. Dieser User hat nur die
spezielle Berechtigung auf den Funktionsbaustein RFC_READ_TABLE
zuzugreifen.
Seite 56
Die Anzeige von InfoObjects aus der SAP-internen Tabelle RSDIOBJT sieht
folgendermaßen aus:
Abbildung 5-6: DataGrid mit Tabelleninhalt
5.1.4.
Verwendung von Funktionsbausteinen und Tabellen
Im Function Builder (Transaktion se37) können alle Funktionsbausteine des
SAP-Systems eingesehen werden. Die für diese Arbeit verwendeten Funktionsbausteine und ihre Funktionalität werden unten aufgelistet.
Funktionsbaustein
Funktionalität
Rsod_doc_meta_change Anlegen und Ändern von Dokumentationen
Bapi_iobj_create
Anlegen von InfoObjects im SAP BW-System
Rfc_read_table
Auslesen von SAP-internen Tabellen
Tabellen
Per Funktionsbaustein werden - wie erläutert - Daten diverser SAP-interner
Tabellen ausgelesen.
Die Tabelle IOBJ_PRFX ist eigens für die Dokumentationsverwaltung erstellt
und mit Daten gefüllt worden. Sie enthält eine Liste der Datentypen der
Seite 57
InfoObjects und ihre Abkürzungen. Diese Tabelle und die Tabelle tksysappl,
welche alle benötigten VW-Bank-Systeme und Applikationen enthält, sind
aufgrund der Notwendigkeit der Namenskonvention erstellt worden.
Folgende Tabellen finden in der Dokumentationsverwaltung Verwendung:
Tabelle
Erläuterung
rsdiobjt
Texte aller InfoObjects
Iobj_prfx
Datentypen der InfoObjects und Abkürzungen (Shortcuts)
5.2. Oracle – Datenbank vwfsdw1e
5.2.1.
Logischer Datenbankentwurf
Die Tabelle T_IOBJ (Abbildung 5-7) ist die Mastertabelle der Oracle-Datenbank. In dieser Tabelle werden die Daten gespeichert, die für jedes InfoObject gelten. während die Tabellen T_IOBJKYF und T_IOBJCHA nur die
Daten enthalten, die für Kennzahlen und Merkmale gelten. Dazu gehören
z.B. die Spalte IOBJ_ID, in der der Name des InfoObjects gespeichert ist und
die Spalte InfoArea der Tabelle T_IOBJ, in der die InfoArea steht, der das
InfoObject angehört.
Da ein InfoObject Texte in mehreren Sprachen besitzt, hat ein Eintrag in der
Tabelle T_IOBJ mehrere Datensätze in der Tabelle T_LANGUAGE (1:nBeziehung).
Weiterhin kann ein InfoObject mehrere Quellsystemeinträge besitzen. Somit
besteht zwischen der Tabelle T_IOBJ und T_SOURCESYSTEM eine 1:nBeziehung. Um einen Überblick über alle Tabellen der Oracle-Datenbank
vwfsdw1e zu bekommen, kann die Grafik im Anhang (Anhang C, S.107)
eingesehen werden.
Seite 58
Abbildung 5-7: Datenbanktabellen
5.2.2.
Physischer Datenbankentwurf
Nach dem logischen Datenbankentwurf erfolgt der physische Entwurf, also
die Implementierung des logischen Modells. Die Implementierung erfolgt mit
Hilfe der DDL (Data Definition Language), der Sprache zur Definition von
Datenbankobjekten. Per Create Table-Anweisungen werden Tabellen und
ihre Spalten erstellt.
CREATE TABLE t_iobj
(iobj_pk_id
NUMBER(9,0) NOT NULL,
iobj_id
VARCHAR2(20) NOT NULL,
gistype
NUMBER(1,0) DEFAULT 0,
contenttimestamp
NUMBER(1,0) DEFAULT 0,
hasdescriptionlong
hasdescriptionmiddle
hasdescriptionshort
infoobjecttype
infoarea
iobj_fk_projectpart
VARCHAR2(5) DEFAULT 'true',
VARCHAR2(5) DEFAULT 'false',
VARCHAR2(5) DEFAULT 'true',
VARCHAR2(9) DEFAULT NULL
VARCHAR2(9),
NUMBER(9,0),
Seite 59
iobj_fk_reference
iobj_format
iobj_annotation
iobj_fk_status
NUMBER(9,0),
VARCHAR2(30),
VARCHAR2(100),
NUMBER(3,0) DEFAULT 0
iobj_isiobjkyf
iobj_isiobjcha
iobj_bwappl
iobj_iscreatedinbw
NUMBER(1,0),
NUMBER(1,0),
VARCHAR2(9) DEFAULT 'BW'
NUMBER(1,0) DEFAULT 0
CONSTRAINT PK_IOBJ
PRIMARY KEY (iobj_pk_id)
)
/
-- Constraints for T_IOBJ
ALTER TABLE t_iobj
ADD CONSTRAINT ch_iobj_iobjtype CHECK ("INFOOBJECTTYPE"='CHA' AND
"IOBJ_ISIOBJKYF" IS NULL AND "IOBJ_ISIOBJCHA" IS NOT NULL OR
"INFOOBJECTTYPE"='KYF' AND "IOBJ_ISIOBJCHA" IS NULL AND "IOBJ_ISIOBJKYF" IS
NOT NULL)
DISABLE
/
ALTER TABLE t_iobj
ADD CONSTRAINT uniqueiobj_id UNIQUE (iobj_id)
/
-- Comments for T_IOBJ
COMMENT ON COLUMN t_iobj.iobj_annotation IS 'pers. Bemerkung, die beim Anlegen des
IOBJ gemacht wurde'
/
COMMENT ON COLUMN t_iobj.iobj_fk_reference IS 'the iobj_pk_id of the IOBJ THIS IOBJ
is reference from'
/
COMMENT ON COLUMN t_iobj.iobj_fk_status IS 'New IOBJ''s are always 0 (=NEW)'
/
-- End of DDL Script for Table DWOWN.T_IOBJ
-- Foreign Key
ALTER TABLE t_iobj
ADD CONSTRAINT fk_projectpart_iobj FOREIGN KEY (iobj_fk_projectpart)
REFERENCES t_projectpart (pp_pk_id) ON DELETE CASCADE
/
-- End of DDL script for Foreign Key(s)
Beispiel 5-1: Create Table- und Contraint-Anweisungen
Wie in Beispiel 5-1 zu sehen gehören Constraints, Trigger und Sequences
zum physischen Datenbankentwurf. Constraints gewährleisten die Datenintegrität. Dazu gehören Primärschlüssel, referentielle Constraints und einfache feldgebundene Prüfungen. Auch sind sie wichtig, um einen Wertebereich
Seite 60
zu ergänzen oder um die Abhängigkeit von Tabellen untereinander festzulegen.
Sequenz und Trigger
Jeder Datensatz hat einen eindeutigen Schlüssel, genannt Primary Key. Um
die Eindeutigkeit zu gewährleisten, werden diese Zahlen bei jedem Einfügen
eines Datensatzes von der Datenbank automatisch vergeben. Dazu sind eine
Sequenz und ein Trigger zu erstellen. Eine Sequenz ist ein Datenbankobjekt,
das
aufsteigende
Nummern
performant
generiert.
Die
Sequenz
S_DW_Autowert generiert ganze Zahlen mit dem Inkrement von 1.
CREATE SEQUENCE s_dw_autowert
INCREMENT BY 1
START WITH 1
MINVALUE 1
MAXVALUE 99999999
NOCYCLE
NOORDER
CACHE 20
Beispiel 5-2: Sequence S_DW_AUTOWERT
Damit die von der Sequenz generierte Zahl in die entsprechenden Spalten
eingefügt wird, muss ein Trigger erstellt werden. Ein Trigger ist ein Programm, welches ausgelöst (getriggert) wird, bevor oder nachdem eine
Delete-, Insert- oder Update-Anweisung ausgeführt wird. Dieser Trigger
tr_iobj wird vor jeder Insert-Anweisung ausgelöst und bewirkt, dass die von
der Sequence generierte Zahl in die Tabelle eingefügt wird.
CREATE OR REPLACE TRIGGER tr_iobj
BEFORE
INSERT
ON t_iobj
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
-- Wenn Primary Key Identifier nicht gefuellt ist,
-- automatisch mit Sequenznummer fuellen
if :NEW.iobj_PK_ID is Null then
-- HOLT WERT AUS SEQUENCE S_DW_AUTOWERT
Seite 61
select S_dw_AUTOWERT.nextval into :new.iobj_PK_ID from
DUAL;
end if;
END;
Beispiel 5-3: Trigger TR_IOBJ
Für alle anderen Tabellen wird auch ein Trigger TR_[Tabellenname] erstellt.
Stored Procedure / Function
Diverse Datenbankmanipulationen lassen sich sowohl mit Visual Basic-Code
und ADO als auch mit Oracle Stored Procedures und Functions realisieren.
Der größte Vorteil in der Realisierung von Stored Procedures und Functions
liegt darin, dass diese gekapselt in der Datenbank vorliegen und mit den
Rechten des Schemaowners versehen sind. So kann der Anwender die Procedure nur mit den entsprechenden Rechten ausführen.
Sie sind auch performanter als Visual Basic Code. Bei mehreren SQL-Anweisungen
wirkt
sich
das
auf
die
Geschwindigkeit
aus.
Ein weiterer Vorteil ist, dass zum Auslesen von Tabellen, im Visual Basic
Quellcode nur die Prozedur angegeben werden muss. Wenn nun an einer
Datenbanktabelle etwas zu ändern ist, muss nicht die betreffende Stelle im
Visual Basic Quellcode gesucht und geändert werden, sondern nur die
datenbanknahe Stored Procedure.
Stored Procedures und Functions werden mit der von Oracle entwickelten
SQL-Erweiterung PL/SQL geschrieben. PL/ SQL steht für procedural language/ structured query language und ist eine prozedurale Sprache und kann
aus mehreren auch ineinander verschachtelten Blöcken bestehen.
In Kapitel 6 werden die erstellten Stored Procedures und Functions vorgestellt. Der Quellcode ist im Anhang einzusehen.
Einfügen eines Test-InfoObjects in die Datenbank
Um Daten in die Tabellen schreiben zu können, wird die DML (Data Manipulation Language) verwendet. Zu Testzwecken sollen später (Kapitel 6) alle
Daten eines InfoObjects in die Tabellen eingefügt werden. In dem unten zu
Seite 62
sehenden Beispiel werden Testdaten für ein Merkmals-InfoObject in die
Tabellen eingefügt:
Zuerst werden der Name (iobj_id), der Typ (Merkmal oder Kennzahl) und die
InfoArea in die Haupttabelle T_IOBJ eingefügt.
insert into t_iobj (iobj_id, infoobjecttype, infoarea, iobj_annotation) values
('YTESTCHA', 'CHA', 'TESTAREA', '')
Nach dem Insert wird der Trigger TR_IOBJ_LANGUAGE_INSERT (Beispiel
5-4) ausgelöst, welcher für alle Sprachen neue Datensätze für das InfoObject
einfügt. Dieses ist notwendig, da später, wenn das DataGrid, in welches die
Eintragungen gemacht werden, erstellt wird, es nicht aus Versehen zu doppelten Eintragungen in T_Language kommt und nicht bei jeder Änderung
überprüft werden muss, ob der Datansatz schon existiert. Nachdem der Trigger für jede Sprache einen Datensatz angelegt hat, müssen diese nur noch
per Update ergänzt werden.
CREATE OR REPLACE TRIGGER tr_iobj_language_insert_rows
AFTER
INSERT
ON t_iobj
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
--:NEW.PK_RELATION :=
--:NEW.iobj_pk_id :=
P_INSERT_LANGUAGES(:NEW.iobj_pk_id);
END;
Beispiel 5-4: Trigger TR_IOBJ_LANGUAGE_INSERT
Die
Procedure
P_INSERT_LANGUAGE
wird
von
dem
Trigger
TR_IOBJ_LANGUAGE_INSERT aufgerufen. Mittels eines Cursors wird in
der Tabelle T_LINGUA geschaut, in welchen Sprachen die Dokumentationen
anzulegen sind. Für jede Sprache wird dann ein Datensatz in der Tabelle
T_LANGUAGE angelegt.
Seite 63
PROCEDURE P_INSERT_LANGUAGES
(iobj_pk_id Number)
IS
--cursor traverses t_lingua to get all languages
cursor cursorLanguage IS Select li_short from t_lingua;
BEGIN
FOR c1 IN cursorLanguage
LOOP
Insert into t_language (la_fk_iobj, la_language) values ( iobj_pk_id , c1.li_short);
END LOOP;
END; -- Procedure
Beispiel 5-5: P_INSERT_LANGUAGES
Nachdem für alle Sprachen jeweils ein Datensatz in T_LANGUAGE existiert,
können die Inhalte per UPDATE für jede Sprache vervollständigt werden.
--English
update t_language set la_desc_short='descshorte', la_desc_long='desclonge',
la_desc_tec='desctece', la_desc_econ='descecone'
where la_fk_iobj=838 and la_language='E'
/
--Deutsch
update t_language set la_desc_short='descshortg', la_desc_long='desclongg',
la_desc_tec='desctecg', la_desc_econ='descecong'
where la_fk_iobj=838 and la_language='D'
/
--Französisch
update t_language set la_desc_short='descshortf', la_desc_long='desclongf',
la_desc_tec='desctecf', la_desc_econ='desceconf'
where la_fk_iobj=838 and la_language='F'
T_SOURCESYSTEM
Die Beziehung von T_IOBJ zu T_SOURCESYSTEM ist eine 1 : 0..N-Beziehung, da ein InfoObject Daten aus keinem oder ein- oder mehreren Quellsystemen bezieht. Für das Test-InfoObject werden zwei Datensätze angelegt:
Seite 64
-- Erster Datensatz
INSERT INTO t_sourcesystem
(SO_SOURCESYSTEM,SO_INTERFACEFILE,SO_FIELDNAME_OS,SO_FIELDLABEL_OS
,
SO_SAS_LIBRARY,SO_TABLE,SO_FIELD,SO_DATATYPE,SO_LENGTH,SO_FORMAT,
SO_TRANSFORMATION,SO_FK_IOBJ,SO_FK_ODS,SO_ANNOTATION)
VALUES
('Sourcesystem','Interfacefile','Filename','Fieldlabel','Sas_Library','Table',
'Field','Datatype','Length','Format','Transformation',838,NULL,'Annotation')
/
-- Zweiter Datensatz
INSERT INTO t_sourcesystem
(SO_SOURCESYSTEM,SO_INTERFACEFILE,SO_FIELDNAME_OS,SO_FIELDLABEL_OS
,
SO_SAS_LIBRARY,SO_TABLE,SO_FIELD,SO_DATATYPE,SO_LENGTH,SO_FORMAT,
SO_TRANSFORMATION,SO_FK_IOBJ,SO_FK_ODS,SO_ANNOTATION)
VALUES
('Sourcesystem2','Interfacefile2','Filename2','Fieldlabel2','Sas_Library2','Table2',
'Field2','Datatype2','Length2','Format2','Transformation2',838,NULL,'Annotation2')
Je nachdem, ob es sich um eine Kennzahl oder ein Merkmal handelt, wird
ein Eintrag in T_IOBJCHA oder T_IOBJKYF mit sämtlichen Parametern
erfolgen. Da das Test-InfoObject ein Merkmal ist, wird ein Eintrag in
T_IOBJCHA geschrieben.
INSERT INTO t_iobjcha
(CHA_CHACONST,CHA_CHAPRSNT,[…]
,CHA_CHECKODS,CHA_AUTHFIELD,CHA_FK_IOBJ)
VALUES
(NULL,'0',[…] ,NULL,NULL,838)
Jetzt sind alle Eintragungen für das InfoObject in der Datenbank gespeichert
und es kann eine Dokumentation erstellt und das InfoObject im SAP BWSystem angelegt werden. Die Speicherung gilt als Grundlage für die Erstellung der Dokumentation und der Anlage des InfoObjects im SAP BW-System
in Kapitel 6.
Seite 65
6. Prozess der Erstellung eines InfoObjects und
seiner Dokumentation im SAP BW-System
Inhalt dieses Kapitels ist die Beschreibung der einzelnen Schritte der Prozesserstellung eines InfoObjects und seiner Dokumentation im SAP BWSystem.
InfoObjects müssen oftmals bei neuen Projekten oder deren Weiterentwicklung angelegt bzw. definiert werden. Zuerst muss geschaut werden, ob ein
ähnliches InfoObejct schon im SAP BW-System existiert. Beim Anlegen
eines neuen InfoObjects ist der Idealfall die gleichzeitige Erstellung einer
zugehörigen Dokumentation in allen benötigten Sprachen.
Die Erstellung dieser Dokumentation und die Anlage eines InfoObjects werden hier als Prozess, bzw. Geschäftsprozess bezeichnet. Hauptziele der
Einführung dieses Prozesses sind zum einen die Vermeidung redundanter
Entwicklung, welche oftmals doppelt vorkommende InfoObjects im SAP BWSystem zur Folge hat und zum anderen die Sicherstellung, dass für jedes
InfoObject eine qualitätsgeprüfte Dokumentation existiert. Aus diesem Grund
erfolgt die Erstellung durch drei Personen, von denen jeweils eine der Rolle
Developer (Entwickler), Customer (Auftraggeber) und Supervisor (Kontrolleur) angehört.
Tritt der Geschäftsfall ein, dass ein neues InfoObject im Rahmen eines Projektes erstellt werden muss, wird folgender Prozess durchlaufen.
6.1. Erläuterung des Geschäftsprozesses
Der Entwickler, der das neue InfoObject erstellen möchte, öffnet die Seite
mainIOBJ.aspx der Dokumentationsverwaltung, in welcher er ein neues
InfoObject anlegt. Damit ein InfoObject nicht doppelt existiert, muss überprüft
werden, ob es schon ein InfoObject mit ähnlichem Namen gibt. Existiert
Seite 66
schon ein oder mehrere ähnliche InfoObjects, so bekommt er ein Liste mit
diesen InfoObjects zu sehen. Findet er ein InfoObject, das seinem neu
anzulegenden InfoObject entspricht, bricht das Programm ab.
Gibt es noch kein InfoObject dieser Art, werden alle vom Developer
gemachten Eingaben in der Datenbank gespeichert. Jetzt kann er sein
InfoObject freigeben. Mit der Freigabe wird eine Nachricht an den
zuständigen Customer geschickt. Dieser füllt nun den wirtschaftlichen Teil
vollständig aus und gibt ihn wiederum frei. Diese Freigabe bewirkt, dass eine
Nachricht an den Supervisor geschickt wird, damit der Supervisor die
Dokumentation überprüfen und bei Korrektheit freigeben kann. Nun kann der
Fall eintreten, dass der Supervisor einen Teil der Dokumentation zu
bemängeln hat. In diesem Fall schickt er, je nachdem ob Entwickler- oder
Auftraggeberteil, eine Nachricht an die betreffende Person mit der Bitte um
Korrektur. Ist die Korrektur erfolgt, prüft der Supervisor erneut und gibt im
Normalfall die Dokumentation frei.
Nach Freigabe wird vom System das InfoObject im SAP BW angelegt und
die in verschiedenen Sprachen vorhandenen zugehörigen Dokumentationen
in dem Content Repository abgelegt. Die Dokumentation kann jetzt im SAP
BW von allen Anwendern der Dokumentationsverwaltung in der jeweiligen
Anmeldesprache eingesehen werden.
In diesem Kapitel wird die Implementierung und die Vorgehensweise der
Speicherung aller relevanten InfoObject-Daten in der Datenbank, die
Erstellung und der Transfer der Dokumentationen in das SAP BW-System
und das Anlegen des
InfoObjects im SAP BW-System detailliert
beschrieben.
Nicht implementiert wurde aufgrund des großen Umfangs die Realisierung
der Rollen. Mit Rollen ist die Einführung der Benutzergruppen Entwickler,
Auftraggeber und Supervisor, welche verschiedene Rechte besitzen,
gemeint. Das theoretische Konzept für eine Realisierung der Rollen wird in
Kapitel 7 anhand eines Geschäftsprozesses und Aktivitätsdiagramms
erläutert.
Seite 67
6.2. Überblick/ Hauptseite
Es folgt ein Überblick über das Front-End. Im Anschluss daran wird die
Implementierung aus technischer Sicht erläutert.
Auf der Hauptseite mainIOBJ (Abbildung 6-1) werden die Daten eines
InfoObjects gesammelt. Von der Hauptseite aus gehen weitere Seiten ab, in
denen Daten eingetragen werden können. Ein guter Überblick über die
einzelnen Seiten ist im Anhang (Anhang D, S.108) zu finden.
Der Anwender gibt die englischen Beschreibungen (Langbeschreibung,
Kurzbeschreibung, wirtschaftliche Beschreibung, technische Beschreibung)
und wichtige Meta-Informationen des InfoObjects ein. Mit Klick auf den
Button OK legt er einen Datensatz in der Datenbanktabelle T_IOBJ an.
Weiterhin kann man durch Aufrufen der Links alle Daten, die für die Anlage
eines InfoObjects und seiner Dokumentation erforderlich sind, ergänzen. Zu
diesen Daten gehören die Beschreibungen (Button Descriptions) in allen
weiteren Sprachen (zur Zeit Deutsch und Französisch), Quellsysteme
(Button Sources), Ausprägungen (Button Characteristics) und Metadaten
(Button Metadata). Sind alle Eintragungen gemacht, kann durch Auslösen
des Buttons Create_Doc die Dokumentation im SAP BW angelegt und durch
Bestätigung des Buttons Create_IOBJ das InfoObject erstellt werden
Seite 68
Abbildung 6-1: mainIOBJ.aspx; Front-End
6.3. Erstellung von HTML-Dokumentationen aus relationalen
Daten
Dieses Kapitel beschreibt den Prozess der Ablage von InfoObject-Daten in
die Datenbank bis hin zur Erzeugung von XML-Dokumenten, der
Transformierung mittels XSL in HTML-Dokumente und den anschließenden
Import in das SAP BW aus technischer Sicht.
Für die Erzeugung von HTML-Dokumentationen aus relational gespeicherten
Daten wurden im Rahmen dieser Arbeit eine Oracle-Stored Procedure und
eine Oracle-Function entwickelt (Abbildung 6-2).
Seite 69
Abbildung 6-2: Generierung von HTML- Dokumentationen
6.3.1.
Anlage einer XML-Dokumentation in der Datenbank
Aus allen relevanten Daten, die in der Datenbank gespeichert sind, wird für
jede Sprache eine XML-Dokumentation generiert und in der Datenbank
zwischengespeichert. Aus dieser XML-Dokumentation wird später eine
HTML-Dokumentation generiert, welche in das SAP BW geladen wird.
Im Folgenden wird die Generierung von XML-Dokumentationen erläutert.
Diese werden bei Aufruf der Stored Procedure P_CREATE_XMLDOCS
(Anhang E, S.111) erstellt und als Datentyp Xmltype in der Spalte
La_Xmldoc der Tabelle T_LANGUAGE gespeichert.
Um die für die Dokumentation benötigten Inhalte als XML-Dokument
darstellen zu können, werden mithilfe des Oracle-eigenen PL/SQL-Packages
Seite 70
Dbms_xmlgen28 aus den relational gespeicherten Daten XML-Dokumente
TP
PT
generiert.
Mit Dbms_xmlgen
ist es möglich, mit Hilfe einer SQL-Query ein XML
Dokument zu erstellen. Die Ergebnisse einer Query werden als XML
dargestellt und können
z.B. als Datentyp Clob oder Xmltype in der
Datenbank gespeichert werden.
Dbms_xmlgen hat diverse Subprogramme in Form von Prozeduren oder
Funktionen.
In
diesem
Fall
werden
die
Prozeduren
SetRowTag,
setRowSetTag und die Funktionen newContext und getXML für die
Erstellung der XML-Dateien verwendet.
Die Prozedur SetRowTag legt den Elementnamen fest, der das jeweilige
Ergebnis der Abfrage bei mehreren Ergebnissen einschließt, während mit
SetRowSetTag der Elementname des ganzen Ergebnisses festgelegt wird.
Der Funktion newContext, die als Handle fungiert, wird ein QueryString
übergeben, der der Funktion getXMLType übergeben wird. Die Funktion
getXMLType generiert das XML-Dokument und gibt es als XMLType zurück.
Um die Abfragen einfacher zu gestalten, damit in Zukunft Änderungen leicht
vorgenommen, werden können, werden die für die Dokumentation benötigten
Spalten für jede Tabelle einzeln per Select-Anweisung abgefragt. Eine
Select-Abfrage über die Haupttabelle T_IOBJ ergibt das Haupt-XMLDokument, welchem alle weiteren Informationen hinzugefügt werden. Diese
Informationen befinden sich in den Tabelleneinträgen T_LANGUAGE,
T_CHARACTERISTIC und T_SOURCESYSTEM. Um diese Informationen
hinzufügen zu können, werden erst für jede Tabelle per Queries XMLFragmente generiert. Diese werden dann in das Haupt-XML-Dokument
eingefügt.
Da ein InfoObject derzeit drei physische Dokumentationen (Deutsch,
Englisch und Französisch) hat, ist der Taginhalt der Beschreibungen
unterschiedlich. Aus diesem Grund muss die Abfrage über die Tabelle
T_LANGUAGE für jede Sprache einzeln erfolgen.
TP
28
PT
[Ora]
Seite 71
Damit es keiner weiteren Anpassungen bedarf, wenn eine neue Sprache
hinzukommt, erfolgt die Generierung der Teil-Dokumentationen automatisch
mit Hilfe eines Cursors, der mit einer Schleife kombiniert wird.
Nun ist die XML-Dokumentation (Anhang F, S.114) für alle Sprachen in der
Datenbank gespeichert.
6.3.2.
Transformation mittels XSL in das HTML-Format
Eine Dokumentation wird zur Ansicht im SAP BW-System in HTML
transformiert. Die Transformation eines XML-Dokuments in ein HTMLDokument geschieht mithilfe eines XSL-Templates. Die XSL-Templates sind
in der Tabelle T_XSLDOC gespeichert. Ein BW-Objekt hat dabei zurzeit drei
Templates, je eines für Englisch, Deutsch und Französisch.
Die Function F_Create_XSLDocs (Anhang G, S.116) generiert mittels der
Oracle-Funktion XMLTRANSFORM ein HTML-Dokument und gibt diesen als
RETURN-Wert zurück an das aufrufende VisualBasic-Programm. Als
Argument müssen der Funktion XMLTransform das XML-Dokument vom Typ
XMLType und das XSL-Dokument ebenfalls vom Typ XMLType übergeben
werden.
6.3.3.
Wird
Anzeige der Dokumentationen
der
Button
Show
Doc.
ausgewählt,
öffnet
sich
die
Seite
ShowDocumentation und es wird die gewünschte Dokumentation im HTMLFormat angezeigt. Dieses geschieht durch Aufruf der bereits erwähnten
Oracle-Function F_create_XSLDOCS. Um eine Oracle-Function aus einem
Visual
Basic-Programm
System.Data.OracleClient
aus
(ab
aufrufen
.NET
zu
können,
Framework
wird
1.1)
die
Klasse
benötigt.
Der
Rückgabewert ist die generierte HTML-Datei (Anhang D, S.108). Diese wird
dem Client zum betrachten im Browser angezeigt. Angewendet wird dabei
die Methode Response.ContentType.
Die HTML-Datei befindet sich jetzt noch nicht im SAP BW-System. Wie die
Dokumentation in das BW gelangt, wird im Unterkapitel 6.3.4 erklärt.
Seite 72
6.3.4.
Anlage der Dokumentationen im SAP BW-System
Die per Function F_Create_XSLDocs in das HTML-Format transformierten
Dokumentationen werden bei Bestätigung des Buttons Create Doc in das
SAP BW-System transportiert.
Zuerst werden die InfoObject-Dokumentationen für alle drei Sprachen auf der
Serverfestplatte temporär zwischengespeichert und schließlich in das SAP
BW-System
geladen.
Dieses
geschieht
mit
dem
Proxy
proxy_rsod_doc_meta_change. Dabei wird darauf geachtet, dass alle
Beschreibungen vorhanden sind. Diese Überprüfung nimmt die OracleFunction F_Checkifdescriptions vor.
6.4. Anlegen eines InfoObjects im SAP BW-System
Nachdem die Dokumentation erfolgreich angelegt wurde, wird mittels des
SAP-Funktionsbausteins BAPI_IOBJ_CREATE das InfoObject im SAP BW
FBE angelegt.
Um das InfoObject im SAP BW-System anlegen zu können müssen alle
Metadaten in der Datenbank vorhanden sein. Die Metadaten befinden sich in
den Datenbanktabellen T_IOBJ, T_IOBJKYF bzw. T_IOBJCHA.
Klickt der Anwender auf den Button Metadata öffnet sich je nachdem ob es
sich um ein Merkmal oder eine Kennzahl handelt entweder die Seite
IOBJKYF oder IOBJCHA. Nach Eintrag der Werte und nach Betätigung des
Buttons Save wird ein neuer Datensatz in die Tabelle eingetragen. Erst wenn
dieser Datensatz existiert, besteht die Möglichkeit ein InfoObject per RFC
anzulegen. Diese Möglichkeit ist durch den Button Create_IOBJ gegeben.
Seite 73
Vollständigkeitsprüfung
6.4.1.
Nach Auslösen des Buttons Create_IOBJ wird – nach eingehender Prüfung –
das InfoObject angelegt.
Die
Prüfung
erfolgt
durch
Aufruf
der
Oracle-Funktion
F_CHECKCREATEIOBJ (Anhang H, S.117). Dieser Funktion wird der
Primärschlüssel iobj_pk_id übergeben und die Daten des InfoObjects werden
auf Vollständigkeit überprüft.
Diese Abfragen werden der Reihe nach für das entsprechende IOBJ getätigt:
1. Überprüfung, ob die Datensätze zu allen verlangten Sprachen in
T_LANGUAGE festgelegt wurden.
2. Kontrolle, ob die Kurz- und Langbeschreibungen zu allen drei
Sprachen existieren
3. Überprüfung, ob genau ein Eintrag in der Tabelle T_IOBJCHA – wenn
es sich bei dem IOBJ um ein Merkmal handelt – oder ob genau ein
Eintrag in der Tabelle T_IOBJKYF existiert. Dieses ist dann der Fall,
wenn der Anwender zuvor die Parameter unter dem Button Metadata
eingestellt und gespeichert hat.
Ist eine der Überprüfungen nicht erfolgreich, bekommt der Anwender den
entsprechenden Hinweis, er möge z.B. die fehlenden Eingaben noch
ergänzen.
Ist dagegen alles korrekt, so wird, je nachdem ob es sich um ein Merkmal
oder eine Kennzahl handelt, der Parameter KYF oder CHA zurückgegeben,
damit bekannt ist, ob die Parameter für eine Kennzahl oder ein Merkmal
benötigt werden.
6.4.2.
Anlage des InfoObjects per Funktionsbaustein im SAP BW
Nun erfolgt die Anlage des InfoObject im SAP BW-System mittels des
Funktionsbausteins Bapi_iobj_create.
Mit Hilfe der Oracle-View V_CreateIOBJCHA werden alle Daten, die für die
Anlage des InfoObjects benötigt werden, in das DataSet geladen. Wie in
Seite 74
Kapitel 5 beschrieben, wird abermals ein Proxy für die Verbindung mit dem
Funktionsbaustein BAPI_IOBJ_CREATE benötigt. Von dem Parameter
BAPI6108 wird eine neue Instanz, die hier DATA genannt wurde erzeugt.
Alle Daten aus der Datenbank werden nun an die Eigenschaftswerte
(Data.version) usw. gebunden und schließlich wird das InfoObject unter
Angabe diverser Parameter mit der Proxy-Funktion BAPI_IOBJ_CREATE
angelegt.
War
die
Anlage
erfolgreich,
wird
der
Inhalt
des
Datanbankfeldes
iobj_isCreatedInBW auf 1 (= wurde im BW-System erfolgreich angelegt)
gesetzt. Dies garantiert, dass der Versuch ein bereits existierendes
InfoObject anzulegen, von vornherein abgebrochen wird.
Die Anlage des InfoObjects kann im SAP BW-System kontrolliert werden. Mit
der Transaktion RSD1 ist das InfoObject mit den Parametereinstellungen
einzusehen:
Abbildung 6-3: RSD1, Anzeige des InfoObject s
Nun ist die Implementierung für die Anlage eines InfoObjects im BW und
seiner verschiedensprachigen Dokumentationen abgeschlossen.
Seite 75
7. Ausblick
Im folgenden Kapitel werden Möglichkeiten zur Erweiterung des Programms
beschrieben. Dabei werden Techniken und Methoden, die für die praktische
Umsetzung bedeutsam sein können, näher erläutert. Die einzelnen
Vorschläge wurden auf Realisierbarkeit getestet.
Diverse Komponenten können das Programm sinnvoll erweitern. Zuerst wird
über alle Komponenten ein Überblick gegeben, eine detaillierte Beschreibung
folgt in den einzelnen Unterkapiteln:
•
Rollenkonzept (User, Developer, Customer, Supervisor)
•
Versionisierung und Historisierung der Datenbankeinträge
•
Persönlicher Bereich, Benutzereinstellungen
•
Migration vorhandener InfoObject-Daten in die Oracle-Datenbank
•
Erweiterung der Implementierung um zusätzliche BW-Objekte
•
Einführung einer weiteren Sprache
•
Navigationsmöglichkeiten der Dokumentationsverwaltung
•
Erweiterung auf andere BW-Objekte
•
Direkte Anzeige einer Online-Dokumentation zu BW-Objekten
•
Anbindung an TREX und Einbindung in das SAP Enterprise Portal
7.1. Rollen
Da in Zukunft unterschiedliche Benutzergruppen das Programm verwenden
werden, ist die Einführung von Rollen notwendig. Rollen sind eng mit den
Rechten verknüpft. Jede Rolle besitzt diverse Rechte. So hat die Rolle User
nur das Recht zu lesen während die anderen Rollen auch die Rechte haben
in definierten Bereichen zu schreiben.
Die einzelnen Rollen sind:
Seite 76
•
Developer (Entwickler)
•
Supervisor (ein oder zwei für die Qualitätsüberprüfung bestimmte
Personen)
•
Customer (Auftraggeber des Fachbereichs)
•
User (Anwender mit dem Grundrecht Lesen)
Durch die Einführung von Rollen und Rechten ist die Datenqualität
gewährleistet, da nur mit den entsprechenden Rechten Daten geändert
werden können.
7.1.1.
Realisierung der Rollen
Die Realisierung der Rollen erfolgt mittels des Treeviews (s. Kap.7.7). Durch
den Treeview ist gewährleistet, dass ein Anwender, welcher einer
bestimmten Rolle angehört, nur mittels des Treeviews Zugriff auf bestimmte
Seiten hat.
Da die Anlage eines BW-Objekts und seiner Dokumentation ein Prozess ist,
an dem Anwender mit den drei Rollen Developer, Customer und Supervisor
beteiligt sind, erfordert die Realisierung dieses Prozesses eine genaue
Analyse.
Auf Basis der Rollen lassen sich die Zuständigkeiten in dem Prozess der
Erstellung einer InfoObject-Dokumentation realisieren. Dieser Prozess wird in
der Softwaretechnik als Geschäftsprozess bezeichnet. Ein Geschäftsprozess
(engl.: business process) ist eine Menge von miteinander verknüpfter
Aktivitäten, welche in einer bestimmten Reihenfolge ausgeführt werden, um
ein festgelegtes Ziel zu erreichen. Die verschiedenen Aktivitäten können
sequentiell und/oder parallel gestartet und ausgeführt werden.29
TP
PT
Da der Geschäftsprozess Erstellung einer InfoObject-Dokumentation sehr
umfangreich ist, ist er auch gleichzeitig ein eigener Meilenstein. „Ein
Geschäftsprozess
zusammenhängenden
TP
29
PT
ist
eine
Zusammenfassung
Aktivitäten,
die
[Beats]
Seite 77
notwendig
von
sind,
fachlich
um
einen
Geschäftsfall zu bearbeiten. Die einzelnen Aktivitäten können organisatorisch
verteilt
sein,
stehen
aber
Abhängigkeiten zueinander“
gewöhnlich
in
zeitlichen
und
logischen
TP
30
PT
Die einzelnen Aktivitäten werden auch Anwendungsfälle genannt. „Ein
Anwendungsfall sollte beschreiben, was ein Benutzer zu einem Zeitpunkt an
einem Anwendungssystem macht, um einen Geschäftsvorfall in einem
Geschäftsprozess zu bearbeiten“31 Zudem führt ein Anwendungsfall immer
TP
PT
zu einem wahrnehmbaren Ergebnis.
Im Folgenden ist der Geschäftprozess tabellarisch aufgezeigt. Er besteht aus
4 zeitlich abhängigen Anwendungsfällen. Diese enthalten zum Teil
Erweiterungen (1A, 4A). Eine Erweiterung ist eine alternative Variante eines
Anwendungsfalls.
7.1.2.
Geschäftsprozess
Geschäftsprozess: Anlegen einer InfoObject-Dokumentation
T
T
Von der Erstellung der Mindestinformationen eines InfoObjects bis zur
Freigabe der InfoObject-Dokumentation.
Vorbedingung:
-
Nachbedingung:
BW-Objekt und Dokumentation werden im SAP BW
angelegt
Akteure:
Customer, Developer, Supervisor
Auslösendes Ereignis:
Beschreibung
1. Anwendungsfall: Prüfung, ob IOBJ schon vorhanden
2. Anwendungsfall: Freigabe Developer
3. Anwendungsfall: Freigabe Customer
4. Anwendungsfall: Freigabe Supervisor
Erweiterungen:
30
TP
PT
TP
31
PT
[Gal]
[Oes97]
Seite 78
1.A
Wenn vorhanden, dann Abbruch und Anzeige einer
Liste der vorhandenen IOBJ’s und deren Dokus
4.A
Bei Bemängelung werden Prozess 2 und/oder 3
wiederholt, danach Wiedereinstieg bei 4
Aktivitätsdiagramm
Um den Ablauf des Geschäftsprozesses detailliert beschreiben zu können,
eignen sich insbesonders Aktivitätsdiagramme. „Ein Diagramm, bestehend
aus Aktions-Zuständen und Zustandsübergängen (Transition), heißt in der
UML Aktivitätsdiagramm (engl.: aktivity diagram) und stellt eine Variante
eines Zustandsautomaten dar. Aktivitätsdiagramm sind nicht einzelnen
Klassen zugeordnet“32
TP
PT
Bei einem Aktivitätsdiagramm ist die Bezeichnung von Aktivität statt Zustand
passender. Eine Aktivität wird - aus Benutzersicht - von einem Akteur
durchgeführt. Mit Hilfe eines Aktivitätsdiagramms wird festgelegt, in welcher
Reihenfolge die Verarbeitungsschritte ausgeführt werden. Jede Aktivität ist
mit einer Verarbeitung von Seiten des Akteurs verbunden. Wenn die
Verarbeitung beendet ist, wird ein Zustand verlassen. Weiterhin ist die
Einführung
von
Entscheidungsrauten
Entscheidungskriterien
nach
notwendig,
Beendigung
einer
da
verschiedene
Zustandsverarbeitung
eintreten können.
Das
folgende
Aktivitätsdiagramm
(Abbildung
7-1)
verdeutlicht
die
Reihenfolge der Aktivitäten und die Rollen der Akteure in dem Prozess der
Erstellung eines InfoObjects und seiner Dokumentation.
TP
32
PT
[Bal2000]
Seite 79
Abbildung 7-1: Aktivitätsdiagramm
Seite 80
7.1.3.
Anwendungsfälle
Ein Anwendungsfall (use-case) wird definiert „als eine Sequenz von
zusammengehörigen Transaktionen, die von einem Akteur im Dialog mit
einem System ausgeführt werden, um für den Akteur einen messbaren Wert
zu erstellen“33
TP
Um
einen
PT
Anwendungsfall
zu
beschreiben,
entwirft
man
in
der
Softwaretechnik eine Anwendungsfallbeschreibung34 (siehe unten). Diese
TP
PT
enthält verschiedene Informationen, wie z.B. Akteur und Zweck des
Anwendungsfalls.
Weiterhin werden Szenarios aufgelistet. Da der Geschäftsprozess Prozess
der Erstellung einer InfoObjct-Dokumentation mehrere Akteure hat, werden
die Szenarios auf die verfeinerten Anwendungsfälle angewandt. Ein
Anwendungsfall hat somit mehrere Scenarios. Es gibt die primären und die
sekundären Szenarios. Ein Primäres Szenario tritt am häufigsten auf,
während die sekundären Szenarios zumeist weniger häufig vorkommende
Abweichungen des primären Szenarios sind. Einige sekundäre Szenarios
sind negative Szenarios. Kommt es zu einem negativen Szenario, so ist der
Anwendungsfall nicht positiv beendet. In diesem Fall tritt die Nachbedingung
im Negativfall ein.
Dieser Geschäftsprozess ist eingeteilt in 4 Anwendungsfälle mit jeweils
einem Akteur.
Anwendungsfallbeschreibung 1:
Prüfung, ob BW-Objekt bereits im SAP BW vorhanden ist.
Name
1.1 Prüfung BW-Objekt
Akteure:
System SAP BW
Zweck:
Prüfung, ob IOBJ schon vorhanden
Für
die
Auslösung alle Daten, die für die Bezeichnung des BW-
benötigte Daten:
33
TP
PT
TP
34
PT
Objekts nach der Namenskonvention nötig sind
[Bal99]
[SoKo]
Seite 81
Vorbedingung:
Nachbedingung
Developer möchte ein BW-Objekt anlegen
im (BW-Objekt ist nicht doppelt) Anwendungsfall 2 tritt
Positivfall:
Nachbedingung
ein
im Optionaler Abbruch des Prozesses
Negativfall:
Interaktionsschritte im
Standardfall (Idealfall):
1. Developer füllt alle Felder im DataGrid aus und
drückt den Button „OK“
2. Mit Klick auf den Button „OK“ lässt der
Developer prüfen, ob das BW-Objekt bereits
vorhanden ist
3. Developer
bestätigt
Neuanlage
des
InfoObjects
Szenarios:
1A.
Developer vergisst Muss-Feld(er)
3A.
Ähnliche
BW-Objekte
bereits im SAP BW:
dieser
BW-Objekte.
existieren
Anzeige einer Liste
Möglichkeit
des
Developers, entweder abzubrechen, oder
das BW-Objekt trotzdem anzulegen.
Anwendungsfallbeschreibung 2:
Der Developer macht alle (technischen) Eingaben, die für die Freigabe
benötigt werden und gibt das BW-Objekt frei. Nach der Freigabe kann von
ihm keine Änderung mehr durchgeführt werden.
Name:
Freigabe Developer
Akteure:
Developer
Zweck:
Der Developer macht technische Angaben zu
einem BW-Objekt
Für die Auslösung benötigte Die technische Beschreibung
Daten:
Seite 82
Vorbedingung:
Anwendungsfall 1 war erfolgreich; Developer
hat entsprechende Rechte
Nachbedingung
im Anwendungsfall 3 tritt ein
Positivfall:
Nachbedingung
im -
Negativfall:
Interaktionsschritte
im Developer füllt alle Muss-Felder aus
Standardfall (Idealfall):
Developer gibt frei, indem er E-Mail sendet
Szenarios:
Developer vergisst ein oder mehrere MussFelder
Developer speichert (und ergänzt zu einem
anderen Zeitpunkt)
Developer vergisst die Freigabe (bzw. das
senden einer E-Mail)
Anwendungsfallbeschreibung 3:
Der Customer erhält eine E-Mail mit der Aufforderung die Daten für das BWObjekt zu ergänzen, er ergänzt die Lang- und Kurzbeschreibung und die
betriebswirtschaftliche Beschreibung und gibt das BW-Objekt frei.
Name:
Freigabe Customer
Akteure:
Customer
Zweck:
Der
Customer
ergänzt
die
betriebswirtschaftlichen Daten zu dem BWObjekt
Für
die
Auslösung Kurz- und Langbeschreibung (in allen Sprachen)
benötigte Daten:
und
betriebswirtschaftliche
Beschreibung
(in
Deutsch und Englisch)
Vorbedingung:
Nachbedingung
Anwendungsfall 2 wurde erfolgreich ausgeführt
im Anwendungsfall 4 tritt ein
Seite 83
Positivfall:
Nachbedingung
im -
Negativfall:
Interaktionsschritte
im Customer füllt alle Muss-Felder aus
Standardfall (Idealfall):
Customer gibt frei, indem er E-Mail sendet
Szenarios:
Customer vergisst ein oder mehrere MussFelder
Customer speichert (und ergänzt zu einem
anderen Zeitpunkt)
Customer sendet keine E-Mail
Anwendungsfallbeschreibung 4:
Der Supervisor erhält eine E-Mail mit der Aufforderung das BW-Objekt zu
kontrollieren. Hat er keine Fehler gefunden, kann er das BW-Objekt
freigeben und dieses und die Dokumentation im SAP BW-System anlegen.
Name:
Freigabe Supervisor
Akteure:
Supervisor
Zweck:
Der Supervisor kontrolliert die von Developer
und Customer gemachten Eingaben und gibt
sie im Idealfall frei
Für die Auslösung benötigte keine
Daten:
Vorbedingung:
Nachbedingung
Positivfall:
Nachbedingung
Anwendungsfall 3 war erfolgreich
im Anlage von BW- Objekt und Dokumentation
im SAP BW (FBE)
im -
Negativfall:
Interaktionsschritte
im Supervisor gibt frei
Standardfall (Idealfall):
Seite 84
Szenarios:
1.A
Supervisor
bemängelt
Developer, Nachricht per E-Mail,
Widereinstieg bei Anwendungsfall 2
2.A
Supervisor bemängelt Customer,
Nachricht per E-Mail, Widereinstieg
bei Anwendungsfall 3
2.B
Supervisor führt keine Aktion
aus,
Erinnerungsmail
nach
X-
Tagen
Wie weit die Freigabe eines BW-Objekts vorangeschritten ist, bzw. in
welchem Stadium sie sich befindet, wird durch das Setzen der Werte in der
Tabelle T_STATUS festgelegt. Um den einzelnen Anwendern die Rollen
zuordnen zu können, besteht die Möglichkeit die Daten aus der SAP BWTabelle USR02 zu verwenden. In dieser Tabelle sind alle Anwender des SAP
BW mit ihrer Rolle (Developer, Super…) aufgelistet.
Nun sind alle Informationen für die praktische Umsetzung der Rollen und des
Prozesses gegeben.
7.2. Versionisierung, Historisierung
Werden Daten zu BW-Objekten im Laufe der Zeit geändert, weil sich der
Kontext des BW-Objekts geändert hat, so ist es sicherlich von Vorteil, die alte
Version zu speichern, falls diese später noch einmal eingesehen oder
wiederhergestellt werden soll.
Aufgrund dessen ist die Einführung einer Historie angebracht, in der die alten
Daten, der ändernde Anwender und der Zeitpunkt notiert sind.
•
Das Versionsmanagement wurde schon in der abteilungseigenen
Datenbank BUG betrieben und kann daher mit einigen Anpassungen
Seite 85
(englische
statt
deutsche
Bezeichnungen,
Änderung
der
Bezugstabellen…) übernommen werden
•
Ändert sich ein InfoObject, so sollten die neuen Daten durch ein
Update in einer der Datenbanktabellen durch die alten Daten ersetzt
werden. Die alte Dateneinheit soll in die Tabelle T_HISTORY
eingetragen werden. In T_HISTORY wird außerdem das Datum und
der Anwender geschrieben, der die Daten geändert hat.
•
Weiterhin ist zu beachten, dass die alte Dokumentationsversion in
SAP BW durch die neue ersetzt werden muss. Soll der Inhalt einer
Dokumentation
geändert
werden,
I_Overwrite_Mode
muss
des
der
Parameter
Funktionsbausteins
RSOD_DOC_META_CHANGE auf 2 (=Replace) gesetzt werden.
•
Möchte
man
dagegen
ein
InfoObject
ändern,
muss
der
Funktionsbaustein BAPI_IOBJ_CHANGE verwendet werden. Dieser
sollte aber nur mit Vorsicht genutzt werden, damit das InfoObject nicht
beschädigt wird.
7.3. Benutzereinstellungen
Um als Nutzer des Programms individuelle Anpassungen tätigen zu können,
sollte ein persönlicher Bereich im Programm existieren. So braucht der
Anwender nicht jedes Mal die Einstellungen ändern, wenn er das Programm
öffnet.
Hier sind einige Beispiele welche Auswahlmöglichkeiten im persönlichen
Bereich Vorteile bringen:
•
Sprachumstellung
Deutsch/
Englisch
in
der
Dokumentationsverwaltung
•
Sowie Sprachauswahl bei Anmeldung im SAP-System, damit
standardmäßig die InfoObject-Dokumentation in der angemeldeten
Sprache erscheint
Seite 86
•
Voreinstellungen, z.B. das gewisse Teilbäume des Treeviews immer
beim Öffnen des Programms expandiert sind
•
Einsehen einer Liste von BW-Objekten die man noch freizugeben hat
bzw. Anzeige von Listen, in denen der Status (Wer hat bereits
freigegeben?) der BW-Objekte aufgeführt ist.
7.4. Migration vorhandener Daten in die Oracle-Datenbank
Die InfoObjects beziehen ihre Daten oftmals noch aus diversen Altystemen
(engl.: Legacy System). Diese Altsysteme sind die operativen Systeme
Leasis (das Leasingsystem), Kredis (das Kreditsystem), der Banking
Customer Application (BCA) und das Statistical Analysis System (SAS),
welches 2005 abgeschaltet werden soll. Das System der VW Bank ist so
aufgebaut, dass SAS seine Daten von Leasis, Kredis und BCA erhält. Da
Leasis, Kredis, BCA und SAS ihre Daten an das BW weitergeben, existieren
die
SAS-Daten
im
Prinzip
zweimal
bzw.
werden
doppelt
in
der
Dokumentation aufgeführt.
Um auch in Zukunft einsehen zu können, aus welchen (Alt-) Systemen die
InfoObjects ihre Daten beziehen, sollen diese in den Dokumentationen zu
den InfoObjects vermerkt sein.
Bisher sind diese Daten in folgenden Tabellen und Datenbanken gespeichert
und nur vereinzelt in den BW-Dokumentationen zu finden:
Datenbanken:
OBIS- Objekte-Info-System.mdb
OBIS enthält diverse Informationen zu einem Teil der im SAP BW-System
enthaltenen InfoObjects (ODS, SAS…).
Problem: Die Datenbank ist nicht mit dem SAP-System verbunden und
enthält daher keine aktuellen Daten. Die Daten müssen manuell gepflegt
werden.
Seite 87
PP8585-00 Projektdatenbank.mdb
Diese Datenbank ist für ein bestimmtes abteilungsinternes Projekt bestimmt
und enthält ebenso diverse
Daten über InfoObjects. Der Zweck der
Datenbank ist die Anlage eines neuen InfoObjects über XML. Dabei wird ein
XML-Dokument über die Daten der einzelnen Datenbanktabellen erstellt und
in das SAP BW geladen. Die Probleme hierbei sind, dass sogenannte
GUID’s (global unit id) zuvor im SAP-System per nicht-rfc-fähigem
Funktionsbaustein generiert werden müssen und auch die Anlage des
InfoObjects muss manuell über die Administrator Workbench in das SAP BW
geladen
werden.
Zudem
ersetzte
der
Funktionsbaustein
BAPI_IOBJ_CREATE diese Methode.
Aus diesen Gründen wurde diese Art der InfoObject-Erstellung nach
Implementierungsversuchen mit VB.NET wieder verworfen.
Tabellen
Weiterhin gibt es zahlreiche Excel-Tabellen, welche die im Rahmen eines
Projects anzulegenden SAP BW-Objekts enthalten. Diese Excel-Tabellen
werden in Zukunft durch die Dokumentationsverwaltung abgelöst werden.
Das primäre Ziel ist es, alle bisher in die Tabellen eingefügten Daten auf
einen Blick im gleichen System und nicht wie bisher in diversen Tabellen und
Datenbanken zu halten. Also müssen die Daten aus den Datenbanken in die
Oracle-Datenbank dwown transferiert werden. Im WWW gibt es eine große
Anzahl von Tools für die Transferierung von Excel und Access-Daten nach
Oracle.
7.5. Erweiterung um zusätzliche BW-Objekte
Für die Erweiterung der Dokumentationsverwaltung um ODS-Objects ist die
Tabelle T_ODS eingefügt worden. Da ein ODS-Object n InfoObjects besitzt
und ein InfoObject wiederum Teil von n ODS-Objects sein kann, ist die
Seite 88
Beziehung eine n:n-Beziehung. Als Zwischentabelle ist T_LANGUAGE
optimal, denn auch das ODS-Object besitzt die Texte Description long und
Description short. Die SAP-interne Tabelle der ODS-Objects ist RSDODSO
bzw. RSDODSOT für die Texte. Auch der SAP Funktionsbausteins für die
Anlage
des
ODS-Objects
existiert
im
SAP
BW.
Er
heißt
BAPI_ODSO_CREATE.
Die Namen der Tabellen und Funktionsbausteine der anderen BW-Objekte
heißen
analog zu diesen Bezeichnungen RSD[BW-Object-Shortcut] und
BAPI_[BW-Object-Shortcut]_CREATE.
7.6. Einführung einer weiteren Sprache
Da die Oracle Stored-Procedures und Functions dynamisch programmiert
wurden, muss bei der Einführung einer neuen Sprache bei BW-ObjektTexten nur die Tabelle T_LINGUA geändert werden. Wird z.B. die Sprache
Spanisch eingefügt, werden in Zukunft vier Datensätze in der Tabelle
T_LANGUAGE angelegt und letztendlich auch vier HTML-Dokumentationen
erzeugt.
7.7. Seitenaufbau/ Treeview
7.7.1.
Einführung und Installation
Um die Dokumentationsverwaltung zu einer Einheit zusammenzuführen, wird
eine Möglichkeit zur Navigation zwischen den einzelnen Seiten benötigt. Der
Anwender muss, je nachdem welcher Rolle er angehört, die Option haben
sich entweder die diversen BW-Objekten anzuschauen, sie zu erstellen oder
seine Benutzereinstellungen einzusehen und ändern zu können.
Die Navigation zu den unterschiedlichen Seiten soll mit einem Treeview
(Abbildung 7-2) umgesetzt werden. Ein Treeview besitzt, wie der Name
Seite 89
schon sagt, eine baumähnliche Struktur, so dass die verschiedenen Seiten in
Gruppen angeordnet werden können.
Die Navigationsmöglichkeiten eines Anwenders hängen davon ab, ob er
Developer,
Customer,
Supervisor
oder
normaler
Anwender
ohne
Sonderstatus ist. Je nach Status sieht der Anwender nach dem Login einige
Menüpunkte. Der Anwender hat z.B. ausschließlich die Seiten zur Auswahl,
auf denen er sich BW-Objekts nur anzeigen lassen kann, wogegen der
Supervisor sich den Status des neuen BW-Objekts anzeigen lassen kann
und die Möglichkeit zur Freigabe hat. Der Developer wird dagegen die
Auswahl der Seite haben, auf der er ein BW-Objekt neu erstellen kann.
Weiterhin gibt es auch Seiten wie die Benutzereinstellung, die jeder
Anwender als Element im Treeview zur Auswahl hat.
Abbildung 7-2: Treeview
Für die komfortable Navigation ist das Treeview-Steuerelement aufgrund der
Ähnlichkeit mit der übersichtlichen baumähnlichen Verzeichnisstruktur des
Windows Explorers das am besten geeignete. Dieses ist nicht im .NET
Framework
enthalten,
kann
aber
auf
der
Microsoft-Homepage35
TP
heruntergeladen werden.
Das Treeview ist neben der Toolbar, dem Tabstrip und der Multipage ein
Webserversteuerelement, welche die Funktionen des Internet Explorer
nutzen und deswegen auch IE-Websteuerelement genannt werden. Um es
TP
35
PT
[DowTrv]
Seite 90
PT
zu nutzen werden die IE-Websteuerelemente installiert und die DLL
Treeview.dll in das Visual Studio eingebunden. Jetzt kann das Treeview auf
verschiedene Weise verwendet werden. Zum einen kann es statisch
angewendet werden und zum anderen ist die dynamische Anbindung an eine
Datenbank möglich. In diesem Fall wurde die dynamische Möglichkeit
realisiert, da ein statisches Treeview aufgrund der unterschiedlichen Rollen
und der schlechten Wartbarkeit nicht ausreichend ist36
TP
7.7.2.
PT
Erklärung der Datenbank-Tabellen
In der Tabelle T_NODE
ist gespeichert, welcher Knoten welche Rolle
besitzt. So haben alle Anwender mit der Rolle User die Knoten zum Ansehen
und zur Suche von Dokumentationen, während alle Anwender mit der Rolle
Developer
Dokumentationen
z.B.
auch
anlegen
können.
Um
eine
Baumstruktur mit Eltern- und Kindknoten zu erhalten, enthält die Spalte
No_Parentnode Verweise auf die eigene Tabelle, welche besagen, ob und
welchen Elternknoten ein Knoten hat. Dies ist wichtig für die Realisierung der
einzelnen Ebenen, die durch Aufklappen des Treeviews entstehen. Weiterhin
steht in den Spalten No_NameG und No_NameE der
deutsche bzw.
englische Anzeigename.
Per Verweis auf die Tabelle T_PAGE wird für jeden einzelnen Knoten
bestimmt, auf welche Seite der Link des Knotens verweist. Bei T_PAGE und
T_NODE handelt es sich um eine 1:N-Beziehung, da ein Seitenverweis in
T_PAGE für jede Rolle einen Knoten mit anderen Elternknoten und Namen
hat.
TP
36
[MsIEWeb]
PT
Seite 91
Abbildung 7-3: Inhalt von T_Node und T_Page
Die VB-Klasse Treeview
Bei Aufruf der Seite werden entsprechend der Rolle des jeweiligen Nutzers
die Informationen der benötigten Knoten aus den Tabellen T_NODE und
T_PAGE der Datenbank abgefragt und an das Treeview angehängt.
Diese geschieht mit der rekursiven Funktion Fkt_Treeview
in der alle
Wurzelknoten nacheinander durchlaufen (traversiert) und als Root in das
Treeview eingefügt werden. Für jeden Wurzelknoten wird durch einen Aufruf
der eigenen Funktion untersucht, ob ein oder mehrere Kindsknoten
existieren. Auch bei den Kindknoten wird untersucht, ob diese wiederum
Kindknoten haben. Dieses ist bei einem Treeview mit 3 oder mehr Ebenen
der Fall37.
TP
PT
IFrame
Das Treeview wird durch ein so genanntes IFrame (Inline Frame) in jede
Seite eingebettet. IFrames gehören zum HTML 4-Standard und haben eine
ähnliche Funktionalität wie normale Frames.
Der Unterschied ist jedoch, dass eingebettete Frames keine Aufteilung des
Bildschirms erzeugen, sondern ähnlich wie Grafiken Bereiche innerhalb einer
Hauptseite sind. Dieses hat einen großen Vorteil. Da ein IFrame der
Hauptseite untergeordnet ist, kann der Anwender jede Seite mit einem
Lesezeichen versehen,
TP
37
PT
Der VB-Code wurde von dem Auszubildenden Holger Roedig implementiert
Seite 92
denn in der Adressleiste wird die vollständige URL mit der Iobj_pk_id
angezeigt.
http://localhost/PROJECT/mainIOBJ.aspx?iobj_pk_id=977
Abbildung 7-4: vollständige URL mit IFrames
Bei normalen Frames würde dieses nicht funktionieren, da immer nur die
Einstiegsseite als Lesezeichen gesetzt werden würde. Muss der Anwender
seine Eingaben z.B. zu einem InfoObject unterbrechen, kann er die Seite als
Lesezeichen setzen und beim nächsten Mal schnell wieder aufrufen.
Die Nachteile sind, dass sie nur in Browsern mit integriertem HTML 4
funktionieren, was ein Problem darstellen kann, wenn der Anwenderkreis
unterschiedliche Browserversionen hätte. Etwas umständlich ist außerdem,
dass der unten aufgeführte IFrame-Code in jede Seite, die diesen IFrame
haben soll, eingebettet werden muss.
Das der Anwender jedoch die Möglichkeit haben soll, die Seiten, an denen er
arbeitet, mit Lesezeichen zu versehen, ist dieses Feature ausschlaggebend.
<IFRAME style="Z-INDEX: 101; LEFT: 0px; WIDTH: 120px; POSITION: absolute; TOP: 72px;
HEIGHT: 280px" name="iframe" align="right" src="Treeview.aspx" width="40"
height="80"></IFRAME>
Abbildung 7-5: IFrame in der Dokumenationsverwaltung
7.8. Anzeige einer Online-Dokumentation
Die Online-Dokumentation ist nicht zu verwechseln mit der gewöhnlichen
Dokumentation
(s.
Kapitel
3).
Per
Pfadangabe
kann
die
Online-
Dokumentation zu einem gewünschten BW-Objekt eingesehen werden. Im
unten aufgeführten Beispiel wurde zu Testzwecken ein Hyperlink verwendet.
Der Pfad muss insofern angepasst werden, als dass der BW-Objekttyp und
der BW-Objektname eingesetzt werden muss. Um den Zugriff auf die OnlineDokumentation zu erhalten, muss der Anwender zuvor seinen Namen und
sein Passwort für den WebApplication-Server eingeben.
Seite 93
<asp:HyperLink id="lnkBeispiel" style="Z-INDEX: 102; LEFT: 19px; POSITION: absolute; TOP:
59px" runat="server" NavigateUrl=
"http://sap-fbp.vwfsag.de:8010/sap/bw/doc/metadata/page%3dBW_O_D%26SystemID%3d
FBP112%26ClassID%3dIOBJ%26ID%3d0country%26objectVersion%3dA"
Target="main">0country</asp:HyperLink>
H
H
Beispiel 7-1: Zugriff auf Online-Dokumentation des InfoObjects 0Country
Mit der Integration der Dokumentationsverwaltung in das SAP Enterprise
Portal wäre diese Art der Einbindung nicht mehr nötig.
7.9. TREX/ SAP Enterprise Portal
SAP arbeitet darauf hin, dass der Nutzer für alle SAP-Systeme nur noch eine
Oberfläche bzw. Plattform, nämlich das Portal haben wird. Dieses bringt
Vorteile, wie z.B. das einmalige Login (single-sign-on) und nur ein
Basisprogramm.
•
Integration in das Portal: Die Integration von .NET- Anwendungen
T
T
mit SAP-Lösungen wird von Microsoft und SAP vorangetrieben
(Kapitel 2.2). Somit kann die Dokumentationsverwaltung auf lange
Sicht in die Portalumgebung integriert werden, so dass in Zukunft die
Dokumentationsverwaltung
mit
SAP-eigenen
Anwendungen
verschmilzt.
„SAP entwickelt zudem ein Portal Developer Kit für IBM Websphere
sowie eines für Microsoft .NET. Dadurch können Entwickler FrontEnd-Dienste in .NET-Umgebungen erstellen und dies in SAP
Enterprise Portale einbetten. […] Entwickler können in [...] Microsoft
.NET-Umgebungen auf Services von SAP Enterprise Portal zugreifen,
beispielsweise auf die Benutzerverwaltung, Rollen, Seiten und
personalisierte Daten […]“38.
TP
TP
38
PT
PT
[SAPWeav]
Seite 94
•
Integration von TREX: Da die Dokumentationsverwaltung ein mit
T
T
MS.NET geschriebenes Programm ist und sich deshalb in das SAP
Enterprise Portal integrieren lässt, wird die Kommunikation mit der
Suchmaschine
TREX
ebenfalls
problemlos
möglich
sein.
Die
Suchmaschine wird auch zu einem Teil des SAP Enterprise Portals
werden und aufgrund der Tatsache, dass SAP (bei der VWFSAG)
über Oracle-Datenbanken als Back-End verfügt, kann TREX in
Zukunft die Daten der Oracle-Datenbank auslesen und diverse
Suchfunktionen über diese ausführen.
Seite 95
8. Schlusswort
8.1. Fazit
Zum Ende erläutere ich Vorgehensweisen, Probleme und Chancen der Entstehung dieser Diplomarbeit.
Der Umfang der Diplomarbeit war sehr komplex, da es zum einen galt, sich
im SAP BW-System mit seinen zahlreichen Transaktionen zurechtzufinden;
zum anderen war es notwendig, die Architektur und den Datenfluss innerhalb
des Business Warehouse verstehen zu lernen. Ein anderer wichtiger Faktor
war, herauszufinden, was die zukünftigen Anwender am meisten am IST-Zustand störte und welche Vorstellungen und Wünsche sie bezüglich der
Dokumentationen hatten. Bei diesen Nachforschungen traten recht unterschiedliche Meinungen auf, welche Neuerungen notwendig oder sinnvoll
seien.
Diese unterschiedlichen Ansichten waren auf einen gemeinsamen
Nenner zu bringen, damit das Gesamtkonzept erstellt werden konnte.
Für die Dokumentationsverwaltung musste zur Umsetzung des Sollkonzeptes eine Möglichkeit gefunden werden, Daten vor Änderungen im BW in einer
Datenbank zu speichern, auf die mit einer geeigneten Umgebung und Programmiersprache für Webanwendungen zugegriffen werden kann. Von der
gewählten Plattform Microsoft .NET konnte zudem die Kommunikationsmöglichkeit des SAP .NET-Connectors genutzt werden, um mit dem SAP BWSystem zu interagieren.
Nachdem diverse Möglichkeiten recherchiert - und die besten Technologien
für das SAP-System und die Systemlandschaft der VWFSAG gefunden
waren, begann die zeitaufwendige Beschaffung und Installation der verschiedenen benötigten Softwareprodukte und die Einarbeitungsphase in
diese verschiedenen Technologien. Dabei wurden die Möglichkeiten von
XML untersucht, die Sprache Visual Basic.net erlernt und eine Oracle-Datenbank eingerichtet. Dabei wurde die Entscheidung getroffen, dass die
Daten zunächst relational und erst später als XML-Dokumente gespeichert
werden.
Seite 96
Da das Thema der Dokumentationsverwaltung sehr umfangreich war, wurde
nach Rücksprache mit den Auftraggebern festgelegt, welcher Teil in einer
ersten Stufe realisiert und welcher für spätere Stufen theoretisch vorbereitet
wird. Einen Kompromiss zwischen einer rein theoretischen und einer rein
praktischen Arbeit zu finden, war mir sehr wichtig, da meines Erachtens die
Gefahr bestand, dass eine ausschließlich theoretisch existierende Dokumentationsverwaltung in der Praxis unter Umständen nicht realisierbar
gewesen wäre. Insofern war es wichtig für mich, den SAP .NET-Connector
und die übrigen Technologien als miteinander kommunizierende Einheiten zu
einem einheitlichen Programm zusammenzuführen um die praktischen Erfahrungen auf die Konzeption zu reflektieren. Da ein InfoObject als wichtigstes
SAP BW-Objekt gilt, war entschieden worden, dass die Archivierung von
Daten und die Erstellung des InfoObject und seiner Dokumentation
implementiert werden soll.
Die Vielfalt und zahlreichen Einsatzmöglichkeiten der eingesetzten aktuellen
Technologien sind für einen Entwickler sehr interessant und verdeutlichen
die Perspektiven, die sich für die Softwareentwicklung in der Zukunft auftun.
Der implementierte Teil der Dokumentationsverwaltung kann somit sowohl
als Arbeitserleichterung mit dem SAP BW-System als auch als Anreiz für die
Entwicklung innovativer interoperabilitäre Webanwendungen gesehen werden.
Seite 97
8.2. Danksagung
Ich danke allen Mitarbeitern der Volkswagen Bank und besonders den Mitarbeitern und Externen der Abteilung I-SEB und Herrn Prof. R. Rüdiger, die
mich mit fachlichem Rat bei der Erstellung der Diplomarbeit unterstützt
haben.
Besonders danke ich meinem Betreuer Uwe Arnold für seine Hilfe und dass
er mir die Motivation für die Fertigstellung dieser Arbeit gab.
Weiterhin bedanke ich mich herzlich bei Martin Trautwein, Kristina Birke und
meinen Eltern für die freundschaftliche Unterstützung.
8.3. Selbständigkeitserklärung
Hiermit versichere ich, dass ich diese Arbeit selbständig angefertigt habe und
keine anderen als die angegebenen Quellen und Hilfsmittel verwendet wurden.
Braunschweig, den
Sylvia Brink
Seite 98
I.
Anhang
A Bedarfsanalyse
Bedarfsanalyse
Dokumentenverwaltung in SAP BW
Entwickler
U
In SAP BW sollen zukünftig Dokumentationen für die BW-Objekte standardisiert verwaltet werden.
Im Moment gibt es zu einem Teil der BW-Objekte Dokumentationen ohne einheitliche Struktur.
Dokumentationen bestehen schon für manche InfoObjekte.
Hier ein Beispiel: Dokumentation
U
U
Zur Erstellung der Software ist es wichtig zu wissen, was die Anwender/Entwickler für
Anforderungen an diese Software stellen.
Bitte füllen sie diesen Fragebogen sorgfältig aus. Vielen Dank!
1. Angaben zur Person
Wie gut schätzen sie ihr Wissen bezüglich SAP BW ein?
•
Experte
•
Grundlagen, auf Teilgebieten Experte (z.B. ABAP, Bex Analyzer etc.)
Welche:
•
•
•
Grundlagen
kaum Wissen
kein Wissen bzw. sehr geringes Wissen
Bemerkungen:
Je nachdem, welche Aufgaben ein Mitarbeiter hat, arbeitet er unterschiedlich oft und intensiv mit BWObjekten.
Welche Erfahrungen haben sie zur Zeit mit Dokumentationen in SAP BW?
•
habe schon welche erstellt
•
ich lese sie hin und wieder
•
habe ich mal gesehen
•
keine
Bemerkungen:
Wie oft werden Sie voraussichtlich auf Dokumentationen von BW-Objekten zurückgreifen?
•
ständig
•
oft
•
hin und wieder
•
sehr selten
•
gar nicht, ich arbeite nie mit dem BW
Wenn sie „gar nicht“ angekreuzt haben, brauchen sie diesen Bogen nicht weiter auszufüllen.
Bemerkungen:
Seite 99
Werden Sie von Anwendern zu BW-Objekten um Rat gefragt (z.B. per Telefon), weil diesen
bestimmte technische Kenntnisse fehlen?
(z.B. Datenfluss, aktuellen Problemen/Änderungen)
•
jeden Tag mehrmals
Um was geht es z.B.?
•
fast jeden Tag
Um was geht es z.B.?
•
kommt selten vor
•
nie
Bemerkungen:
Arbeiten sie auch von zu Hause aus mit SAP BW?
•
oft
•
hin und wieder
•
nie
Bemerkungen:
2. Berechtigungen/ Zuständigkeiten
Zuständigkeiten
Zur Zeit gibt es noch keine Zuständigkeiten für die einzelnen BW-Objekte.
Diese Zuständigkeiten sollen demnächst festgelegt werden.
Somit ist immer eindeutig, welcher Mitarbeiter für welches BW-Objekt verantwortlich ist.
•
•
Zuständigkeiten sollen nicht eingeführt werden
Zuständigkeiten sind notwendig
Begründung:
Bemerkungen:
Berechtigungen
Ist - auf Basis dieser Zuständigkeiten – ein Berechtigungskonzept wünschenswert?
Nur berechtigte Mitarbeiter können dann ein Dokument aktivieren/ändern.
+ Dokumente können nicht (aus Versehen) geändert/ gelöscht werden
- Aufwand ist größer, da Berechtigungen angelegt/ gepflegt werden müssen
•
sinnvoll
•
weniger sinnvoll
Begründung:
Bemerkungen:
3. Prozess der Dokumentenverwaltung
Erstellung einer Dokumentation
An der Erstellung einer neuen Dokumentation arbeitet immer mehr als ein Mitarbeiter, damit die
Qualität sich verbessert.
Folgender Vorschlag:
Ausgangspunkt: Ein neues InfoObjekt wurde erstellt.
1.der Anwender erstellt die Dokumentation und fügt betriebswirtschaftliche Inhalte ein
2.der Entwickler ergänzt sie um die technischen Inhalte
Seite 100
3.Der Zuständige prüft die Dokumentation und gibt sie frei.
•
Vorgehensweise sinnvoll
•
anderer Vorschlag:
Bemerkungen:
4. Aufbau und Inhalt
Es geht um den Datenfluss bezüglich eines InfoObjekts
Es ist für Sie wichtig zu wissen:
...in welchen Queries das InfoObjekt verwendet wird
Wichtig
weniger wichtig
nicht wichtig
Anmerkung:
...aus welchen Fortschreibungsregeln das InfoObjekt Daten erhält
Wichtig
weniger wichtig
nicht wichtig
Anmerkung:
...in welchen InfoCubes das InfoObjekt verwendet wird
Wichtig
weniger wichtig
nicht wichtig
Anmerkung:
...Weiteres:
Dateiformate
Die Dokumentationen sollen auf Word, Excel und/ oder HTML basieren.
Soll es weitere Dateiformate geben?
z.B. Visio-Dokumente zur Erstellung von Grafiken, PowerPoint zur Präsentation
•
Ja
•
nicht notwendig
Welche?: Begründung:
Bemerkungen:
Vollautomatische Informationen
In die Dokumentationen können vom System generierte Informationen vollautomatisch eingefügt
werden:
• z.B. Ladeläufe (stattgefunden, nicht stattgefunden)
• Fehlermeldungen
•
•
sinnvoll
nicht sinnvoll
Begründung:
Seite 101
Bemerkungen:
Eigene Anmerkungen
Aktuelle eigene Anmerkungen können am Ende der Dokumentation angehängt werden (z.B. bei
Änderungen/ Fehlern)
sinnvoll
nicht sinnvoll
Begründung:
sinnvoll, sollten aber nach gewisser Zeit gelöscht werden
Bemerkungen:
5. Automatische E-Mailbenachrichtigung
Sie können automatisch per E-Mail benachrichtigt werden, wenn sie dafür bei der entsprechenden
Dokumentation eingetragen sind.
Die E-Mailbenachrichtigungen sollen möglichst gezielt stattfinden.
+ sie bekommen automatisch mit, wenn sich bezüglich der BW-Objekte etwas ändert
- die E-Mailflut wird noch grösser
Benachrichtigungen finde ich interessant, bei
•
Änderungen bezüglich betriebswirtschaftlichen Inhalten
•
Änderungen bezüglich BW-technischen Inhalten
•
stattgefundenen Ladeläufen
•
manuell erstellten Anmerkungen
•
Dokumentationen, die ich überprüfen soll
Bemerkungen:
Anzahl Mails
In welchem Rahmen darf sich die E-Mailbenachrichtigung bewegen?
Pro Woche:
•
•
•
bis zu 20 E-Mails
bis zu 5 E-Mails
möchte keine E-Mailbenachrichtigungen
Bemerkungen:
6. Struktur der Dokumentation
Reihenfolge der Inhalte
Bei der Reihenfolge ist zu beachten, dass wichtige Informationen zuerst angeführt werden.
Auch ist wichtig, dass die Informationen für die Anwender recht weit oben aufgeführt sind.
Vorschlag für die Reihenfolge der Inhalte:
1. kurze technische Informationen
(Name des InfoObjektes, techn. Name, Datentyp,Beschreibung
etc.)
2. betriebswirtschaftlicher Hintergrund
3. weitere technische Informationen (Zusammenhänge mit anderen BW-Objekten)
4. aktuelle Informationen:
4a. vollautomatische Informationen (z.B. Ladelauf)
4b. eigene Anmerkungen
Seite 102
•
sinnvoll
•
andere Reihenfolge:
Begründung:
Bemerkungen:
7. Suche
Die Suche nach Dokumentationen kann erfolgen durch Suche nach:
-dem technischen Namen
-der Beschreibung
-der BW-Objektklasse
Schlagwortsuche
Des weiteren gibt es die Überlegung, dass der Ersteller einer Dokumentation Schlagworte definiert,
nach denen man suchen kann.
+ die Suche ist schneller, da man nicht den gesamten Inhalt aller Dokumente durchsuchen muss
+ man kann nach mehreren Kriterien durchsuchen
-man muss die Schlagworte definieren
•
•
•
sinnvoll
weniger sinnvoll
nicht sinnvoll
Begründung:
Begründung:
Bemerkungen:
8. Weitere BW-Objekte
Für welche BW-Objekte (ausser InfoObjekten) wünschen sie noch Dokumentationen?
(Die Dokumentationen sollen zuerst nur für InfoObjekte standardisiert werden).
•
•
•
•
•
•
•
•
•
InfoCubes
ODS-Objekte
InfoSets
MultiProvider
InfoSource
Fortschreibungsregeln
Übertragungsregeln
Prozesskette
Rolle
InfoSet
Bemerkungen:
9. Druckfunktionen
Das Drucken von Dokumentationen ist für Sie:
•
•
•
unbedingt notwendig
bedingt notwendig
gar nicht notwendig
Begründung:
Bemerkungen:
10. Zusätzliche Anmerkungen/ Vorschläge:
Seite 103
B IOBJListFromBW.vb
Imports SAP.Connector
Imports rfc_read_table
Public Class IOBJListFromBW
Inherits System.Web.UI.Page
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents DropDownList2 As System.Web.UI.WebControls.DropDownList
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
Protected WithEvents Label2 As System.Web.UI.WebControls.Label
Dim dssapB512 As New System.Data.DataSet
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
If Not Page.IsPostBack Then
LoadList(DropDownList2.SelectedValue.ToString())
End If
End Sub
Sub LoadList(ByVal strLanguage As String)
Dim oProxy As New rfc_read_table.rfc_read_table
Dim sapTableFields As New rfc_read_table.RFC_DB_FLDTable
Dim sapTableOptions As New RFC_DB_OPTTable
Dim sapTableOptions2 As New RFC_DB_OPTTable
Dim sapTableFieldsRow1 As New RFC_DB_FLD
Dim sapTableFieldsRow2 As New RFC_DB_FLD
Dim sapTableOptionsRow As New RFC_DB_OPT
Dim sapTableOptionsRow2 As New RFC_DB_OPT
Dim rsdiobj As New TAB512Table
Dim Rowcount As Integer = rsdiobj.Count
'FIELDS-Parameter: needed fields from the table
'IOBJNM (Name of the IOBJ) and TXTSH (Short Description)
sapTableFieldsRow1.Fieldname = "IOBJNM"
sapTableFieldsRow2.Fieldname = "TXTSH"
sapTableFields.Add(sapTableFieldsRow2)
sapTableFields.Add(sapTableFieldsRow1)
'OPTIONS-Parameter: where-clause from Query
sapTableOptionsRow.Text = "LANGU EQ '" + strLanguage + "' "
sapTableOptions.Add(sapTableOptionsRow)
sapTableOptionsRow2.Text += "and OBJVERS EQ 'A'"
sapTableOptions.Add(sapTableOptionsRow2)
'Destination-Class with test-user
Dim Dest As New SAP.Connector.Destination
Dest.Client = "112"
Seite 104
Dest.AppServerHost = "reg02l01b"
Dest.SystemNumber = "12"
Dest.Username = "test02"
Dest.Password = "start123"
Dest.Language = "DE"
oProxy.Connection = New SAP.Connector.SAPConnection(Dest.ConnectionString)
Dim delimiter As Char() = "|"
Dim no_data As String = ""
Dim Query_Table As String = "RSDIOBJT"
Dim Rowskips As String = "0"
oProxy.Connection.Open()
oProxy.Rfc_Read_Table(delimiter, no_data, Query_Table, Rowcount, Rowskips,
rsdiobj, sapTableFields, sapTableOptions)
oProxy.Connection.Close()
'Call Function "MakeNamesTable"
Dim dtsapB512 As DataTable = MakeNamesTable()
'The returned Columns IOBJNM and TXTSH have to be splitted to become two
separated columns
'They look like this: 0country | 0country-description
Dim split As String() = Nothing
Dim strTemp As String
Dim myRow As DataRow
Dim myRow2 As DataRow
Dim i As Integer
'Listengröße: Problem!
For i = 0 To 2000 - 1
strTemp = rsdiobj.Item(i).Wa.ToString()
split = strTemp.Split(delimiter)
myRow = dtsapB512.NewRow()
myRow2 = dtsapB512.NewRow()
strTemp = split(0)
myRow("Name") = split(1)
myRow("Short Description") = split(0)
dtsapB512.Rows.Add(myRow)
Next i
dssapB512.Tables.Add(dtsapB512)
DataGrid1.DataSource = dtsapB512.DefaultView
DataGrid1.DataBind()
End Sub
'Adds Columns 'Name' (of the IOBJ) and 'Short description' to the DataTable "Names"
Private Function MakeNamesTable() As DataTable
Dim namesTable As DataTable = New DataTable("Names")
Dim idColumn As DataColumn = New DataColumn
idColumn.DataType = System.Type.GetType("System.Int32")
Seite 105
idColumn.ColumnName = "No."
idColumn.AutoIncrement = True
namesTable.Columns.Add(idColumn)
Dim IOBJNMColumn As DataColumn = New DataColumn
IOBJNMColumn.DataType = System.Type.GetType("System.String")
IOBJNMColumn.ColumnName = "Name"
IOBJNMColumn.DefaultValue = "IOBJNM"
namesTable.Columns.Add(IOBJNMColumn)
Dim TXTSHColumn As DataColumn = New DataColumn
TXTSHColumn.DataType = System.Type.GetType("System.String")
TXTSHColumn.ColumnName = "Short Description"
namesTable.Columns.Add(TXTSHColumn)
' Creates an array for DataColumn objects.
Dim keys(0) As DataColumn
keys(0) = idColumn
namesTable.PrimaryKey = keys
' Return the new DataTable.
MakeNamesTable = namesTable
End Function
Private Sub DropDownList2_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles DropDownList2.SelectedIndexChanged
Dim strTemp As String = DropDownList2.SelectedValue
LoadList(strTemp)
End Sub
End Class
Seite 106
C Oracle-Datenbank dwown
Seite 107
D Front-End
Seite 108
Eingabemasken
Daten für die Dokumentation
(1) Descriptions (Beschreibungen)
(2) Sourcesystems (Quellsysteme)
(3) Characteristics (Ausprägungen)
Metadaten
Keyfigures (Kennzahlen)
Characteristics (Merkmale)
Seite 109
InfoObject-Dokumentation (ShowDocumentation)
Seite 110
E Procedure P_Create_XMLDocs
PROCEDURE P_CREATE_XMLDOCS(iobj_pk_id Number)
as
-- Handle for the Main-Table
qryCtx DBMS_XMLGEN.ctxHandle;
-- Handle for the descriptions
qryCtx2 DBMS_XMLGEN.ctxHandle;
-- gets ALL actual LANGUAGES (E,F,D...) FROM T_LANGUAGE
(la_language)
CURSOR cursorLanguage IS SELECT la_language FROM T_LANGUAGE
WHERE la_fk_iobj= iobj_pk_id;
XMLTable xmltype;
-- this procedure joins all columns needed for the documentation
-- and inserts them into t_language(column la_xmldoc)
-- uses DBMS_XMLGEN-Packet to generate XML from relational Tables
-- Definition DBMS_XMLGEN
-- "DBMS_XMLGEN converts the results of a SQL query to a canonical
XML format.
-- The package takes an arbitrary SQL query as input, converts it to
XML format,
-- and returns the result as a CLOB."
-- for further Details look at:
-**http://nss.felk.cvut.cz/doc/ora901/DOC/appdev.901/a89852/d_xmlgen.
htm#ARPLS066**
BEGIN
-- ******************* Table T_IOBJ *********************
-- ***** for all languages ******
-- Function newContext
-- This function, given a query string, generates a new context
handle to be
-- used in subsequent functions.
-- SYNTAX: DBMS_XMLGEN.newContext (queryString IN VARCHAR2)RETURN
ctxHandle;
qryCtx := dbms_xmlgen.newContext
('select iobj_id, gistype As language, conversionmode As
Sourcesystem,
selection As Characteristic, iobj_format As Format from t_iobj
where iobj_pk_id='|| iobj_pk_id);
-- Procedure SETROWTAG:
Sets the name of the element enclosing
each row of
-- the result. The default tag is ROW.
DBMS_XMLGEN.setRowTag(qryCtx, 'IOBJDoc');
-- Procedure SETROWSETTAG:
Sets the name of the element
Seite 111
enclosing the
-- entire result. The default tag is ROWSET.
DBMS_XMLGEN.setRowSetTag (qryCtx, 'SAPBW');
--Function GETXMLTYPE: generates the XML document and returns
it as XMLTYPE
XMLTable := DBMS_XMLGEN.getXMLType(qryCtx);
--CURSOR: Insert XMLDocument for all Languages into T_LANGUAGE,
la_xmldoc
FOR c1 IN cursorLanguage
LOOP
UPDATE T_LANGUAGE SET la_xmldoc= XMLTable WHERE la_fk_iobj =
iobj_pk_id
AND la_language = c1.la_language;
END LOOP;
--**************************************************************
--********************** Table T_LANGUAGE **********************
FOR c1 IN cursorLanguage
LOOP
qryCtx2 := dbms_xmlgen.newContext
('SELECT la_desc_long, la_desc_short, la_desc_tec,
la_desc_econ FROM
T_LANGUAGE where la_language = '''|| c1.la_language ||'''
and la_fk_iobj = '|| iobj_pk_id);
DBMS_XMLGEN.setRowTag(qryCtx2, 'description');
DBMS_XMLGEN.setRowSetTag (qryCtx2, '');
XMLTable := DBMS_XMLGEN.getXMLType(qryCtx2);
-- XML-Tag DESCRIPTIONLONG will be replaced by "XMLTable"
-- Insertion into the XML-Document by UpdateXML(XMLType-Row,
XPath)
UPDATE T_LANGUAGE t
SET
la_xmldoc=updateXML(la_xmldoc,
'/SAPBW/IOBJDoc/LANGUAGE[1]' , XMLTable) WHERE
existsNode(la_xmldoc,'/SAPBW') = 1 AND la_fk_iobj=
iobj_pk_id AND la_language = c1.la_language ;
END LOOP;
--******************************************************************
--********************** Table T_SOURCESYSTEM **********************
qryCtx2 := dbms_xmlgen.newContext
('SELECT so_pk_id, so_sourcesystem, so_interfacefile,
so_fieldname_os,so_fieldlabel_os, so_sas_library, so_table,
so_field,so_datatype,so_length, so_format, so_transformation,
so_annotation FROM t_sourcesystem
WHERE so_fk_iobj='|| iobj_pk_id);
Seite 112
DBMS_XMLGEN.setRowTag(qryCtx2, 'sourcesystem');
DBMS_XMLGEN.setRowSetTag (qryCtx2, 'sourcesystems');
XMLTable := DBMS_XMLGEN.getXMLType(qryCtx2);
--FOR ALL LANGUAGES: ISREFERENCE will be replaced by actual
"XMLTable"-Content
UPDATE T_LANGUAGE t
SET la_xmldoc =
updateXML(la_xmldoc,'/SAPBW/IOBJDoc/SOURCESYSTEM[1]', XMLTable)
WHERE existsNode(la_xmldoc,'/SAPBW') = 1 AND la_fk_iobj= iobj_pk_id;
-*******************************************************************
--********************** Table T_CHARACTERISTIC
**********************
--*****all Languages******
qryCtx2 := dbms_xmlgen.newContext
('SELECT ch_characteristic, ch_definition, ch_annotation from
T_CHARACTERISTIC
WHERE ch_fk_iobj='|| iobj_pk_id);
DBMS_XMLGEN.setRowTag(qryCtx2, 'characteristic');
DBMS_XMLGEN.setRowSetTag (qryCtx2, 'characteristics');
XMLTable := DBMS_XMLGEN.getXMLType(qryCtx2);
--For ALL LANGUAGES: SELECTION will be replaced by actual
"XMLTable"-Content
UPDATE T_LANGUAGE t
SET la_xmldoc =
updateXML(la_xmldoc,'/SAPBW/IOBJDoc/CHARACTERISTIC[1]', XMLTable)
WHERE existsNode(la_xmldoc,'/SAPBW') = 1 AND la_fk_iobj= iobj_pk_id;
-********************************************************************
**
-*******************************************************************
DBMS_XMLGEN.closeContext(qryCtx);
END;
Seite 113
F XML-Dokumentation (Beispiel)
<SAPBW>
<IOBJDoc>
<IOBJ_ID>YZINS</IOBJ_ID>
<description>
<LA_DESC_LONG>interest categorization</LA_DESC_LONG>
<LA_DESC_SHORT>interest category</LA_DESC_SHORT>
<LA_DESC_TEC>There will be no master data built. If the
contracts are read in, the expansion-factors will be read from this
table.</LA_DESC_TEC>
<LA_DESC_ECON>Interest categorisation for multi-level
customer-financing.</LA_DESC_ECON>
</description>
<sourcesystems>
<sourcesystem>
<SO_PK_ID>1152</SO_PK_ID>
<SO_SOURCESYSTEM>Kredis</SO_SOURCESYSTEM>
<SO_INTERFACEFILE>DLP.DVV.DW0007B.W01#</SO_INTERFACEFILE>
<SO_FIELDNAME_OS>ZISTUFE</SO_FIELDNAME_OS>
<SO_FIELDLABEL_OS>-</SO_FIELDLABEL_OS>
<SO_SAS_LIBRARY>-</SO_SAS_LIBRARY>
<SO_TABLE>-</SO_TABLE>
<SO_FIELD>11</SO_FIELD>
<SO_DATATYPE>-</SO_DATATYPE>
<SO_LENGTH>2</SO_LENGTH>
<SO_FORMAT>---</SO_FORMAT>
<SO_TRANSFORMATION>1:1</SO_TRANSFORMATION>
</sourcesystem>
<sourcesystem>
<SO_PK_ID>1153</SO_PK_ID>
<SO_SOURCESYSTEM>SAS</SO_SOURCESYSTEM>
<SO_INTERFACEFILE>-</SO_INTERFACEFILE>
<SO_FIELDNAME_OS>ZISTUFE</SO_FIELDNAME_OS>
<SO_FIELDLABEL_OS>-</SO_FIELDLABEL_OS>
<SO_SAS_LIBRARY>-</SO_SAS_LIBRARY>
<SO_TABLE>VWFS.BHDL</SO_TABLE>
<SO_FIELD>-</SO_FIELD>
<SO_DATATYPE>DEC</SO_DATATYPE>
<SO_LENGTH>2</SO_LENGTH>
<SO_FORMAT>---</SO_FORMAT>
<SO_TRANSFORMATION>1:1</SO_TRANSFORMATION>
</sourcesystem>
</sourcesystems>
<characteristics>
<characteristic>
<CH_CHARACTERISTIC>1</CH_CHARACTERISTIC>
<CH_DEFINITION>low level interest category</CH_DEFINITION>
<CH_ANNOTATION>only for poor people...</CH_ANNOTATION>
</characteristic>
<characteristic>
<CH_CHARACTERISTIC>2</CH_CHARACTERISTIC>
<CH_DEFINITION>mid-level interest category</CH_DEFINITION>
<CH_ANNOTATION>for people like you and me</CH_ANNOTATION>
</characteristic>
<characteristic>
<CH_CHARACTERISTIC>3</CH_CHARACTERISTIC>
Seite 114
<CH_DEFINITION>high-level interst category</CH_DEFINITION>
<CH_ANNOTATION>for privileged people </CH_ANNOTATION>
</characteristic>
</characteristics>
</IOBJDoc>
</SAPBW>
Seite 115
G Function F_Create_XSLDocs
FUNCTION F_CREATE_XSLDOCS
( iobj_pk_id IN Number, la_language1 IN varCHAR)
RETURN CLOB IS
--- To modify this template, edit file FUNC.TXT in TEMPLATE
-- directory of SQL Navigator
--- Purpose: This Function F_CREAT_XSLDocs converts each Document of
an IOBJ
--(look at T_Language, La_xmldoc)
-- with the help of an XSL-Document into an HTML Document
-- The HTML-Document will be RETURNed as CLOB to the VB-Programm
-- for importing it into SAP via .NET Connector
-----
MODIFICATION HISTORY
Person
Date
Comments
Brink, dkx8954 02.09.2004 Beginnning
-------------- -------------------------------------------
--Variables
XSLDoc
Varchar(4000);
BEGIN
SELECT XMLTRANSFORM(la_xmldoc, xsl_xsldoc).getStringVal()
INTO XSLDoc
FROM T_XSLDOC, T_LANGUAGE
WHERE la_fk_iobj = iobj_pk_id AND la_language = la_language1
AND xsl_language = la_language1 and xsl_objtype = 'IOBJ';
return XSLDoc;
END ; -- Procedure
Seite 116
H Function F_CheckCreateIOBJ
FUNCTION F_CHECKCREATEIOBJ
(iobj_pk_id IN NUMBER )
RETURN varchar IS
--Variables
intCountCHA
intCountKYF
descshortE
desclongE
descshortD
desclongD
descshortF
desclongF
strReturn
intCountLanguage
intNumberLang
NUMBER(2,0);
NUMBER(2,0);
Varchar(20);
Varchar(50);
Varchar(20);
Varchar(50);
Varchar(20);
Varchar(50);
VARCHAR(100);
NUMBER(2,0);
NUMBER(2,0);
-- Purpose: This function looks if there exists exactly one record in the Tables
-- T_IOBJKYF and T_IOBJCHA which contain the Metadata
--(these Metadata are at least needed to create an IOBJ in SAP BW)
--- MODIFICATION HISTORY
-- Sylvia Brink 28.10.2004 'Beginning
-- Sylvia Brink 29.10.2004 'Updated
-- --------- ------ ------------------------------------------BEGIN
--Get the Number of records from the tables t_iobjkyf and t_iobjcha
SELECT Count(*) AS IOBJLaCount INTO intCountLanguage FROM T_Language
WHERE la_fk_iobj= iobj_pk_id;
SELECT Count(*) AS numberLanguages INTO intNumberLang FROM T_LINGUA;
--if the number of languages match the number of languages in t_lingua
IF intCountLanguage = intNumberLang then
-- Check if Shortdescription and Longdescriptions for ALL(!) Languages
-- have been made in Table T_Language
SELECT la_desc_short INTO descshortE FROM t_language
WHERE la_fk_iobj= iobj_pk_id and la_language='E';
SELECT la_desc_long INTO desclongE FROM t_language
WHERE la_fk_iobj= iobj_pk_id and la_language='E';
SELECT la_desc_short INTO descshortD FROM t_language
WHERE la_fk_iobj= iobj_pk_id and la_language='D';
SELECT la_desc_long INTO desclongD FROM t_language
WHERE la_fk_iobj= iobj_pk_id and la_language='D';
SELECT la_desc_short INTO descshortF FROM t_language
WHERE la_fk_iobj= iobj_pk_id and la_language='F';
SELECT la_desc_long INTO desclongF FROM t_language
WHERE la_fk_iobj= iobj_pk_id and la_language='F';
IF (descshortE is not NULL) and (descshortD is not NULL) and
(descshortF is not NULL) and (desclongE is not null) and
(desclongD is not null) and (desclongF is not null) then
Seite 117
--***if all Languages are present, check if METADATA is present,too:***
--Get the Number of records from the tables t_iobjkyf and t_iobjcha
SELECT Count(*) As IOBJCHACount INTO intCountCHA FROM T_IOBJCHA
WHERE cha_fk_iobj= iobj_pk_id ;
SELECT Count(*) As IOBJKYFCount INTO intCountKYF FROM T_IOBJKYF
WHERE kyf_fk_iobj= iobj_pk_id ;
--IF:
IF intCountCHA = 1 THEN
--ready to create IOBJ in SAP BW (FBE)!
strReturn :='CHA';
ELSIF intCountKYF = 1 THEN
strReturn := 'KYF';
ELSIF intCountCHA = 0 and intCountKYF = 0 THEN
strReturn:= 'noMetadata';
ELSE
strReturn:='ERROR';
END IF;
--*************************************************************
--if one item is missing, tell the user (return value)
ELSIF descshortE is NULL or descshortD is NULL or descshortF is NULL or
desclongE is null or desclongD is null or desclongF is null then
strReturn := 'noLanguage';
ELSE
strReturn := 'fehler';
END IF;
ELSIF intCountLanguage <= intNumberLang THEN
strReturn := 'noLanguage';
-- not enough records in t_language
ELSE
strReturn := 'noLanguage';
-- another mistake
END IF;
return strReturn;
END
Seite 118
II. Abkürzungsverzeichnis
VWFSAG
Volkswagen Financial Services AG
SAP BW
SAP Business Information Warehouse
SAP R/3
SAP Realtime System, Version 3
ABAP
AllgemeinerBerichts-Aufbereitungsprozessor,
Programmiersprache für SAP-Anwendungen
PSA
Persistant Staging Area
ODS
Operational Data Store
IOBJ
InfoObject
GUI
Graphical User Interface
HTML
Hypertext Markup Language
XML
Extensible Markup Language
SQL
Structured Query Language
XSL
XML Stylesheet Language
DTD
Document Type Definition
XSD
XML Schema Definition
CSS
Cascading Stylesheets
DOM
Document Object Model
DML
Data Manipulation Language
SQL
Structures Query Language
(C-)LOB
(Character-) Large Object
ADO
ActiveX Data Objetcs
IIS
Internet Information Services
J2EE
Java 2 Enterprise Edition
TREX
Text Retrieval and Classification
Seite 119
III. Literaturverzeichnis
Kaptitel 1:
[VWint2-04] VWFSAG
T
T
Organisationshandbuch der VWFSAG, Intranet der VWFSAG, 2004
Kapitel 2:
[Buc98]
Rüdiger Buck-Emden
T
T
Die Technologie das SAP R/3 Systems, Addison Wesley, 1998, ISBN 3 8273
1379 1, S.110
[Reu04]
T
Reuse, Svend
T
Data Warehouse, 2004,
http://www.lehrer-online.de/dyn/bin/420778-421140-2-dwh_merkblatt.pdf,
HTU
UTH
16.11.2004
[Kle04]
T
Klein, Raimund,
T
Erklärung diverser Begriffe des SAP BW- Systems, 2004
http://www.raimund-klein.de/index.html, 15.11.2004
HTU
UTH
[VWint1-03]
T
T
Semrau, Frank
SAP Business Information Warehouse, Intranet der VWFSAG
Dateiname: FKS BW Präsentation.ppt
[CoWo01] Computerwoche
T
T
Plattner: "ABAP und Java sind künftig gleichberechtigt", 2001
http://www.computerwoche.de/index.cfm?pageid=258&artid=30848&main_id
HTU
=30848&category=157&currpage=1&type=detail&kw=
Seite 120
UTH
[CoWo04]
T
SAP
Computerwoche
T
baut
Partnerschaft
mit
Microsoft
erheblich
aus,
15.05.2004,
http://www.computerwoche.de/index.cfm?pageid=254&artid=60892&type=de
HTU
tail&kw=sap%20webservices, 16.11.2004
UTH
[NetLex]
T
T
Net-Lexikon
Stichwort: Data-Warehouse, 16.11.2004
http://www.net-lexikon.de/Data-Warehouse.html
HTU
UTH
[Meh03]
T
Mehrwald, Christian
T
SAP Business Information Warehouse, Architektur, Konzeption,
Implementierung
dpunkt-Verlag, 2003, ISBN 3-89864-179-1 (BW G 803)
[See01]
T
Seemann, Achim et.al.
T
SAP Business Information Warehouse
SAP Press, 2001, ISBN 3934358411 (in Abt. I-SEB)
[MySAP01] Jens Krüger
T
T
Fallstudie mySAP.com, 28.01.2002
http://www.wiwiss.fu-berlin.de/php/suhl/referate/SAP.PDF, 16.11.2004
HTU
UTH
Kapitel 3:
[SAPHlp] SAP
T
T
Dokument als Online-Dokumentation, 2004,
http://help.sap.com/saphelp_sem320bw/helpdata/de/5e/f1f73a11e18449e10
HTU
000000a11402f/content.htm, 16.11.2004
UTH
Kapitel 4:
Seite 121
[Wol03]
T
Wolf, Frank
T
SAP Web Application Server
dpunkt-Verlag, 2003, ISBN 3-89864-214-3 (CS J 241)
[Pro02]
T
Prodise, Jeff
T
Entwicklerbuch Microsoft .NET
Microsoft Press, 2002, ISBN 3-87063-642-1
[The03]
T
Theobald, Patrick
T
SAP R/3 Kommunikation mit RFC und Visual Basic
Vieweg Verlag , ISBN 3-528-05878-1
[SAPConn02]
T
T
SAP
SAP .NET-Connector Version 1.0, 2002.
http://www.microsoft-sap.com/docs/dotnetconnector.nov02.pdf, 16.11.2004
HTU
UTH
[Lin03]
T
Thomas Lindner
T
Oracle 9.2 XML Datenbanken, 2002/03,
http://www.imn.htwk-leipzig.de/~kudrass/Lehrmaterial/Oberseminar/2002HTU
03/10.ppt;
UTH
16.11.2004
T
[Ora]
Oracle Referenz
http://downloadwest.oracle.com/docs/cd/B10501_01/appdev.920/a96612/d_xmlge2.htm
T
T
HTU
UTH
[W3C]
T
T
World Wide Web Consotium
XML Path Language (XPath) W3C Work Draft, 29.10.2004,
http://www.w3.org/TR/xpath20/, 16.11.2004
HTU
T
UTH
[Mül]
T
Prof. Gerriet Müller
SQL Tutorium, Jahr unbekannt
Seite 122
http://horatio.wiwi.uni-frankfurt.de/sql/intro.html, 16.11.2004
HTU
UTH
[Mo01]
T
Monadjemi, P.; Groth, F.
T
Visual Basic.net, Markt und Technik, ISBN 3-8272-6041-8, 2001, S.61
[DowNET]
T
SAP
T
Download .NET Connector
http://www.sap.com/services/servsuptech/smp/, 16.11.2004
HTU
UTH
[DowJRE]
T
Sun
T
Download Java Runtime Environment
http://java.sun.com/j2se/1.4.2/download.html, 16.11.2004
HTU
UTH
[Mono]
T
Das Mono-Projekt
T
Offizielle Seite des Mono-Projektes (Open Source-Alternative zu MS.NET)
http://www.mono-project.com/about/index.html, 09.12.2004
HTU
UTH
[Bri03]
T
Brink, Sylvia
T
Erstellung einer Intranetanwendung unter .NET mit Datenbankanbindung“,
Studienarbeit, FH Braunschweig/Wolfenbüttel, 2002-03, S.6
Kapitel 5:
[Kel03]
T
Keller, Krüger
T
ABAP Objects, SAP Press, ISBN 3-934358-37-3, 2003, S.254
Kapitel 6:
[Ora] s. Kapitel 4
T
T
Kapitel 7:
[DowTrv]
T
T
Microsoft
Seite 123
Download IE-Websteuerelemente für MS.NET
http://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=
HTU
fac6350c-8ad6-4bca-8860-8a6ae3f64448, 09.12.2004
UTH
[SAPWeav] SAP
T
T
Plattform-Interoperabilität von SAP NetWeaver mit IBM Websphere und
Microsoft .NET, 2003
http://www.sap.com/germany/media/50063160.pdf, 09.12.2004
HTU
UTH
[MsIEWeb]
T
T
Microsoft
Internet Explorer WebControls Überblick über IE-Webcontrols, 2004
http://msdn.microsoft.com/workshop/webcontrols/overview/overview.asp,
HTU
UTH
09.12.2004
[Beats]
T
Beats Biblionetz
T
Definition des Begriffs Geschäftsprozess, 2003
http://beat.doebe.li/bibliothek/w01327.html, 09.12.2004
HTU
UTH
Zitiert aus: H. R: Hansen, G. Neumann im Buch Wirtschaftinformatik I im Text
H
H
Planung, Entwicklung und Betrieb von Informationssystemen (1978)
H
H
[Bal99]
T
Balzert, Heide
T
Lehrbuch der Objektmodellierung,Spektrum Akademischer Verlag ,ISBN:
3827402859, 1999, S.62
[Oes97] Oesterreich, Bernd
T
T
Objektorientierte Softwareentwicklung mit der Unified Modeling Language,
ISBN 3-486-23999-6, 1997, S.87
[Gal] Galileo Netlexikon
http://www.galileocomputing.de/glossar/gp/anzeige-8502/FirstLetter-G,
HTU
UTH
09.12.2004
Seite 124
[Bal2000]
T
T
Helmut Balzert,
Lehrbuch der Softwaretechnik, Spektrum Akademischer Verlag, ISBN
3827403014, S. 335
[SoKo] Software-Kompetenz
T
T
Gliederung einer Anwendungsfallbeschreibung, 2001-2004
http://www.software-kompetenz.de/?6131, 09.12.2004
HTU
UTH
Anmerkung:
Internetlinks können bei Aufruf nicht mehr aktuell sein.
Seite 125
IV. Abbildungsverzeichnis
Abbildung 1-1: Organisationsstruktur Informatik VWFS ................................. 5
Abbildung 2-1- Produktanalyse .................................................................... 11
Abbildung 2-2: Architektur des SAP BW ...................................................... 13
Abbildung 2-3: Datenfluss ............................................................................ 16
Abbildung 2-4. einfaches Bsp. einer additiven Fortschreibung .................... 18
Abbildung 2-5: Star-Schema ........................................................................ 19
Abbildung 2-6: m:n-Beziehung InfoCube-InfoObject .................................... 22
Abbildung 2-7: Beispiel einer Hierarchie ..................................................... 23
Abbildung 3-1: Dokumentationen im BW ..................................................... 25
Abbildung 4-1: Baumdarstellung eines XML-Dokuments ............................. 33
Abbildung 4-2: XML-Dokument-Anzeige per XSLT ...................................... 37
Abbildung 4-3: DataGrid-Beispiel ................................................................. 46
Abbildung 4-4: Aufbau der Dokumentationsverwaltung ............................... 49
Abbildung 5-1: Auswahl der SAP Proxy-Klasse ........................................... 51
Abbildung 5-2: Der NET Connector Assistent (Logon) ................................. 51
Abbildung 5-3: Der NET Connector Assistent 2 (FuBa-Auswahl)................. 52
Abbildung 5-4: SE16, Tabelle RSDIOBJT .................................................... 53
Abbildung 5-5: Funktionsbaustein RFC_READ_TABLE .............................. 54
Abbildung 5-6: DataGrid mit Tabelleninhalt .................................................. 57
Abbildung 5-7: Datenbanktabellen ............................................................... 59
Abbildung 6-1: mainIOBJ.aspx; Front-End ................................................... 69
Abbildung 6-2: Generierung von HTML- Dokumentationen ......................... 70
Abbildung 6-3: RSD1, Anzeige des InfoObject s .......................................... 75
Abbildung 7-1: Aktivitätsdiagramm ............................................................... 80
Abbildung 7-2: Treeview .............................................................................. 90
Abbildung 7-3: Inhalt von T_Node und T_Page .......................................... 92
Abbildung 7-4: vollständige URL mit IFrames .............................................. 93
Abbildung 7-5: IFrame in der Dokumenationsverwaltung ............................. 93
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
UT
TU
TU
UT
TU
UT
TU
UT
TU
UT
Seite 126
V. Begriffserklärungen erstellter Programmteile
Oracle-Tabellen
Tabellenname
Inhalt/
T_CHARACTE
Alle Characteristics (Ausprägungen) des InfoObjects (z.B.
RISTIC
N= New, O= Old)
T_IOBJ
Haupttabelle mit den Parametern, die für alle InfoObjects
gelten
T_IOBJCHA
Metadaten der Merkmale (Characters)
T_IOBJKYF
Metadaten der Kennzahlen (Keyfigures)
T_LANGUAGE
alle Kurz- und, technische und betriebswirtschaftliche
Beschreibungen,
XML-
Dokumentationen,
Langbeschreibung in diversen Sprachen (z. Zt. English,
Deutsch und Französisch)
T_LINGUA
alle Sprachen, in denen eine Dokumentation erstellt
werden soll
T_NODE
alle Knoten des Treeview-Steuerelements zur Navigation
zu den entsprechenden Seiten (-> T_Page)
T_ODS
Wird in Zukunft Haupttabelle für ODS-Objects sein und ist
über T_Language mit T_IOBJ verbunden, da ODS-Objects
und InfoObjects eine n:n- Beziehung haben.
T_PAGE
Enthält alle ASPX-Seiten der Dokumentationsverwaltung
T_ROLE
Enthält die Rollen Developer, Supervisor, User und
Customer. Jeder Anwender des Programms gehört in
Zukunft einer dieser Rollen an
T_SOURCESY
alle
STEM
InfoObject Daten bezieht (Kredis, Leasis und SAS)
T_STATUS
Status, in dem sich ein InfoObject befindet, z.B. von wem
es
Quellsystene
bereits
(Sourcesystems),
freigegeben
wurde
aus
und
ob
denen
sich
Dokumentation schon im SAP BW-System befindet
Seite 127
das
die
Oracle-Procedures und Functions
Procedure/ Function
Aufgabe
F_Check_create_iobj
Überprüft vor Anlage des InfoObjects im SAP BWSystem, dass alle für die Anlage notwendigen Daten
vorhanden sind. Wenn z.B. die Kurzbeschreibung
fehlt, bekommt der Anwender einen Hinweis.
F_Checkifdescriptions Überprüft vor Anlage der InfoObject-Documentation
im
SAP
BW-System,
ob
die
notwendigen
Beschreibungen in allen Sprachen vorhanden sind
F_Create_Xsldocs
Aus dem in der Tabelle T_Language (Spalte
La_xmldoc) gespeicherten XML-Dokument wird per
XSL-Document
(Tabelle
T_XSL)
ein
HTML-
Dokument generiert, welches an das aufrufende
Visual-Basic Programm zurückgegeben wird
P_Insert_Languages
Wird
durch
Aufruf
Tr_iobj_language_insert
des
ausgelöst,
Trigger
fügt
die
Procedure für jede Sprache einen neuen Datensatz
in T_LANGUAGE ein
P_Create_Xmldocs
Erstellt
aus
den
T_IOBJKYF/CHA,
Oracle-Tabellen
T_IOBJ,
T_LANGUAGE,
T_CHARACTERISTIC und T_SOURCESYSTEM für
jede Sprache ein XML-Dokument und speichert
dieses
in
der
Spalte
La_xmldoc der
Tabelle
T_LANGUAGE
Oracle-Views
View
Aufgabe
V_CreateIOBJCha
Enthält die Spalten der Tabellen, die für die Anlage
eines Merkmals (Characters) nötig sind
V_CreateIOBJKyf
Enthält die Spalten der Tabellen, die für die Anlage
Seite 128
einer Kennzahl (Keyfigure) nötig sind
Oracle-Triggers
Trigger
Aufgabe
Tr_[Tabellenname]
Wird vor Einfügen eines Datensatzes ausgelöst. Holt
z.B. Tr_IOBJ
den aktuellen Wert aus der Sequenz S_DB_Autowert
und fügt ihn in den Primary Key der Tabelle ein
Tr_IOBJ_Language_I Wird nach Einfügen eines Datensatzes in T_IOBJ
nsert_Rows
ausgelöst. Für jede Sprache wird eine Datensatz in
T_LANGUAGE eingefügt.
SAP- Funktionsbausteine
Funktionsbaustein
Aufgabe
BAPI_RFC_IOBJ_C
legt ein InfoObject im SAP BW-System an
REATE
RSOD_DOC_META_ legt eine Dokumentation zu dem angegebenen BWCHANGE
Objekt (hier: InfoObject) an
RFC_READ_TABLE
Liest den Inhalt aus der/ den angegebene(n)
Spalte(n) der SAP-internen Tabelle(n) aus
Erstellte Proxies
Proxy
Für Funktionsbaustein
RFC_READ_TABLE
RFC_READ_TABLE
PROXY_RSOD_DOC_META_CHANGE
RSOD_DOC_META_CHANGE
BAPI_IOBJ_CREATE
BAPI_RFC_IOBJ_CREATE
Seite 129
Herunterladen