132
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)

Diplomarbeit - OPUS 4 · 2014-12-05 · Seite 2 mit Schwerpunkt auf die in Oracle programmierten Funktionen und Prozedu-ren und auf den mit VB umgesetzten Code erläutert. In Kapitel

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

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. Aufbau der Arbeit ................................................................................................................1 1.2. Motivation ...........................................................................................................................3 1.3. Volkswagen Financial Services ...........................................................................................4

2. Die Firma SAP und das SAP BW ........................................................ 6 2.1. Die Firma SAP und ihre Produkte ......................................................................................6 2.2. Die MySAP-Technologie ....................................................................................................7 2.3. Das Data Warehouse............................................................................................................9 2.4. SAP BW ............................................................................................................................11

2.4.1. Aufbau/ Architektur ......................................................................................................11 2.4.2. Datenfluss .....................................................................................................................14 2.4.3. InfoObject .....................................................................................................................20

3. Ist- und Sollzustand........................................................................... 25 3.1. IST-Zustand .......................................................................................................................25 3.2. SOLL-Zustand ...................................................................................................................28

4. Einsatz von Software-Techniken ....................................................... 31 4.1. XML ..................................................................................................................................31

4.1.1. Grundlagen XML..........................................................................................................32 4.1.2. Die Stylesheets CSS/ XSL ............................................................................................35 4.1.3. Weitere XML-Begriffe .................................................................................................37 4.1.4. Gründe für die Entscheidung für XML.........................................................................38

4.2. Oracle-Datenbank ..............................................................................................................40 4.3. .NET Technologie..............................................................................................................43 4.4. Visual Basic.net .................................................................................................................44 4.5. ADO.net.............................................................................................................................45 4.6. ASP.net / Webserver..........................................................................................................45 4.7. Anbindung an das SAP BW: Der SAP .NET-Connector..................................................46 4.8. Die TREX-Suchmaschine..................................................................................................47 4.9. Aufbau der Dokumentationsverwaltung ............................................................................48

5. 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. Erläuterung des Geschäftsprozesses ..................................................................................66 6.2. Überblick/ Hauptseite ........................................................................................................68 6.3. Erstellung von HTML-Dokumentationen aus relationalen Daten .....................................69

6.3.1. Anlage einer XML-Dokumentation in der Datenbank..................................................70 6.3.2. Transformation mittels XSL in das HTML-Format ......................................................72 6.3.3. Anzeige der Dokumentationen......................................................................................72 6.3.4. Anlage der Dokumentationen im SAP BW-System......................................................73

6.4. Anlegen eines InfoObjects im SAP BW-System...............................................................73 6.4.1. Vollständigkeitsprüfung................................................................................................74 6.4.2. Anlage des InfoObjects per Funktionsbaustein im SAP BW........................................74

7. 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. Versionisierung, Historisierung .........................................................................................85 7.3. Benutzereinstellungen........................................................................................................86 7.4. Migration vorhandener Daten in die Oracle-Datenbank....................................................87 7.5. Erweiterung um zusätzliche BW-Objekte..........................................................................88 7.6. Einführung einer weiteren Sprache....................................................................................89 7.7. Seitenaufbau/ Treeview .....................................................................................................89

7.7.1. Einführung und Installation ..........................................................................................89 7.7.2. Erklärung der Datenbank-Tabellen ...............................................................................91

7.8. Anzeige einer Online-Dokumentation ...............................................................................93 7.9. TREX/ SAP Enterprise Portal............................................................................................94

8. Schlusswort ....................................................................................... 96 8.1. Fazit ...................................................................................................................................96 8.2. Danksagung .......................................................................................................................98 8.3. 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-Ware-

house Produkt, das SAP Business Information Warehouse (SAP BW), wer-

den 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 Soft-

wareprogramm werden in Kapitel 4 die geeigneten Softwaretools und Tech-

niken knapp erläutert. Das Unterkapitel XML ist aufgrund der hohen Rele-

vanz 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 Archivie-

rung 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 Dokumenta-

tion im BW beschrieben, Weiterhin werden die Implementierungstechniken

Seite 1

Seite 2

mit Schwerpunkt auf die in Oracle programmierten Funktionen und Prozedu-

ren 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 3

1.2. Motivation

Anlass der Diplomarbeit ist eine zunehmende Unübersichtlichkeit über die

Zusammenhänge der BW-Objekte des SAP Business Information Ware-

house-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 Entwicklungsabtei-

lungen, 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 betriebswirtschaftli-

che 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 zu-

sammenzutragen, auf Basis dieser ein Konzept zu erstellen und dieses an-

satzweise 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ätssiche-

rung geschaffen werden. Von Vorteil ist zudem eine einheitliche Spei-

cherung 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 4

Für diese Hauptanforderungen wird ein Konzept erarbeitet, in dem die not-

wendigen Leistungsmerkmale, die die Dokumentenverwaltung haben soll,

herausgestellt, aufbereitet und in Zusammenhang gebracht werden. Basie-

rend 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 Kun-

denservice 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. Personal-

Steuerung).

Die Service Center sind Auftragnehmer der Market Center, die in diesem

Falle als Auftraggeber bzw. Kunde auftreten. Die Kosten werden intern ver-

rechnet. 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 Sys-

tementwicklung 1-4. Die Systementwicklung 4, in der sich auch die Abteilung

I-SEB befindet, entwickelt und wartet die Systeme der Unternehmenssteue-

rung. I-SEB beschäftigt sich mit dem SAP Business Information Warehouse,

ein Data Warehouse-System, das Daten aus verschiedenen Systemen zent-

ral zur Auswertung bereitstellt. Die Abteilung besteht aus etwa 15 internen

und 20 externen Mitarbeitern. Ihr Aufgabenbereich ist es, im Auftrag der

Seite 5

Fachbereiche Systeme und Programme für das BW zu entwickeln und die

Funktionalität und Korrektheit bestehender BW-basierter Systeme zu ge-

währleisten.

Weiterhin ist die Systementwicklung 1 für die Finanzierungs- und Leasing-

produkte, 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. TP

1PT

Abbildung 1-1: Organisationsstruktur Informatik VWFS

TP

1PT [VWint2-04]

Seite 6

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 Be-

deutung 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 erfolg-

reich betriebswirtschaftliche Standard-Anwendersoftware her. SAP bedeutet

ursprünglich „Systeme, Anwendungen und Produkte“.

Bei dem ersten Produkt der SAP AG handelte es sich um eine Finanzbuch-

haltungssoftware mit dem Namen RF. Die Software, die in Assembler pro-

grammiert wurde und unter DOS lief, ist auch unter dem Namen R/1 (Real-

time-System, Version 1) bekannt. Für den Nachfolger R/2 wurde zur besse-

ren 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 Interpreter-

sprache.

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äsenta-

tionsschicht, der Applikationsschicht und der Datenbankschicht. Weiterhin

gibt es eine Webserver-Schicht, so dass SAP-Anwendungen aus dem Web-

browser aufgerufen werden können.

Verwendet wurden in dem R/3 System auch erstmals relationale Datenban-

ken, einheitliche grafische Oberflächen und plattformunabhängige Anwen-

dungen.

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 7

Business Objekten und der objektorientierten Weiterentwicklung von ABAP

mit ABAP Objects ergänzt. Das Laufzeitsystem des R/3 selbst ist in den Pro-

grammiersprachen 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 betriebswirtschaftli-

che Anwendungsbereiche wie Controlling, Anlagenwirtschaft, Materialwirt-

schaft, Vertriebslogistik, Qualitätsmanagement und einige mehr abgedeckt.

Die bekanntesten SAP-Module sind die Module für die Bereiche Kundenver-

waltung (SAP CRM, Customer Relationship Management), Finanzbuchhal-

tung (SAP FI, Financial Accounting), Data Warehouse (SAP BW) und Bank-

kunden (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 unterneh-

mensweiter betriebswirtschaftlicher Client/ Server-Anwendungen. TP

2PT In dem

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-Applikation TP

3PT. Diese ist im Begriff, das Sys-

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-

TP

2PT [Buc98]

TP

3PT [MySAP01]

Seite 8

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 Webanwendun-

gen 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-Anwendun-

gen erstellt werden TP

4PT“. Die Computerwoche schrieb weiter, dass die „Die

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-Infra-

struktursoftware Netweaver mit Microsofts .NET.“TP

5PT.

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 einma-

liges Einloggen (single-sign-on) kann ein SAP-Anwender auf alle Anwendun-

gen, 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.

TP

4PT [CoWo01]

TP

5PT [CoWo04]

Seite 9

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 rele-

vanten Daten aus den Datenquellen zu einem gemeinsamen konsistenten

Datenbestand zusammengeführt werden.“ TP

6PT

Das Konzept des Data-Warehouse-Systems wurde 1992 von Immon einge-

fü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.”TP

7PT TP

8PT

Subject-oriented bedeutet, dass der Informationsbedarf von Entscheidungs-

trä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 basie-

rende 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

TP

6PT [NetLex]

TP

7PT [Reu04]

TP

8PT [VWint1-03]

Seite 10

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 reagie-

ren. 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-Sys-

tems:

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 ver-

kauft 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, Pro-

dukt). Aus dieser Abfrage resultiert die Anzahl der verkauften Produkte (Pro-

duktmenge), aufgeteilt nach Region und Zeit.

Seite 11

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-Ob-

jekte beschrieben.

Die Client / Server- Architektur des SAP BW teilt sich in folgende drei

Schichten auf: Datenbankschicht, Applikationsschicht und Präsentations-

schicht (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 Ein-

satz sind - MS-SQL-Server und DB2 eingesetzt. Diese Daten können im

2.4.1. Aufbau/ Architektur

Seite 12

ABAP-Dictionary eingesehen werden. Das ABAP-Dictionary ist das Meta-

data-RepositoryTP

9PT für die Datenstrukturen des SAP BW. TP

10PT Im ABAP-Dictionary

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 Fel-

dern bestehen. Die technischen Eigenschaften eines Feldes werden dabei

als Domäne und die semantischen als Datenelement bezeichnet. Zum Bei-

spiel 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 tech-

nisch 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 Applikations-

schicht zur Verarbeitung weitergeleitet werden.

TP

9PT Repository (engl.) = Behälter, Aufbewahrungsort

TP

10PT [Meh03], S.16

Seite 13

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 Bild-

schirmbild 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 Admi-

nistrator 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 Datenbereit-

stellungsprozess 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 ausge-

wertet 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 14

Monat mit den am meisten verkauften Produkten eines Jahres. Das Repor-

ting erfolgt mittels QueriesTP

11PT auf Stamm- und Bewegungsdaten.

Im SAP BW gibt es die drei Daten: Stammdaten, Bewegungsdaten sowie die

aufzubereitenden Metadaten. Stammdaten sind die Daten eines Unterneh-

mens, die sich im Laufe der Zeit kaum oder nicht verändern. Dieses können

z.B. Informationen über Kunden oder Produkte (z.B. Produktname, Produkt-

nummer) 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 Stammda-

ten 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 BW-

Objekt besteht aus technischen und fachlichen Metadaten. Die technischen

Metadaten sind z.B. das Datenformat (INT, CHAR …) bzw. die Ablagestruk-

tur 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.

Um Daten auswerten zu können, werden diese aus Quellsystemen extrahiert

und im BW-System zur Datenanalyse modifiziert und aufbereitet. Dieser Pro-

TP

11PT Query (engl.) = Abfrage; basierend auf der SQL-Syntax

2.4.2. Datenfluss

Seite 15

zess wird als Staging bezeichnet. In dem Staging-Prozess durchlaufen die

Daten vier logische Ebenen TP

12PT:

• Extraction Layer TP

13PT

• Inflow Layer

• Transformation Layer

• Integration Layer

Die einzelnen Layer sind die Schnittstellen zwischen den oben genannten

Schichten (s. Abbildung 2-2). Der Extraction Layer ist die Schnittstelle zwi-

schen 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 Daten-

bankschicht 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äsentations-

schicht.

Zur Verdeutlichung des Prozesses der Datenaufbereitung erfolgt eine detail-

lierte 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-

TP

12PT [Meh03]

TP

13PT Layer (engl.) = Schicht, Ebene

Seite 16

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 17

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 Metadaten TP

14PT.

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 quellsystem-

spezifischer 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 Über-

tragungsregeln gelangen die quellsystemspezifischen Daten der DataSource

in die InfoSources. Sie werden technisch mit Mapping, Zuweisung von Kon-

stanten, 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 Kommunikati-

onsstruktur bezeichnet.

TP

14PT [Meh03], S.18

Seite 18

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 Daten-

ziel-spezifisch, d.h. es wird für jedes Datenfeld eines Datenzieles die Fort-

schreibungsart festgelegt. Jede InfoSource kann dabei Daten in mehrere

Datenziele fortschreiben. Mögliche Fortschreibungsarten sind: keine Fort-

schreibung, Ü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 19

piert und optimiert wurde. Ein InfoCube deckt einen betriebswirtschaftlichen

Bereich ab (z.B. Vertrieb ) und ist prädestiniert für das Reporting aus hoch-

verdichteten, unveränderlichen Daten.

Weiterhin gibt es ODS-Objekte, die den Vorteil der sofortigen Verfügbarkeit

haben (transaktionale ODS-Objekte), aber auch den Nachteil der schlechte-

ren Performance und Qualitätssicherung bei größeren Datenmengen aufwei-

sen. ODS-Objekte dienen der Speicherung von Daten, die sich schnell

verändern. Das ODS-Objekt hat den Vorteil des Delta-Mechanismus, wes-

wegen 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 Faktenta-

belle 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 20

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 gemeinsa-

men Kontext darstellen.

Eine weitere Möglichkeit der Analyse und des Reporting ist das Anlegen

eines InfoSets. Im BW-System der Volkswagen Bank werden zumeist Info-

Sets verwendet, da dort auf ODS-Objekten selber nicht analysiert wird. Info-

Sets haben wie Multiprovider keine eigene physische Datenhaltung, sondern

erhalten temporär zum Zeitpunkt der Analyse die nötigen Daten aus den

angegebenen (ODS-) Objekten.

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

2.4.3. InfoObject

Seite 21

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 hinzuge-

fügt werden. Diese Dimension ist das Zeitmerkmal. Die Dimension Zeit-

merkmal 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 Aus-

lieferung bereits konfigurierten InfoObjects bezeichnet. Man kann aus-

schließlich Zeitmerkmale des Business Content benutzen, das Anlegen eige-

ner 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 22

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 darge-

stellt werden.

Begriffserklärungen Im Folgenden werden einige Begriffe TP

15PT erklärt, welche in Zusammenhang mit

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 „Auf-

traggeber“ hat zum Beispiel die Attribute „Auftraggeberland“ und „Aktienge-

sellschaft“. 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

15PT [Kle04]

Seite 23

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 Kundenstamm-

texten gefüllt.

Abbildung 2-7: Beispiel einer Hierarchie

Klammerung (Merkmal)

Mehrere Merkmale können miteinander zu einem neuen Merkmal geklam-

mert 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 Stammda-

ten dieses so definierten Merkmals sind völlig unabhängig von den Stamm-

daten 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 24

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 InfoOb-

jects Kunde.

Aggregation (Kennzahl)

Die Aggregation wird für die Verdichtung von Daten benötigt. Zumeist wer-

den Werte aufsummiert. Zum Beispiel verdichtet das Produktaggregat die

Kennzahlen pro Produkt-Nr und Zeit.

Seite 25

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 26

Um nicht jede Dokumentation manuell anlegen zu müssen, gibt es bisher

eine von Mitarbeitern selbst erstellte Access-Datenbank. Diese wird aller-

dings 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 modifi-

ziert 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 Doku-

mentationen nur ein Satz

• es gibt keine Zuständigkeiten für das Anlegen und Pflegen von Doku-

mentationen

• Ä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 27

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 Design-

mö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-In-

formationen zu dem Datenfluss, zur Herkunft und Verwendung eines BW-

Objektes. 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-Dokumenta-

tion 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 zueinan-

der ist hierarchisch verlinkt. Diese Online-Dokumentation soll später in die

Dokumentation eingebaut werden.

Die Struktur der Online-Dokumentation ist in drei Teile eingeteiltTP

16PT:

• allgemeine Angaben (Erstellungsdatum, technischer Name, System,

Beschreibung (kurz), Beschreibung (lang) )

• BW-Objekt- Dokumentation (s.o.)

• Links zu Online-Dokumentationen abhängiger BW-Objekte

TP

16PT [SAPHlp]

Seite 28

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 Mitarbeiterbefra-

gungen entstehen die Anforderungen an die neue Dokumentationsverwal-

tung.

Da zu Beginn dieser Arbeit kaum Informationen über das Arbeitsgebiet vor-

lagen, wurden die internen Mitarbeiter teils per Interview, teils per Fragebo-

gen (Anhang TAT, S.99) befragt. Aufgrund der großen Anzahl, erfolgte die

Befragung der externen Mitarbeiter ausschließlich per Fragebogen TP

17PT. So

konnten diverse Kritikpunkte des Ist-Zustands, Wünsche zu deren Verbesse-

rung und Informationen über die Mitarbeiter (Bedarf an Dokumentenverwal-

tung, 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 29

• zu der Einführung eines Change Request-Verfahrens bei Anmerkun-

gen 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 fol-

gen die groben Anforderungen des SOLL-Zustands. Es soll eine plattformu-

nabhä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 wer-

den. 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

• TEinführung von Zuständigkeiten bzw. Rollen: T

Fachbereichsverantwortlicher bzw. Auftraggeber(Customer), zustän-

diger Entwickler (Developer), Supervisor (Kontrolle der Dokumentatio-

nen) und normaler Anwender ohne Sonderstatus

• Einführung von Berechtigungen (Lesen, Schreiben, Ändern, Freige-

ben) analog zu den Zuständigkeiten

• Anzeige aktueller Informationen und Anmerkungen zu einem BW-Ob-

jekt

• komfortable Navigation zwischen den in Bezug stehenden

Dokumentationen und Meta-Daten der BW-Objekte

• Für die Beschaffung von Informationen besteht Holpflicht; eine Email-

Benachrichtigung erfolgt nur, wenn ein Mitarbeiter im Rahmen des

Erstellprozesses für eine Dokumentation zuständig ist

• Einrichtung eines Versionsmanagements erwünscht

Seite 30

• Die Darstellung des Datenflusses per Web Applikation Server, bzw.

die Einbindung der bestehenden Seiten

• Im Falle der Dokumentationserstellung ist die Erstellung einer webba-

sierten Anwendung nötig, damit sich im Außendienst befindliche Mit-

arbeiter die Anwendung von jedem internetfähigen Endgerät nutzen

können

• Einführung eines Prozesses zur Erstellung eines BW-Objektes, wel-

cher 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 not-

wendig. Diese müssen diverse Kriterien wie z.B. die Plattformunabhängig-

keit, die Schnittstelle zu einer Datenbank, den Austausch der Dokumentatio-

nen mit der SAP-Datenbank und die grafische Darstellung der Dokumentati-

onen erfüllen.

In Kapitel 4 werden diese Techniken und Tools näher beschrieben.

Seite 31

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 grundlegen-

der und wichtigster Bestandteil der Dokumentationsverwaltung ist.

Seite 32

XML (Extensible Markup Language) ist seit 1998 ein Standard des W3CTP

18PT.

Seinen Ursprung hat XML in SGML (Standard Generalized Markup Langu-

age).

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 Leis-

tungsumfang 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 &gt; geschrieben werden

• Kommentare: <!-- -->

Sämtlicher Text, der kein Markup ist, bildet die Zeichendaten des Doku-

ments.

XML-Dokumente beginnen mit einer XML-Deklaration (Prolog):

T<? xml version="1.0" encoding="ISO-8859-15"?>

In dieser stehen die verwendete XML-Version und ggf. die Kodierungs- de-

klaration 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

18PT W3C: World Wide Web Consortium

4.1.1. Grundlagen XML

Seite 33

Zwischen diesen Tags befinden sich die Kindelemente, die wiederum Kind-

elemente 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 Ele-

mente. 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"?> T<Seminar> <Name> </Name> <Teilnehmer> <Anzahl></Anzahl>

Seite 34

</Teilnehmer> <Treffen> </Treffen> </Seminar>

Beispiel 4-1: XML-Dokument

Wohlgeformtheit Ein XML-Dokument muss wohlgeformt sein, d.h. es muss sich an die syn-

taktischen 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 Kodie-

rungsdeklaration

• 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 darge-

stellt. 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 35

<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.

XML ist sehr gut für den plattformunabhängigen Austausch von Daten geeig-

net. Weiterhin können XML-Dokumente auch zur Ansicht bereitgestellt wer-

den. 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 Styles-

heets. 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 wer-

den. 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

4.1.2. Die Stylesheets CSS/ XSL

Seite 36

vor. Die Regeln, wie ein Dokument transformiert wird, werden mit Templates

aufgestellt, die mit XPath definiert werden. XPath selektiert Teile eines XML-

Dokuments mittels Pfadangaben. Das Beispiel unten zeigt ein simples XSL-

Stylesheet. 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 37

Abbildung 4-2: XML-Dokument-Anzeige per XSLT

Vor- und Nachteile CSS/ XSL Das CSS-Stylesheet ist einfacher zu erlernen, hat aber begrenzte Möglich-

keiten. 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.

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 angege-

ben 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).

4.1.3. Weitere XML-Begriffe

Seite 38

Die DTD Spezifikationen wurden vom W3C Konsortium vorgeschlagen, wäh-

rend die XML Schemas auf einen Vorschlag von Microsoft basieren aber

kürzlich vom W3C Konsortium vereinheitlicht und standardisiert wurden.

TDOM T (Document Object Model):

DOM gibt ein Dokument in Form eines Baumes wieder. Die meisten XML-

Parser implementieren einen von zwei API’s: entweder DOM oder SAX

(Simple API for XML).

TXPathT (XML Path Language):

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 2003TP

19PT und

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 Doku-

mentationsverwaltung tendieren zu dem dokumentenorientierten XML, da sie

letztendlich zur Ansicht genutzt werden und von unterschiedlicher Struktur

sind.

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

19PT [W3C]

4.1.4. Gründe für die Entscheidung für XML

Seite 39

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 Datenbearbei-

tung, 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 Browser-

Darstellung 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 verschiede-

nen Stylegebungsmöglichkeiten XSL eingesetzt. Glücklicherweise unterstüt-

zen SAP und Microsoft die beiden Formate und es gibt in dem .NET Frame-

work und in der Oracle-Datenbank zahlreiche Klassen und Methoden zu ihrer

Bearbeitung.

Seite 40

4.2. Oracle-Datenbank

Oracle ist ein objekt-relationales Datenbanksystem. Bei relationalen Daten-

banken werden per SQL-Anweisungen (Structured Query Language) Anfra-

gen an die Datenbank ausgeführtTP

20PT. Mit der DDL (Data Definition Language)

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 Oracle-

Instanz für die Zwischenspeicherung von XML-Dokumenten und die perma-

nente 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 Entwicklungsumge-

bung 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:

• TLOB (Large Object):T LOB: CLOB (Character LOB), BLOB (Binary

LOB). Methode, eine große Menge (bis zu 4GB) unstrukturierter Daten

in einer Tabellenspalte zu speichern

• TRelational:T Verteilung der Elemente/ Attribute auf rel. Tabellen (ohne

Tags), Datenorientiert

• TDecomposed (strukturiert):T geringerer Speicherbedarf, weil Tags

nicht gespeichert werden müssen, Zugriff aus einzelne Elemente

schneller. Liegt ein XML-Schema vor, kann man eine XML-Dokumen-

tation in relationale Tabellen zerlegen und umgekehrt. XMLTYPE:

neu entwickelter Datentyp, der das Speichern und Abfragen von XML-

Dokumenten möglich macht. XMLType ist intern als CLOB definiert,

TP

20PT [Mül]

Seite 41

Dokumentenorientiert (unregelmäßige Struktur), Composed (unstruk-

turierte 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 abzu-

wiegen, 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 zusammenTP

21PT,

• das Original-Dokument geht nicht verloren (XMLTYPE beinhaltet

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-Dokumen-

ten 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 5).

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 42

Diverse Funktionen und Packages Funktionen: ExistsNode(): Überprüfung der Existenz eines Knotens per XPath,

Extract(): extrahiert einen oder mehrere Knoten, die der XPath-

Angabe 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 Da-

ten

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-Do-

kument 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 relatio-

nal abgelegten Daten problemlos möglich ist.

TP

21PT ISO-Standard 9075 -14:2003: definiert, wie SQL mit XML zusammenarbeitet

Seite 43

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 Marke-

tingbegriff, 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. TP

22PT

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#TP

23PT, J#, Oberon.net u.a.

• 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 Klas-

senbibliothek. Die CLR des .NET Frameworks ist, genau wie die

Virtual Machine von Java, plattformunabhängig. Die CLR führt den TP

22PT [Mo01]

Seite 44

Code aus. Bevor ein Programm von der CLR ausgeführt werden kann,

wird der Code in IL (Intermediate Language), eine plattformunabhän-

gige Zwischensprache, umgewandelt.

• Aufgrund der Plattformunabhängigkeit können Compiler oder eine

Implementierungen von .NET erstellt werden. Im Rahmen des Mono-

Projektes TP

24PT werden daher sowohl ein Compiler für C# als auch ein

.NET Framework für Linux entwickelt, die beide als Open Source ver-

fü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-Ser-

vice und Konsolenanwendungen, einen Designer für Formulare, aus-

fü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 Funktio-

nen 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.

TP

23PT [Bri03]

TP

24PT [Mono]

Seite 45

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 Datenban-

ken realisiert. In der .Net-Klassenbibliothek befinden sich die von ADO ver-

wendeten 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 ASP-

Seite 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 46

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 Steuerele-

ment 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, Informa-

tionen und Geschäftsprozesse technologie- und organisationsübergreifend

zusammenführt. Alle zukünftigen Lösungen werden auf SAP NetWeaver auf-

bauen.

Der SAP NetWeaver ermöglicht die vollständige Interoperabilität mit Micro-

soft .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 Windowsanwen-

dungen, 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 47

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 ein-

gesetzt werden, welches für WebServices verwendet wird.

Systemvoraussetzungen und Installation Um mit dem SAP.NET-Connector arbeiten zu können ist das Visual Stu-

dio.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 her-

untergeladen werden TP

25PT . Zusätzlich ist die Installation der Java Runtime Envi-

ronment TP

26PT notwendig. Nach der erfolgreichen Installation dieser beiden

Komponenten steht bei der Erstellung eines neuen Projektes im Visual Stu-

dio das ICON .SAP Connector Class im Visual Studio .NET zur Auswahl. Bei

dieser Klasse handelt es sich um eine Proxyklasse. Ein Proxy ist ein Pro-

gramm, das zwischen HServer H und HClient H vermittelt und das nur in C# gene-

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 Suchma-

schine für das Metadata Repository des BW existiert und TREX (Text Retrie-

val 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 spe-

ziellen Begriffsabfragen. Außerdem ermöglicht der TREX-Server verschie-

dene Text-Mining-Funktionen (exakte Suche, Phrasensuche, Boolesche

Suche, Fuzzysuche, linguistische Suche, Wildcard-Suche). Text Mining ist TP

25PT [DowNET]

Seite 48

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 pro-

duktiv im Einsatz ist. Diverse Testinstallationen sind jedoch vorhanden. Da

der Aufwand des Customizing von TREX als sehr hoch und somit teuer ein-

geschätzt wurde (ca. 40 Personentage), musste der Einsatz von TREX auf

das Jahr 2005 verschoben werden. TREX wird dann über das SAP Enter-

prise 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, wel-

ches 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 ASPX-

Seiten 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

26PT [DowJRE]

Seite 49

Abbildung 4-4: Aufbau der Dokumentationsverwaltung

Seite 50

5. Anzeigen und Speichern von Daten

Damit der Benutzer diverse Informationen zu InfoObjects und ihren Doku-

mentationen einsehen kann, ist die Anzeige von im SAP-System befindlichen

Daten notwendig. Hierfür wird der SAP .NET-Connector verwendet. Weiter-

hin 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-Connec-

tors 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.

Um ein neues Projekt anzulegen, wird im Visual Studio die SAP Connector

Class ausgewählt (Abbildung 5-1).

5.1.1. Erstellung einer Proxy-Klasse

Seite 51

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 SAP-

System 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 52

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.

Für das Auslesen von Inhalten einer SAP-internen Tabelle wird der Funk-

tionsbaustein RFC_READ_TABLE verwendet. Funktionsbausteine sind die

mit Abstand am häufigsten verwendete Methode, um anwendungsübergrei-

fende wieder verwendbare Softwarekomponenten für ein SAP-System abzu-

bilden. Dieser Funktionsbaustein hat die Aufgabe die Inhalte von SAP-Ta-

bellen 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)

5.1.2. Kommunikation von .NET per SAP-Funktionsbaustein RFC_READ_TABLE

Seite 53

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 inner-

halb eines SAP-Systems als auch von anderen SAP-Systemen und Fremd-

systemen per RFC (Remote Function Call) erfolgen. Da dieser Funktions-

baustein RFC-fähig ist, kann er von Außen, in diesem Fall mittels des SAP

.NET-Connector, aufgerufen werden TP

27PT.

Im Deklarationsteil werden diverse Parameter angegeben: die Importpara-

meter, welche beim Aufruf des Funktionsbausteins übergeben werden müs-

sen, die Exportparameter, die nach Durchlauf des Programms an den Auf-

rufenden 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 einge-

schlossen. Im Quelltext wird der Inhalt der gewünschten Tabelle mittels einer

Query ausgelesen und alle Inhalte in die Ausgabetabelle DATA geschrieben.

TP

27PT [Kel03]

Seite 54

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 Da-

tensätze (Rows, Zeilen)

Rowskips Anzahl der Zeilen, die übersprungen

werden sollen

Data gelesene Daten (out), d.h. Inhalt der

Spalten

Seite 55

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.

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 Funktionsbau-

stein 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) eingese-

hen 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.

5.1.3. Verwendung eines Proxys mit VB

Seite 56

Weiterhin wird eine neue Instanz der SAP.Connector.Destination-Klasse er-

zeugt. 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 SAP-

System 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 Proxy-

Klasse kommuniziert, bewirkt wiederum den Aufruf des Funktionsbausteins

RFC_READ_TABLE. War dieser Aufruf erfolgreich, gibt der Funktionsbau-

stein 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 zuge-

ordnet 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 Funktionsbau-

steins 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 57

Die Anzeige von InfoObjects aus der SAP-internen Tabelle RSDIOBJT sieht

folgendermaßen aus:

Abbildung 5-6: DataGrid mit Tabelleninhalt

Im Function Builder (Transaktion se37) können alle Funktionsbausteine des

SAP-Systems eingesehen werden. Die für diese Arbeit verwendeten Funk-

tionsbausteine 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

5.1.4. Verwendung von Funktionsbausteinen und Tabellen

Seite 58

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

Die Tabelle T_IOBJ (Abbildung 5-7) ist die Mastertabelle der Oracle-Daten-

bank. In dieser Tabelle werden die Daten gespeichert, die für jedes InfoOb-

ject 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:n-

Beziehung).

Weiterhin kann ein InfoObject mehrere Quellsystemeinträge besitzen. Somit

besteht zwischen der Tabelle T_IOBJ und T_SOURCESYSTEM eine 1:n-

Beziehung. Um einen Überblick über alle Tabellen der Oracle-Datenbank

vwfsdw1e zu bekommen, kann die Grafik im Anhang (Anhang C, S.107)

eingesehen werden.

5.2.1. Logischer Datenbankentwurf

Seite 59

Abbildung 5-7: Datenbanktabellen

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 VARCHAR2(5) DEFAULT 'true', hasdescriptionmiddle VARCHAR2(5) DEFAULT 'false', hasdescriptionshort VARCHAR2(5) DEFAULT 'true', infoobjecttype VARCHAR2(9) DEFAULT NULL infoarea VARCHAR2(9), iobj_fk_projectpart NUMBER(9,0),

5.2.2. Physischer Datenbankentwurf

Seite 60

iobj_fk_reference NUMBER(9,0), iobj_format VARCHAR2(30), iobj_annotation VARCHAR2(100), iobj_fk_status NUMBER(3,0) DEFAULT 0 iobj_isiobjkyf NUMBER(1,0), iobj_isiobjcha NUMBER(1,0), iobj_bwappl VARCHAR2(9) DEFAULT 'BW' iobj_iscreatedinbw 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 Datenin-

tegrität. Dazu gehören Primärschlüssel, referentielle Constraints und einfa-

che feldgebundene Prüfungen. Auch sind sie wichtig, um einen Wertebereich

Seite 61

zu ergänzen oder um die Abhängigkeit von Tabellen untereinander festzule-

gen.

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 Pro-

gramm, 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 62

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 Pro-

cedure nur mit den entsprechenden Rechten ausführen.

Sie sind auch performanter als Visual Basic Code. Bei mehreren SQL-An-

weisungen 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 langu-

age/ 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 vorge-

stellt. 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 Manipu-

lation Language) verwendet. Zu Testzwecken sollen später (Kapitel 6) alle

Daten eines InfoObjects in die Tabellen eingefügt werden. In dem unten zu

Seite 63

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 dop-

pelten Eintragungen in T_Language kommt und nicht bei jeder Änderung

überprüft werden muss, ob der Datansatz schon existiert. Nachdem der Trig-

ger 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 64

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-Bezie-

hung, da ein InfoObject Daten aus keinem oder ein- oder mehreren Quell-

systemen bezieht. Für das Test-InfoObject werden zwei Datensätze ange-

legt:

Seite 65

-- 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 BW-

System angelegt werden. Die Speicherung gilt als Grundlage für die Erstel-

lung der Dokumentation und der Anlage des InfoObjects im SAP BW-System

in Kapitel 6.

Seite 66

6. Prozess der Erstellung eines InfoObjects und

seiner Dokumentation im SAP BW-System

Inhalt dieses Kapitels ist die Beschreibung der einzelnen Schritte der Pro-

zesserstellung eines InfoObjects und seiner Dokumentation im SAP BW-

System.

InfoObjects müssen oftmals bei neuen Projekten oder deren Weiterentwick-

lung 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 wer-

den 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 BW-

System 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 (Kontrol-

leur) angehört.

Tritt der Geschäftsfall ein, dass ein neues InfoObject im Rahmen eines Pro-

jektes 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 67

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 68

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 69

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 70

Abbildung 6-2: Generierung von HTML- Dokumentationen

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

6.3.1. Anlage einer XML-Dokumentation in der Datenbank

Seite 71

Dbms_xmlgen TP

28PT aus den relational gespeicherten Daten XML-Dokumente

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-XML-

Dokument, 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 XML-

Fragmente 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

28PT [Ora]

Seite 72

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.

Eine Dokumentation wird zur Ansicht im SAP BW-System in HTML

transformiert. Die Transformation eines XML-Dokuments in ein HTML-

Dokument 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.

Wird der Button Show Doc. ausgewählt, öffnet sich die Seite

ShowDocumentation und es wird die gewünschte Dokumentation im HTML-

Format angezeigt. Dieses geschieht durch Aufruf der bereits erwähnten

Oracle-Function F_create_XSLDOCS. Um eine Oracle-Function aus einem

Visual Basic-Programm aus aufrufen zu können, wird die Klasse

System.Data.OracleClient (ab .NET Framework 1.1) 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.

6.3.2. Transformation mittels XSL in das HTML-Format

6.3.3. Anzeige der Dokumentationen

Seite 73

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 Oracle-

Function 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.

6.3.4. Anlage der Dokumentationen im SAP BW-System

Seite 74

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.

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

6.4.1. Vollständigkeitsprüfung

6.4.2. Anlage des InfoObjects per Funktionsbaustein im SAP BW

Seite 75

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 76

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 77

• 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.

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. TP

29PT

Da der Geschäftsprozess Erstellung einer InfoObject-Dokumentation sehr

umfangreich ist, ist er auch gleichzeitig ein eigener Meilenstein. „Ein

Geschäftsprozess ist eine Zusammenfassung von fachlich

zusammenhängenden Aktivitäten, die notwendig sind, um einen

TP

29PT [Beats]

7.1.1. Realisierung der Rollen

Seite 78

Geschäftsfall zu bearbeiten. Die einzelnen Aktivitäten können organisatorisch

verteilt sein, stehen aber gewöhnlich in zeitlichen und logischen

Abhängigkeiten zueinander“ TP

30PT

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“ TP

31PT Zudem führt ein Anwendungsfall immer

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.

Geschäftsprozess: TAnlegen einer InfoObject-DokumentationT

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:

TP

30PT [Gal]

TP

31PT [Oes97]

7.1.2. Geschäftsprozess

Seite 79

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“ TP

32PT

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 notwendig, da verschiedene

Entscheidungskriterien nach Beendigung einer 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

32PT [Bal2000]

Seite 80

Abbildung 7-1: Aktivitätsdiagramm

Seite 81

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“TP

33PT

Um einen Anwendungsfall zu beschreiben, entwirft man in der

Softwaretechnik eine Anwendungsfallbeschreibung TP

34PT (siehe unten). Diese

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

benötigte Daten: alle Daten, die für die Bezeichnung des BW-

Objekts nach der Namenskonvention nötig sind

TP

33PT [Bal99]

TP

34PT [SoKo]

7.1.3. Anwendungsfälle

Seite 82

Vorbedingung: Developer möchte ein BW-Objekt anlegen

Nachbedingung im

Positivfall: (BW-Objekt ist nicht doppelt) Anwendungsfall 2 tritt

ein

Nachbedingung im

Negativfall: Optionaler Abbruch des Prozesses

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 existieren

bereits im SAP BW: Anzeige einer Liste

dieser BW-Objekte. 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

Daten:

Die technische Beschreibung

Seite 83

Vorbedingung: Anwendungsfall 1 war erfolgreich; Developer

hat entsprechende Rechte

Nachbedingung im

Positivfall:

Anwendungsfall 3 tritt ein

Nachbedingung im

Negativfall:

-

Interaktionsschritte im

Standardfall (Idealfall):

Developer füllt alle Muss-Felder aus

Developer gibt frei, indem er E-Mail sendet

Szenarios: Developer vergisst ein oder mehrere Muss-

Felder 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 BW-

Objekt 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 BW-

Objekt

Für die Auslösung

benötigte Daten:

Kurz- und Langbeschreibung (in allen Sprachen)

und betriebswirtschaftliche Beschreibung (in

Deutsch und Englisch)

Vorbedingung: Anwendungsfall 2 wurde erfolgreich ausgeführt

Nachbedingung im Anwendungsfall 4 tritt ein

Seite 84

Positivfall:

Nachbedingung im

Negativfall:

-

Interaktionsschritte im

Standardfall (Idealfall):

Customer füllt alle Muss-Felder aus

Customer gibt frei, indem er E-Mail sendet

Szenarios: Customer vergisst ein oder mehrere Muss-

Felder 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

Daten:

keine

Vorbedingung: Anwendungsfall 3 war erfolgreich

Nachbedingung im

Positivfall:

Anlage von BW- Objekt und Dokumentation

im SAP BW (FBE)

Nachbedingung im

Negativfall:

-

Interaktionsschritte im

Standardfall (Idealfall):

Supervisor gibt frei

Seite 85

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 BW-

Tabelle 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 86

(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, muss der Parameter

I_Overwrite_Mode des 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 87

• 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 88

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 89

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-Objekt-

Texten 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

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

7.7.1. Einführung und Installation

Seite 90

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-Homepage TP

35PT

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

35PT [DowTrv]

Seite 91

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 istTP

36PT

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

36PT[MsIEWeb]

7.7.2. Erklärung der Datenbank-Tabellen

Seite 92

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 FallTP

37PT.

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

37PT Der VB-Code wurde von dem Auszubildenden Holger Roedig implementiert

Seite 93

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 Online-

Dokumentation zu erhalten, muss der Anwender zuvor seinen Namen und

sein Passwort für den WebApplication-Server eingeben.

Seite 94

<asp:HyperLink id="lnkBeispiel" style="Z-INDEX: 102; LEFT: 19px; POSITION: absolute; TOP: 59px" runat="server" NavigateUrl= "Hhttp://sap-fbp.vwfsag.de:8010/sap/bw/doc/metadata/page%3dBW_O_D%26SystemID%3d FBP112%26ClassID%3dIOBJ%26ID%3d0country%26objectVersion%3dAH" Target="main">0country</asp:HyperLink>

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.

• TIntegration in das Portal:T Die Integration von .NET- Anwendungen

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 Front-

End-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 […]“TP

38PT.

TP

38PT [SAPWeav]

Seite 95

• TIntegration von TREX: T Da die Dokumentationsverwaltung ein mit

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 96

8. Schlusswort

8.1. Fazit

Zum Ende erläutere ich Vorgehensweisen, Probleme und Chancen der Ent-

stehung 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-Zu-

stand störte und welche Vorstellungen und Wünsche sie bezüglich der

Dokumentationen hatten. Bei diesen Nachforschungen traten recht unter-

schiedliche 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 Sollkonzep-

tes eine Möglichkeit gefunden werden, Daten vor Änderungen im BW in einer

Datenbank zu speichern, auf die mit einer geeigneten Umgebung und Pro-

grammiersprache für Webanwendungen zugegriffen werden kann. Von der

gewählten Plattform Microsoft .NET konnte zudem die Kommunikationsmög-

lichkeit des SAP .NET-Connectors genutzt werden, um mit dem SAP BW-

System 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 ver-

schiedenen 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-Da-

tenbank eingerichtet. Dabei wurde die Entscheidung getroffen, dass die

Daten zunächst relational und erst später als XML-Dokumente gespeichert

werden.

Seite 97

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 Doku-

mentationsverwaltung 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 Erfah-

rungen 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 wer-

den.

Seite 98

8.2. Danksagung

Ich danke allen Mitarbeitern der Volkswagen Bank und besonders den Mitar-

beitern 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 wur-

den.

Braunschweig, den

Sylvia Brink

Seite 99

I. Anhang

A Bedarfsanalyse

U Bedarfsanalyse

Dokumentenverwaltung in SAP BW Entwickler 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: UDokumentationU

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 BW-Objekten. 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 100

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 Begründung: • Zuständigkeiten sind notwendig 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 101

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 Welche?: Begründung: • nicht notwendig 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 102

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 103

• 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 Begründung: • nicht sinnvoll 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 Begründung: • bedingt notwendig • gar nicht notwendig Bemerkungen: 10. Zusätzliche Anmerkungen/ Vorschläge:

Seite 104

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 105

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 106

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 107

C Oracle-Datenbank dwown

Seite 108

D Front-End

Seite 109

Eingabemasken Daten für die Dokumentation

Metadaten Keyfigures (Kennzahlen) Characteristics (Merkmale)

(2) Sourcesystems (Quellsysteme)

(3) Characteristics (Ausprägungen)

(1) Descriptions (Beschreibungen)

Seite 110

InfoObject-Dokumentation (ShowDocumentation)

Seite 111

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 112

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 113

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 114

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 115

<CH_DEFINITION>high-level interst category</CH_DEFINITION> <CH_ANNOTATION>for privileged people </CH_ANNOTATION> </characteristic> </characteristics> </IOBJDoc> </SAPBW>

Seite 116

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 117

H Function F_CheckCreateIOBJ

FUNCTION F_CHECKCREATEIOBJ (iobj_pk_id IN NUMBER ) RETURN varchar IS --Variables intCountCHA NUMBER(2,0); intCountKYF NUMBER(2,0); descshortE Varchar(20); desclongE Varchar(50); descshortD Varchar(20); desclongD Varchar(50); descshortF Varchar(20); desclongF Varchar(50); strReturn VARCHAR(100); intCountLanguage NUMBER(2,0); intNumberLang 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 118

--***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 119

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 120

III. Literaturverzeichnis Kaptitel 1: T[VWint2-04] TVWFSAG

Organisationshandbuch der VWFSAG, Intranet der VWFSAG, 2004

Kapitel 2: T[Buc98] T Rüdiger Buck-Emden

Die Technologie das SAP R/3 Systems, Addison Wesley, 1998, ISBN 3 8273

1379 1, S.110

T[Reu04] T Reuse, Svend

Data Warehouse, 2004,

HTUhttp://www.lehrer-online.de/dyn/bin/420778-421140-2-dwh_merkblatt.pdf UTH,

16.11.2004

T [Kle04] TTKlein, Raimund,

Erklärung diverser Begriffe des SAP BW- Systems, 2004

HTUhttp://www.raimund-klein.de/index.html UTH, 15.11.2004

T[VWint1-03] T Semrau, Frank

SAP Business Information Warehouse, Intranet der VWFSAG

Dateiname: FKS BW Präsentation.ppt

T [CoWo01] T Computerwoche

Plattner: "ABAP und Java sind künftig gleichberechtigt", 2001

HTUhttp://www.computerwoche.de/index.cfm?pageid=258&artid=30848&main_id

=30848&category=157&currpage=1&type=detail&kw= UTH

Seite 121

T[CoWo04] T Computerwoche

SAP baut Partnerschaft mit Microsoft erheblich aus, 15.05.2004,

HTUhttp://www.computerwoche.de/index.cfm?pageid=254&artid=60892&type=de

tail&kw=sap%20webservices UTH, 16.11.2004

T[NetLex] T Net-Lexikon

Stichwort: Data-Warehouse, 16.11.2004

HTUhttp://www.net-lexikon.de/Data-Warehouse.htmlUTH

T[Meh03] T Mehrwald, Christian

SAP Business Information Warehouse, Architektur, Konzeption,

Implementierung

dpunkt-Verlag, 2003, ISBN 3-89864-179-1 (BW G 803)

T[See01] T Seemann, Achim et.al.

SAP Business Information Warehouse

SAP Press, 2001, ISBN 3934358411 (in Abt. I-SEB)

T[MySAP01] T Jens Krüger

Fallstudie mySAP.com, 28.01.2002

HTUhttp://www.wiwiss.fu-berlin.de/php/suhl/referate/SAP.PDF UTH, 16.11.2004

Kapitel 3:

T[SAPHlp] T SAP

Dokument als Online-Dokumentation, 2004,

HTUhttp://help.sap.com/saphelp_sem320bw/helpdata/de/5e/f1f73a11e18449e10

000000a11402f/content.htmUTH, 16.11.2004

Kapitel 4:

Seite 122

T[Wol03]T Wolf, Frank

SAP Web Application Server

dpunkt-Verlag, 2003, ISBN 3-89864-214-3 (CS J 241)

T[Pro02] T Prodise, Jeff

Entwicklerbuch Microsoft .NET

Microsoft Press, 2002, ISBN 3-87063-642-1

T [The03] T Theobald, Patrick

SAP R/3 Kommunikation mit RFC und Visual Basic

Vieweg Verlag , ISBN 3-528-05878-1

T[SAPConn02] T SAP

SAP .NET-Connector Version 1.0, 2002.

HTUhttp://www.microsoft-sap.com/docs/dotnetconnector.nov02.pdf UTH, 16.11.2004

T[Lin03] T Thomas Lindner

Oracle 9.2 XML Datenbanken, 2002/03,

HTUhttp://www.imn.htwk-leipzig.de/~kudrass/Lehrmaterial/Oberseminar/2002-

03/10.ppt UTH;

T16.11.2004

T[Ora]T Oracle Referenz HTUhttp://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96612/d_xmlge2.htmUTH

T [W3C]T World Wide Web Consotium

XML Path Language (XPath) W3C Work Draft, 29.10.2004,

HTUhttp://www.w3.org/TR/xpath20/ UTH, 16.11.2004

T [Mül]T Prof. Gerriet Müller

SQL Tutorium, Jahr unbekannt

Seite 123

HTUhttp://horatio.wiwi.uni-frankfurt.de/sql/intro.htmlUTH, 16.11.2004

T[Mo01]T Monadjemi, P.; Groth, F.

Visual Basic.net, Markt und Technik, ISBN 3-8272-6041-8, 2001, S.61

T[DowNET]T SAP

Download .NET Connector

HTUhttp://www.sap.com/services/servsuptech/smp/ UTH, 16.11.2004

T[DowJRE] TSun

Download Java Runtime Environment

HTUhttp://java.sun.com/j2se/1.4.2/download.htmlUTH, 16.11.2004

T[Mono]T Das Mono-Projekt

Offizielle Seite des Mono-Projektes (Open Source-Alternative zu MS.NET)

HTUhttp://www.mono-project.com/about/index.html UTH, 09.12.2004

T[Bri03]T Brink, Sylvia

Erstellung einer Intranetanwendung unter .NET mit Datenbankanbindung“,

Studienarbeit, FH Braunschweig/Wolfenbüttel, 2002-03, S.6

Kapitel 5:

T[Kel03] T Keller, Krüger

ABAP Objects, SAP Press, ISBN 3-934358-37-3, 2003, S.254

Kapitel 6: T[Ora]T s. Kapitel 4

Kapitel 7: T[DowTrv]T Microsoft

Seite 124

Download IE-Websteuerelemente für MS.NET

HTUhttp://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=

fac6350c-8ad6-4bca-8860-8a6ae3f64448 UTH, 09.12.2004

T[SAPWeav] T SAP

Plattform-Interoperabilität von SAP NetWeaver mit IBM Websphere und

Microsoft .NET, 2003

HTUhttp://www.sap.com/germany/media/50063160.pdf UTH, 09.12.2004

T[MsIEWeb] T Microsoft

Internet Explorer WebControls Überblick über IE-Webcontrols, 2004

HTUhttp://msdn.microsoft.com/workshop/webcontrols/overview/overview.asp UTH,

09.12.2004

T[Beats] T Beats Biblionetz

Definition des Begriffs Geschäftsprozess, 2003

HTUhttp://beat.doebe.li/bibliothek/w01327.htmlUTH, 09.12.2004

Zitiert aus: H. R: Hansen, G. Neumann im Buch HWirtschaftinformatik IH im Text

HPlanung, Entwicklung und Betrieb von InformationssystemenH (1978)

T[Bal99] T Balzert, Heide

Lehrbuch der Objektmodellierung,Spektrum Akademischer Verlag ,ISBN:

3827402859, 1999, S.62

T[Oes97] T Oesterreich, Bernd

Objektorientierte Softwareentwicklung mit der Unified Modeling Language,

ISBN 3-486-23999-6, 1997, S.87

[Gal] Galileo Netlexikon HTUhttp://www.galileocomputing.de/glossar/gp/anzeige-8502/FirstLetter-GUTH,

09.12.2004

Seite 125

T[Bal2000] T Helmut Balzert,

Lehrbuch der Softwaretechnik, Spektrum Akademischer Verlag, ISBN

3827403014, S. 335

T[SoKo] T Software-Kompetenz

Gliederung einer Anwendungsfallbeschreibung, 2001-2004

HTUhttp://www.software-kompetenz.de/?6131 UTH, 09.12.2004

Anmerkung: Internetlinks können bei Aufruf nicht mehr aktuell sein.

Seite 126

IV. Abbildungsverzeichnis

TUAbbildung 1-1: Organisationsstruktur Informatik VWFSUT ................................. 5 TUAbbildung 2-1- Produktanalyse UT .................................................................... 11 TUAbbildung 2-2: Architektur des SAP BWUT ...................................................... 13 TUAbbildung 2-3: DatenflussUT ............................................................................ 16 TUAbbildung 2-4. einfaches Bsp. einer additiven FortschreibungUT .................... 18 TUAbbildung 2-5: Star-SchemaUT ........................................................................ 19 TUAbbildung 2-6: m:n-Beziehung InfoCube-InfoObject UT .................................... 22 TUAbbildung 2-7: Beispiel einer HierarchieUT ..................................................... 23 TUAbbildung 3-1: Dokumentationen im BW UT ..................................................... 25 TUAbbildung 4-1: Baumdarstellung eines XML-DokumentsUT ............................. 33 TUAbbildung 4-2: XML-Dokument-Anzeige per XSLT UT ...................................... 37 TUAbbildung 4-3: DataGrid-BeispielUT ................................................................. 46 TUAbbildung 4-4: Aufbau der Dokumentationsverwaltung UT ............................... 49 TUAbbildung 5-1: Auswahl der SAP Proxy-KlasseUT ........................................... 51 TUAbbildung 5-2: Der NET Connector Assistent (Logon)UT ................................. 51 TUAbbildung 5-3: Der NET Connector Assistent 2 (FuBa-Auswahl)UT................. 52 TUAbbildung 5-4: SE16, Tabelle RSDIOBJTUT .................................................... 53 TUAbbildung 5-5: Funktionsbaustein RFC_READ_TABLEUT .............................. 54 TUAbbildung 5-6: DataGrid mit Tabelleninhalt UT.................................................. 57 TUAbbildung 5-7: Datenbanktabellen UT ............................................................... 59 TUAbbildung 6-1: mainIOBJ.aspx; Front-EndUT ................................................... 69 TUAbbildung 6-2: Generierung von HTML- Dokumentationen UT ......................... 70 TUAbbildung 6-3: RSD1, Anzeige des InfoObject sUT.......................................... 75 TUAbbildung 7-1: Aktivitätsdiagramm UT............................................................... 80 TUAbbildung 7-2: TreeviewUT .............................................................................. 90 TUAbbildung 7-3: Inhalt von T_Node und T_PageUT .......................................... 92 TUAbbildung 7-4: vollständige URL mit IFramesUT .............................................. 93 TUAbbildung 7-5: IFrame in der Dokumenationsverwaltung UT............................. 93

Seite 127

V. Begriffserklärungen erstellter Programmteile Oracle-Tabellen

Tabellenname Inhalt/

T_CHARACTE

RISTIC Alle Characteristics (Ausprägungen) des InfoObjects (z.B.

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

STEM alle Quellsystene (Sourcesystems), aus denen das

InfoObject Daten bezieht (Kredis, Leasis und SAS)

T_STATUS Status, in dem sich ein InfoObject befindet, z.B. von wem

es bereits freigegeben wurde und ob sich die

Dokumentation schon im SAP BW-System befindet

Seite 128

Oracle-Procedures und Functions Procedure/ Function Aufgabe

F_Check_create_iobj Überprüft vor Anlage des InfoObjects im SAP BW-

System, 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 des Trigger

Tr_iobj_language_insert ausgelöst, fügt die

Procedure für jede Sprache einen neuen Datensatz

in T_LANGUAGE ein

P_Create_Xmldocs Erstellt aus den Oracle-Tabellen T_IOBJ,

T_IOBJKYF/CHA, 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 129

einer Kennzahl (Keyfigure) nötig sind

Oracle-Triggers Trigger Aufgabe

Tr_[Tabellenname]

z.B. Tr_IOBJ

Wird vor Einfügen eines Datensatzes ausgelöst. Holt

den aktuellen Wert aus der Sequenz S_DB_Autowert

und fügt ihn in den Primary Key der Tabelle ein

Tr_IOBJ_Language_I

nsert_Rows

Wird nach Einfügen eines Datensatzes in T_IOBJ

ausgelöst. Für jede Sprache wird eine Datensatz in

T_LANGUAGE eingefügt.

SAP- Funktionsbausteine Funktionsbaustein Aufgabe

BAPI_RFC_IOBJ_C

REATE legt ein InfoObject im SAP BW-System an

RSOD_DOC_META_

CHANGE legt eine Dokumentation zu dem angegebenen BW-

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