Professional Documents
Culture Documents
Studiengang Wirtschaftsinformatik
1. Projektarbeit
Im Rahmen der Prüfung zum Bachelor of Science
Kurs: WWI07B1
Ausbildungsbetrieb: SAP AG
Abgabedatum: 25.08.2008
Eidesstattliche Erklärung:
Ich erkläre hiermit eidesstattlich, dass ich die vorliegende Arbeit selbstständig und
ohne Benutzung anderer als der angegebenen Hilfsmittel angefertigt habe. Aus den
benutzten Quellen direkt oder indirekt übernommene Gedanken habe ich als solche
kenntlich gemacht.
Diese Arbeit wurde bisher in gleicher oder ähnlicher Form oder auszugsweise noch
X
Marco Hammel
Student der Wirtschaftsinformatik
marco.hammel@sap.com
1
XML-Export im SAP DataWarehouse 25. August 2008
Inhaltsverzeichnis:
Eidesstattliche Erklärung: ........................................................................................................................ 1
1. Erläuterung der Problemstellung .................................................................................................... 4
2. Allgemeine Informationen in SAP Business Intelligence und Data Warehouse.............................. 6
2.1. InfoProvider des Data Warehouse .......................................................................................... 8
2.2. Persistente Datenspeicherung im Data Warehouse ............................................................... 9
2.3. Der Datentransfer innerhalb des Data Warehouse............................................................... 10
2.4. Aufbau der OpenHub Destination im Data Warehouse ........................................................ 10
3. Extensible Markup Language in Business Applikationen .............................................................. 12
4. Entwicklung der XML-Export-Funktionalität in der OpenHub Destination ................................... 13
4.1. Analyse der Programmlogik .................................................................................................. 14
4.1.1. Analyse der Paketstruktur ............................................................................................. 14
4.1.2. Analyse von Programmablauflogik und Klassendesign ................................................. 16
4.2. Spezifikation der XML-Struktur für BI-Datenobjekte ............................................................ 18
4.3. Erstellen des Erweiterungsdesigns ........................................................................................ 18
4.4. Klassenstruktur der Klasse CL_RSB_FILE_TYPE_XML ............................................................ 19
4.5. Logik der CONVERT Methode ................................................................................................ 20
4.6. Design der grafischen Benutzeroberfläche ........................................................................... 21
4.7. Erweiterung der Benutzeroberfläche und der Menüführung ............................................... 22
5. Ausblick über die Entwicklung von Business Intelligence und Data Warehousing ....................... 22
5.1. BI in Services? ........................................................................................................................ 23
5.2. Was bringt die Zukunft den persistenten Datenobjekten? ................................................... 23
5.3. Erweiterung der XML-Export-Funktionalität in der OpenHub Destination ........................... 23
Anhang .................................................................................................................................................. 24
1. asXML-Beispiel für BI-Objekt: .................................................................................................... 24
2. Konvertierungsmethode der Klasse CL_RSB_FILE_TYPE_XML: ................................................. 27
3. Konstruktor der Klasse CL_RSB_FILE_TYPE_XML: ..................................................................... 29
4. Verwendungsdokumentation der Klasse CL_RSH_FILE_TYPE_XML:......................................... 29
Glossar: .................................................................................................................................................. 30
Literaturverzeichnis: .............................................................................................................................. 33
marco.hammel@sap.com
2
XML-Export im SAP DataWarehouse 25. August 2008
Abbildungsverzeichnis:
Abb. 1 BI und dessen Komponenten im Kontext des SAP NetWeaver (SAP AG, 2004) .......................... 6
Abb. 3 Schichten-Architektur eines Business Intelligence Systems (SAP AG, 2004) ............................... 7
Abb. 4 Die OHD als Schnittstelle zu nachgelagerten System (SAP AG, 2004) ....................................... 12
Abb. 5 Paketstruktur in SAP Netweaver ................................................................................................ 15
Abb. 6 Ausschnitt der Schnittstellenhierarchie des SXML Pakets ......................................................... 15
Abb. 7 Komprimiertes UML-Klassendiagramm Destinationsklassen, Darstellung der Lokalen
Schreibklasse ......................................................................................................................................... 16
Abb. 8 Auschnitt UML-Sequenzdiagramm ............................................................................................ 17
Abb. 9 Komprimiertes UML-Klassendiagramm der XML Konvertierungsklasse ................................... 19
Abb. 10 Methoden der Klasse CL_RSB_FILE_TYPE_XML in Darstellung der ABAP Workbench ............ 19
Abb. 11Attribute der Klasse CL_RSB_FILE_TYPE_XML in Darstellung der ABAP Workbench ............... 20
Abb. 12 Benutzeroberfläche der OHD für den Datenexport im CSV-Format........................................ 21
Abb. 13 Benutzeroberfläche der OHD für den Datenexport im XML-Format ....................................... 22
marco.hammel@sap.com
3
XML-Export im SAP DataWarehouse 25. August 2008
Die Qualität, der Auswertungen von Business Intelligence (BI)3-Systemen bekommt eine, für den
Erfolg von Unternehmen, abhängig von Produkt, Marktposition und Expansionsbestrebungen immer
größerer Bedeutung. Ein Unternehmen, das qualifiziertere, schnellere und kontrollierbarere
Entscheidungen trifft ist gegenüber seinen Mitkonkurrent im Vorteil. Bei i.d.R. immer kürzeren
Produktzyklen in vielen Märkten, kann eine Entscheidung für die Erschließung neuer Märkte vor der
Konkurrenz zu einer früheren oder besser vorbereiteten Marktpräsenz führt und einem u.U. damit
verbundenem besserem Ergebnis.
Viele Unternehmen bevorzugen es Analysen und Reports von BI-System als Dienstleistung
einzukaufen. Gründe dafür könnten eine unzureichende IT-Infrastruktur, z.B. ein ungenügender
Bestand an auswertungsfähigen Daten, das Fehlen von Experten zur Interpretation der Ergebnisse
eines BI-Systems, oder die kostenrechnerische Entscheidung, dass sich ein eigenes BI-System als für
das Unternehmen unrentabel erweist. Um dennoch nicht auf die Vorteile von BI verzichten zu
1
Siehe Glossar
2
Siehe Glossar
3
Siehe Glossar
marco.hammel@sap.com
4
XML-Export im SAP DataWarehouse 25. August 2008
müssen hat sich in diesem Bereich ein vielfältiger Dienstleistungsmarkt entwickelt, von umfassenden
Unternehmensberatung bis zum Vertrieb und der Erstellung von Betriebs- und marktwirtschaftlichen
Daten und Auswertungen. Dadurch entsteht Neben dem Wettbewerb der BI-Systeme im Bereich der
Auswertungs-Qualität und Performance auch ein anspruchsvolles Anforderungsprofil im Bereich der
Schnittstellenkompatibilität. Weshalb die Hersteller von BI-Software fortlaufend ihre Produkte an
neue Datenbank- und Formatstandards bezüglich Datenimport und Export anpassen müssen. Mit
dem kommenden SAP Netweaver4-Release 7.2, des Walldorfer Softwarehauses SAP AG soll deshalb
dem Kunden die Fähigkeit des Datenexports von BI-Daten auch im Extensible-Markup –Language
(XML)5 Format bereitgestellt werden. Bisher unterstützt das System auf Dateiebene den Export als
Comma-Separated-Value (CSV) 6-Format und als TEXT-Datei im American Standard Code for
Information Interchange (ASCII)7 kodiert. Diese Formate haben gegenüber XML den Nachteil
technische, oder semantische Informationen zu den Daten nicht in der gleichen Datei mitführen zu
können, da in diesen Formaten nur flache Daten-Hierarchien abgebildet werden können. Deshalb
besteht ein Datei-Export um Metadaten mitführen zu können in diesen Formaten aus 2 Dateien. Der
Kunde kann zwar mittels SAP fremder Anwendungen aus den beiden Dateien, von denen eine die
Attribute und die andere die zugehörigen semantischen Informationen trägt bereits eine XML
erzeugen. Das bedeutet jedoch Mehraufwand für:
Die Systemressourcen,
Ein ebenfalls wichtiger Aspekt ist der Marketingmehrwert, der durch die erweiterte
Exportfunktionalität entsteht und das Produkt für Neukunden interessanter machen könnte.
Aufgabe war es die Funktionalität der OpenHub Destination (OHD)8, einem Werkzeug des SAP Data
Warehouse (DWH)9-Systems, um die Funktionalität des XML-Exports auf Dateiebene zu erweitern.
4
Siehe Glossar
5
Siehe Glossar
6
Siehe Glossar
7
Siehe Glossar
8
Siehe Glossar
9
Siehe Glossar
marco.hammel@sap.com
5
XML-Export im SAP DataWarehouse 25. August 2008
Dafür musste ein Entwicklungszyklus zur Erweiterung der Back- und Frontendfunktionalität der OHD
durchgeführt werden, mit dem Ziel dem Kunden die Funktionalität auf UserInterface (UI) -Ebene in
vertrautem Umfeld und möglichst einfacher und klarer Nutzerführung zur Verfügung zu stellen. Das
Backend soll dabei die im Kapitel 2.4. beschriebenen technischen Anforderungen der OHD erfüllen.
Abb. 1 BI und dessen Komponenten im Kontext des SAP NetWeaver (SAP AG, 2004)
Das Data Warehouse (DWH) kann als Datenverwaltungssystem, bzw. Datenlager des BI-System
bezeichnet werden. Es hat die Aufgabe Daten in folgender Rheinfolge:
marco.hammel@sap.com
6
XML-Export im SAP DataWarehouse 25. August 2008
zu konsolidieren,
zu bereinigen,
physikalisch zu speichern,
zu verteilen,
Grundsätzlich beruht die Funktion eines DWH auf der in der folgenden Abbildung dargestellten
klassischen Schichten-Architektur der BI:
In dieser allgemeinen Darstellung ist das DWH als integrierter Bestandteil der Business Intelligence zu
betrachten. Der Datenfluss ist hier von unten nach oben nachzuvollziehen.
1. Aus einer Datenquelle, z.B. den Daten eines Produktivsystems werden Daten in persistente
Speicher kopiert.
2. Diese persistent gehaltenen Daten können in ein DWH übergeben und dort OLAP spezifisch
aufbereitet werden, oder an den Operational Data Store überführt werden. Dort bleiben sie
weiter in Form flacher transparenter Tabellen. Dieser wiederum kann seine Daten ebenfalls
in das DWH laden, oder Queries auf seiner Tabelle ausführen lassen und das Ergebnis
ausgeben.
3. Der Data Marts10, der in dieser Darstellung die eigentlichen BI-Logik zur Verfügung stellt,
erlaubt die im DWH modellierten Daten mittels mathematisch aufwendiger Berechnungen
10
Siehe Glossar
marco.hammel@sap.com
7
XML-Export im SAP DataWarehouse 25. August 2008
auf unterschiedliche Probleme und Fragestellungen hin zu untersuchen und die Ergebnisse
auszugeben.
Der hier beschriebene Aufbau entspricht dabei nicht in Gänze der Architektur des SAP Netweaver BI.
So übernimmt das SAP BW, was dem DWH entspricht alleinig, die Verwaltung von persistenten
Datenobjekten, bzw. der Export aus dem BI.
11
Siehe Glossar
marco.hammel@sap.com
8
XML-Export im SAP DataWarehouse 25. August 2008
- InfoSet: repräsentiert eine semantische Schicht über den oben genannten Infoprovidern, um
Berichte auf diesen Objekten zu erstellen bzw. auf deren Joins. InfoSets sind die
Infoprovider, die vom Query Designer, einem Werkzeug der BI-Suite verwendet werden
können um Queries aus BI-spezifischer Datensicht erstellen zu können.
dargestellt werden.
Die Data Source (DS)12, die dem BI in Folge die Daten bereits als betriebswirtschaftliche
Einheit zur Verfügung stellt z.B. selektiert in Bewegungs-, oder Stammdaten. Die
Analysewerkzeuge der BI-Suite erlauben es als Besonderheit der DS bereits bestimmte
Sichten auf ein DS-Objekt anzulegen und auszuführen. Dies erlaubt es weniger komplexe
Entscheidungsprozesse schneller mit Metadaten zu unterstützen, ohne das eine
aufwendigere Modellierung notwendig würde
Oder in ein Persistent Staging Area (PSA)13:, das ein unverändertes Abbild der Quelldaten im
BI in einer transparenten relationalen Datenbank anlegt, aber keine betriebswirtschaftliche
Logik pflegt.
12
Siehe Glossar
13
Siehe Glossar
marco.hammel@sap.com
9
XML-Export im SAP DataWarehouse 25. August 2008
Diese Datenobjekte sind Ausgangpunkt für die Modellierung von Infoprovidern des DWH.
Ein DTP kann sowohl manuell, oder in Prozessketten ausgeführt werden. So können Infoprovidern
erzeugten und in Zusammenspiel mit den Analyse Werkzeugen der BI-Suite, Analysen durchgeführt
und Reports erstellt, bzw. neu-, oder remodelliert werden, oder die Daten in unterschiedlichen
Darstellung mittels in Nachgelagerte Systeme exportiert werden. Den Export übernimmt dabei die
OpenHub Destination (OHD), die als Bestandteil des DWH die Daten des BI-Systems auf
unterschiedliche Zielsysteme verteilen kann.
Geringer Fehlerrate
Variabler Konfigurationsfähigkeit
Sie unterstützt dabei den Export in Datenbanken, Dateien und in Fremdanwendungen, z.B. ist die
Integration in Anwendungen des BI-Spezialisten Business Objects geplant. Die sich daraus
ergebenden möglichen technischen Zielsysteme sind Datenbankserver, Applikationsserver und
Workstations. Die OHD beherrscht dabei die Extraktion aller BI-Objekttypen, mit Ausnahme von
DataSources, die in Berücksichtigung der Schichten-Architektur und der stark eingeschränkten
14
Siehe Glossar
marco.hammel@sap.com
10
XML-Export im SAP DataWarehouse 25. August 2008
Modellierungsfähigkeit auch nicht als wertige BI-Objekt bezeichnet werden können (siehe Abb. 3).
Für die Extraktion von BI-Daten in Dateien stehen bis dato die Datei- Formate:
Zur Verfügung.
ABAP Serialization XML (asXML ): ist das standardmäßig verwendete SAP XML-Format, das für
den Datenaustausch zwischen SAP- und Fremdsystemen in beide Richtungen optimiert ist.
binary ABAP Serialization XML (basXML ): ist eine SAP interne Binär-Variante der asXML. Sie
kann nur innerhalb des SAP-System-Umfeldes verwendet werden, bringt aber durch Binär-
und Strukturkomprimierung, enorme Performance- und Speichervorteile gegenüber anderen
XML Darstellungen.
Weiter Informationen zu den SAP XML Varianten werden in Kapitel 3.1. näher erlautert.
Fullextraktionsmodus: der den gesamten Datenbestand aus dem DWH nach der Erst-
Extraktion erneut exportiert und die bestehenden Quelldaten im Zielsystem überschreibt. Er
ist insbesondere für kleine Datenbestände mit hoher Volatilität geeignet.
Deltaextraktionsmodus: führt nur eine Aktualisierung geänderter Daten durch. Er hat Vorteile
bezüglich Ressourcenverbrauch und Performance bei großen Datenbeständen mit niedriger
Volatilität.
Typisch für eine Deltaextraktion sind z.B. Kundenstammdaten, monatliche Umsatzauswertungen sind
i.d.R. typisch für eine Fullextraktion. Gewährleistet wird diese Funktionalität durch eine interne
Versionsverwaltung, die für jede durchgeführte Extraktion versionsspezifisch einen technischen
Request hinterlegt, der aus dem parallel zum Extraktionsprozess ablaufenden Monitoring erstellt
wird.
marco.hammel@sap.com
11
XML-Export im SAP DataWarehouse 25. August 2008
Die OHD löst im Kontext des DWH ältere Werkzeuge, wie den InfoSpoke ab. Da sie mehr
Möglichkeiten bietet und die oben erwähnten technischen Anforderungen besser erfüllt. Sie gliedert
sich in das DWH Funktional an selber Position der Schichten Architektur des DWH ein:
Abb. 3 Die OHD als Schnittstelle zu nachgelagerten System (SAP AG, 2004)
IMPP (Instant Messaging and Presence Protocol): zum Austausch von Messaging Daten
XML ist:
mit seinem generischen Datenmodel, die sich in Elemente und Attribute in einer
Baumstruktur aufgeteilt repräsentiert.
marco.hammel@sap.com
12
XML-Export im SAP DataWarehouse 25. August 2008
programs and scripts to dynamically access and update the content, structure and style of
documents“ (World Wide Web Consortium) definiert wurde.
Damit ist XML eine weitverbreitet offene Basis für Standards und Tools zum:
Parsen
Von Dokumenten und Protokollen. Aus diesen Eigenschaften ergeben sich für Unternehmen durch
die Nutzung von XML folgende Vorteile. XML ist:
Plattformunabhängig
Insbesondere die Plattformunabhängigkeit und die leichte Erweiterbarkeit sind für Unternehmen
wichtige Aspekte. Während ein Privatperson für die Erstellung einer Webpräsenz i.d.R. mit
klassischer HTML-Funktionalität ausreichende Möglichkeiten zur Verfügung hat, wäre die Erstellung
und Verwaltung einer angemessenen Webpräsenz mit ECommerce-Funktionalität in HTML zu
aufwändig und im Ergebnis zu statisch. Mit diesem Anforderungsprofil, das an XML gestellt wird
ergeben sich auch Nachteile. So leiden viel in XML Dargestellt Daten bezüglich ihrer Lese- und
Schreibbereitschaft unter erheblichen Performanceproblemen, durch oft sehr tiefe
Verschachtelungen der Datenebene in der Dokumentstruktur. Auch hat sich ein gewisser Wildwuchs
an XML-Schemata entwickelt, weshalb in Business to Business Kommunikation über XML i.d.R.
geparst werden muss, um in unternehmensinternen Anwendungen verwendet werden zu können.
Die Funktion muss alle BI-Datenobjekte unterstützen, die auch die ODH unterstützt.
marco.hammel@sap.com
13
XML-Export im SAP DataWarehouse 25. August 2008
Sie soll möglichst in den meisten Fällen Performancevorteile gegenüber den bisherigen
Dateiexporten bringen, mindestens jedoch keine Nachteile.
Die Funktionalität soll dabei im technischen Sinne möglichst einfach zu erweitern sein und
geringer bis keiner Wartung bei Änderungen, oder Erweiterungen der zu verwendeten
Standardformate asXML und basXML bedürfen.
Die Implementierung soll sich dabei in das bestehende Design der OHD möglichst harmonisch
integrieren. (Architekturneutral)
und Benutzeraspekte:
Die Bedienung über das User Interface soll in das bestehende Design integriert werden und
dem Nutzer alle notwendigen Informationen kontextabhängig zu Verfügung stellen.
Die Menüführung soll sich dabei möglichst eindeutig und unmissverständlich präsentieren.
Also einen hohen Grad an Useability aufweisen.
Die gesamte Backendfunktionalität der OHD ist in einem nicht gekapselten Paket untergebracht mit
der Bezeichnung RSB untergebracht, getrennt vom Frontend, das seinerseits im Paket RSB_GUI
implementiert ist. Um die beschriebene Funktionalität des XSLT-Prozessors im SAP Netweaver
verwenden zu können, muss eine bisher noch nicht implementierte Paketschnittstelle des schwach
gekapselten Basispaketes SXML zur Schnittstellenverwaltung von RSB hinzugefügt werden. Schwach
gekapselt meint, dass das Paket auch eine Schnittstelle zur Verfügung stellt, die den Zugriff auf alle
Klassen innerhalb des Paketes gestattet. Voraussetzung für die Übernahme der Basisschnittstelle ist
im ABAP Paketkonzept, dass das Schnittstellen nutzende und bereitstellende Paket hierarchisch auf
derselben Ebene in der Paketstruktur des SAP Netweaver gepflegt werden müssen. Die folgende
Abbildung beschreibt, dass beide Pakete eine Ebene unterhalb ihrer jeweiligen Strukturpakete zu
finden sind und somit die Schnittstelle implementiert werden kann.
marco.hammel@sap.com
14
XML-Export im SAP DataWarehouse 25. August 2008
Über die Paketschnittstelle kann nun entsprechend der Schnittstellenbeschränkung auf die Klassen
des SXML Pakets zugegriffen werden. Um die Funktionalität der Klasse CL_SXML_WRITER, die eine
Methode zum erstellen von basXML Dateien enthält verwenden zu können, musste die Schnittstelle
SXML_CORE verwendet werden. Diese Schnittstelle ist in der Schnittstellenhierarchie des SXML
Pakets wie folgt angesiedelt:
Die Schnittstellenimplementierung kann im SAP Netweaver nur von Personen durchgeführt werden,
die im Berechtigungskonzept die Rolle eines Architekten inne haben. Sie wurde nach Anfrage an den
Architekten der Abteilung von diesem in das RSB Paket implementiert.
marco.hammel@sap.com
15
XML-Export im SAP DataWarehouse 25. August 2008
15
Siehe Glossar
marco.hammel@sap.com
16
XML-Export im SAP DataWarehouse 25. August 2008
Daraufhin werden die Daten der BI-Datentabelle zeilenweise abhängig von der Tabellengröße 1 bis n
mal als Importparameter an die jeweilige CONVERT Methode übergeben. Diese exportiert die
jeweilige Tabellenzeile, entsprechend der im erzeugten Objekt vorliegenden Implementierung,
konvertiert in die jeweilige Datencodierung als Zeichenfolge vom Typ ABAP Datentyp CHAR
(Character). Diese Zeichenfolge wird im Anschluss mit dem Attribut des Objekts einer dem Zielsystem
entsprechenden Tochterklasse der Klasse CL_RSB_FILE_GENERAL konkludiert (siehe Anhang). Dieses
Attribut wird in Folge für den Schreibprozess in die Datei verwendet.
Im Unterschied zu den bisherigen Dateiexporten in CSV und ASCII soll für den XML-Export nur eine
Datei erzeugt werden, die sowohl Metadaten, als auch BI-Daten enthält. Somit darf der Prozess der
Metadaten-Datei-Erzeugung für den Fall des XML-Exports nicht durchgeführt werden. Stattdessen
müssen die benötigten Metadaten in den oben beschriebenen Programmablaufausschnitt integriert
und von der für die XML-Zeichenketten-Konvertierung zuständigen Methode verarbeitet werden
können. Die entsprechende Tabelle steht als Attribut des Objekts der Klasse CL_RSB_FILE_GENERAL
und somit deren Tochterklassen zu Verfügung.
Als Folge, der Anforderung für niedrigen Wartungsaufwand bezüglich Änderungen der Standard-
XML-Formate wurde deutlich, dass sich die Methodenlogik nicht konkludent zu der vorhandenen
Logik implementieren ließe. Zwar ließen sich die BI-Daten auch strukturweise in das asXML-Format
marco.hammel@sap.com
17
XML-Export im SAP DataWarehouse 25. August 2008
überführen, jedoch müsste die erzeugt Zeichenfolge noch editiert werden, da sonst um jede einzelne
Zeichenkette durch Dokumenten Anfangs- und Endtags gerahmt wäre. Die meisten XML-Reader
könnten in Folge dessen die Dokumentstruktur nicht mehr lesen, und würden die erzeugte Datei
nicht als valides XML akzeptieren.
Als Ergebnis dieser Überlegung wurde Variante eins gewählt (siehe Anhang). Im Gegensatz zur
Variante 2 bietet sie den Vorteil, das bei der lesenden Auswertung eines solchen Dokuments i.d.R.
Nach dem Top-Down Verfahren vorgegangen wird. Es ist in vielen Fällen für die Datenkonsistenz,
Performance und Anwendungssicherheit entscheidend, erst die technischen Eigenschaften der BI-
Objekte zu kennen, bevor diese z.B. in Fremdanwendungen geladen werden. Gründe dafür sind eine
effizientere Speichernutzung und die Vermeidung von teilweise aufwendigen Datenanalyse
verfahren.
Variante 3 würde diesen Überlegungen zwar auch Rechnung tragen. Hat aber gegenüber Variante 1
entscheidenden Nachteile bezüglich Speichereffizienz, Schreibperformance und
Implementierungsaufwand. Gründe hierfür sind:
marco.hammel@sap.com
18
XML-Export im SAP DataWarehouse 25. August 2008
Diese Entscheidung bedeutet einen minimal invasiven Eingriff in den bestehenden Quellecode. So
kann in der Methode Receive_Data der Methodenaufruf für Konvertierung unverändert bestehen
bleiben. Es muss lediglich fallabhängig der Konstruktor der neuen Klasse aufgerufen werden. Sonstige
Eingriffe in die bestehende Programmlogik beschränken sich auf das Erweitern eines Datentyps
(siehe Anhang), der zur Programmsteuerung notwendige Daten aus dem UI transportiert und einer
Fallklausulierung für den Methodenaufruf der AFTER_EXTRACTION, die die Metadatendatei schreibt,
welche beim XML-Export wie beschrieben obsolet wird.
Neben, der für die eigentliche Konvertierung zuständige CONVERT Methode und dem Konstruktor,
der für die Wertübergabe der aufgeführten Attribute zuständig ist, wird die Behandlung, oder die
Weiterleitung möglicher Ausnahmen der Transformation durch die Methode HANDLE_TRAN_EXC
durchgeführt. Ansonsten sind noch einige GET und SET Methoden implementiert, die einer möglichst
sauberen Kapselung und dem damit verbundenen Einschränkung der Sichtbarkeit der Attribute
führen soll. Die Attribute der Klasse sind folgendermaßen implementiert:
marco.hammel@sap.com
19
XML-Export im SAP DataWarehouse 25. August 2008
Das private Attribut P_T_FIELD repräsentiert als interne Tabelle die Metainformationen der
BI-Objekte, es ist bereits in der Oberklasse CL_RSB_FILE_TYPE implementiert.
Das geschützte Attribut O_R_TABLEDESCR repräsentiert eine Referenz auf spezielles ABAP
Laufzeitanalyseobjekt, den sogenannten Run Time Type Service (RTTS)16. Die
Implementierung dieses Attribut trägt dem in Kapitel 4.2 beschriebenen XML-
Validitätsproblem Rechnung. Um dieses Problem zu lösen, müssen die in die CONVERT
Methode übergebenen, generisch zu behandelnden Strukturen zu einer Tabelle 1 bis n mal
zusammengeführt werden. Diese kann von der Konvertierungstransformation in valides,
zusammenhängend strukturiertes asXML-Format konvertiert werde. Um eine Tabelle bei
Programmlaufzeit erzeugen zu können, muss der Typ ihrer Strukturzeilen und die Länge der
Tabelle bekannt sein. Diese Information kann mittels eines RTTS Objekts ermittelt werden
und damit bei Programmlaufzeit eine Tabelle korrekten Typs erzeugt werden. Diese Tabelle
muss im Quellcode entsprechend generisch behandelt werden.
Das geschützte Attribut O_R_DATATAB vom generischen Datentyp DATA erfüllt die Aufgabe
den Arbeitsspeicherbereich der internen Tabelle entsprechend über den Methodenaufruf
hinaus zu referenzieren.
Das private Attribut P_CALL_CONVERT_COUNT dient als Vergleichswert mit der aus dem
RTTS gewonnen Information über die Tabellenlänge der BI-Datentabelle. Mittels eines
booleschen Vergleichsoperators wird hiermit entschieden, ob die Tabelle vollständig
eingelesen wurde, und Konvertiert werden kann.
Das private Attribut P_TRANID bestimmt, welche Konvertierung beim Aufruf der
Transformation durchgeführt werden soll. Die Transformation ist dabei in der Lage
unterschiedliche XSLTs für die Konvertierung anzuwenden.
16
Siehe Glossar
marco.hammel@sap.com
20
XML-Export im SAP DataWarehouse 25. August 2008
ggf. in ein binäres Format umzuwandeln. Für diese Aufgabe wurde eine spezielle ABAP OO-Technik
eingesetzt, Feldsymbole17. Sie sind ein „Symbolischer Name für ein Datenobjekt, dem zur Laufzeit
konkrete Speicherbereiche zugewiesen werden können. Ein Feldsymbol kann stellvertretend für
Datenobjekte an Operandenpositionen verwendet werden“. Die Fähigkeit, dass ihnen währen der
Programmlaufzeit Speicherbereiche zugwiesen werden können, und sie generisch deklariert werden
können.
Im Grundsatz lässt sich der Quellcode der Methode in zwei logische Bestandteile gliedern. Der Teil,
der ausgeführt wird um aus den importierten Strukturzeilen eine Tabelle zu erstellen (Zeile 13 bis 25)
und die eigentliche Konvertierung der Datentabelle in XML mit dem Export der Zeichenkette in die
Methode RECEIVE_DATA. Würde die zu exportierende Datenmenge nur ein BI-Datenobjekt
umfassen, wäre die Verzweigung der Methode obsolet.
Der Aufruf der Transformation erlaubt, mehr als einen Parameter zu übergeben, je nach Rheinfolge
werden die entsprechenden Daten durch Verwendung der übergebenen XSLT Konvertiert und das
Ergebnis im Datentyp der Zielvariable zurückgegeben (Zeile 52 bis 55).
Der Nutzer soll Top-Down durch das Menü geführt werden und dabei strukturiert gemäß der
vorhergehenden Entscheidung kontextabhängig und dynamisch die Informationen zu Verfügung
gestellt bekommen. Es sollen ausschließlich die als relevant zu erachten Einstellungen angezeigt
werden um programmkritisch und falsche Einstellungen des Nutzers im Voraus möglichst
auszuschließen und um eine Informationsüberflutung zu vermeiden. Dies erfordert, dass
Nutzereingaben soweit wie möglich vorgegeben sind bzw. initialisiert sind. Wie z.B. der Name des
Verzeichnisses, oder das zu verwendende Trennzeichen. Die verwendete Technik für das erstellen
der grafischen Benutzeroberfläche ist ABAP-Dynpro. Diese prozedurale Technik stellt dem Entwickler
vorgegebene Oberflächenelemente für die Modellierung seiner Benutzeroberfläche zur Verfügung,
die durch Verarbeitung von zugewiesen Benutzerinteraktionen in einer Ablauflogik gesteuert werden
können.
17
Siehe Glossar
marco.hammel@sap.com
21
XML-Export im SAP DataWarehouse 25. August 2008
Unter der Verwendung von Radiobuttonelementen, die logisch für eine Einfach-Selektierung
implementiert wurden kann der Nutzer nach Auswahl in der ihm bekannten Listboxanzeige
„Datenformat“ aus den beiden Exportvarianten wählen.
Bisher wurden Radiobuttons in der Benutzeroberfläche der OHD noch nicht verwendet. Es kann
jedoch davon ausgegangen werden, dass die meisten Nutzer deren Bedienung aus andern SAP
Anwendungen, oder Fremdanwendungen z.B. in Weboberflächen bereits kennen. Wie alle
Dynproelemente erfüllen auch Radiobuttons den SAP Accessibility-Standard, was die Nutzbarkeit der
Oberfläche für Sehbehinderte gewährleisten könnte, sobald die Anforderung der Accessibility auch
an die Bedienungsoberflächen des BW gestellt werden würde. Aus der Benutzeroberfläche, die im
Paket RSB_GUI implementiert ist werden die relevanten Daten mittels einer Struktur übergeben, die
entsprechend der neuen Funktionalität um 4 Datenelemente erweitert wurde. 3 Davon als boolesche
Datentypen, die ein jeweiliges Binärkennzeichen entsprechend ihres Übergabe-Wertes aus der
Benutzeroberfläche zugewiesen bekommen und einem String der Werte aus einem Texteingabefeld
mit Wertehilfe übernimmt. Derzeit werden nur 2 boolesche Datenelemente gefüllt. Die übrigen
Elemente dienen einer möglichen Erweiterung der XML-Export-Funktionalität nähere Informationen
sind in Kapitel … aufgeführt. Diese Erweiterung wird benötigt, um in der Programmlogik
entsprechend bei der Erzeugung eines Objekts der Klasse CL_RSB_FILE_TYPE_XML benötigte Objekt-
Attribute zu füllen.
marco.hammel@sap.com
22
XML-Export im SAP DataWarehouse 25. August 2008
5.1. BI in Services?
BI Software-Hersteller sehen sich oft mit konträren Anforderungen einmal des Kunden und der
wissenschaftlichen Definition von OLAP konfrontiert. Im Zuge der aufkommenden Enterprise Service
Oriented Architekture (eSOA)18 Technologie will der Kunde mehr als nur bestimmte Queries als
Services verwenden zu können. Er wünscht sich für die Zukunft wahrscheinlich eine immer
vollständigere BI-Funktionalität in Service gepackt. Das bedeutet das der serviceorientierte Ansatz,
der auf fest zu definierende Schnittstelle beruht nicht optimal für die Bereitstellung von OLAP-
Diensten ist. BI in Zusammenhangmit OLAP zeichnet sich durch seine Fähigkeit aus beliebigen, oft im
Vorhinein nicht zu definierende Quellen Daten aufzunehmen und zu verarbeiten. Die Ausführung
bestimmter Querys in einer eSOA-Umwelt lässt sich dagegen problemlos realisisieren, da
Schnittstellen dabei exakt bestimmt werden können. Doch die Modellierungsfunktionalitäten eines
DWH sind können so nicht zur Verfügung gestellt werden.
18
Siehe Glossar
marco.hammel@sap.com
23
XML-Export im SAP DataWarehouse 25. August 2008
Anhang
marco.hammel@sap.com
24
XML-Export im SAP DataWarehouse 25. August 2008
<DATATYPE>CURR</DATATYPE>
<INTLEN>000009</INTLEN>
<LENG>000017</LENG>
<OUTPUTLEN>000023</OUTPUTLEN>
<INTTYPE>P</INTTYPE>
<CONVEXIT />
<DECIMALS>000002</DECIMALS>
<OUTFORMAT />
<EXT_DTYPE />
<EXT_LENGHT>000000</EXT_LENGHT>
<UNIFIELDNM />
<DTELNM>/BIC/OIUMS_NORD</DTELNM>
</RSBOHFIELDS>
- <RSBOHFIELDS>
<OHDEST>FIX_AP_CP</OHDEST>
<OBJVERS>A</OBJVERS>
<FIELDNM>/BIC/UMS_WEST</FIELDNM>
<POSIT>0004</POSIT>
<TEMPIOBJNM>UMS_WEST</TEMPIOBJNM>
<KEYFLAG />
<DATATYPE>CURR</DATATYPE>
<INTLEN>000009</INTLEN>
<LENG>000017</LENG>
<OUTPUTLEN>000023</OUTPUTLEN>
<INTTYPE>P</INTTYPE>
<CONVEXIT />
<DECIMALS>000002</DECIMALS>
<OUTFORMAT />
<EXT_DTYPE />
<EXT_LENGHT>000000</EXT_LENGHT>
<UNIFIELDNM />
<DTELNM>/BIC/OIUMS_WEST</DTELNM>
</RSBOHFIELDS>
- <RSBOHFIELDS>
<OHDEST>FIX_AP_CP</OHDEST>
<OBJVERS>A</OBJVERS>
<FIELDNM>/BIC/UMS_OST</FIELDNM>
<POSIT>0005</POSIT>
<TEMPIOBJNM>UMS_OST</TEMPIOBJNM>
<KEYFLAG />
<DATATYPE>CURR</DATATYPE>
<INTLEN>000009</INTLEN>
<LENG>000017</LENG>
<OUTPUTLEN>000023</OUTPUTLEN>
<INTTYPE>P</INTTYPE>
<CONVEXIT />
<DECIMALS>000002</DECIMALS>
<OUTFORMAT />
<EXT_DTYPE />
<EXT_LENGHT>000000</EXT_LENGHT>
<UNIFIELDNM />
<DTELNM>/BIC/OIUMS_OST</DTELNM>
</RSBOHFIELDS>
- <RSBOHFIELDS>
marco.hammel@sap.com
25
XML-Export im SAP DataWarehouse 25. August 2008
<OHDEST>FIX_AP_CP</OHDEST>
<OBJVERS>A</OBJVERS>
<FIELDNM>/BIC/UMS_SUED</FIELDNM>
<POSIT>0006</POSIT>
<TEMPIOBJNM>UMS_SUED</TEMPIOBJNM>
<KEYFLAG />
<DATATYPE>CURR</DATATYPE>
<INTLEN>000009</INTLEN>
<LENG>000017</LENG>
<OUTPUTLEN>000023</OUTPUTLEN>
<INTTYPE>P</INTTYPE>
<CONVEXIT />
<DECIMALS>000002</DECIMALS>
<OUTFORMAT />
<EXT_DTYPE />
<EXT_LENGHT>000000</EXT_LENGHT>
<UNIFIELDNM />
<DTELNM>/BIC/OIUMS_SUED</DTELNM>
</RSBOHFIELDS>
- <RSBOHFIELDS>
<OHDEST>FIX_AP_CP</OHDEST>
<OBJVERS>A</OBJVERS>
<FIELDNM>RECORDMODE</FIELDNM>
<POSIT>0007</POSIT>
<TEMPIOBJNM>0RECORDMODE</TEMPIOBJNM>
<KEYFLAG />
<DATATYPE>CHAR</DATATYPE>
<INTLEN>000002</INTLEN>
<LENG>000001</LENG>
<OUTPUTLEN>000001</OUTPUTLEN>
<INTTYPE>C</INTTYPE>
<CONVEXIT />
<DECIMALS>000000</DECIMALS>
<OUTFORMAT />
<EXT_DTYPE />
<EXT_LENGHT>000000</EXT_LENGHT>
<UNIFIELDNM />
<DTELNM>RODMUPDMOD</DTELNM>
</RSBOHFIELDS>
</META>
- <DATA>
- <item>
<_-BIC_-ZDOM_FIRM>Fahrradladen Peter</_-BIC_-ZDOM_FIRM>
<_-BIC_-FIRMJAHR>2006</_-BIC_-FIRMJAHR>
<_-BIC_-UMS_NORD>150000.0</_-BIC_-UMS_NORD>
<_-BIC_-UMS_WEST>50000.0</_-BIC_-UMS_WEST>
<_-BIC_-UMS_OST>200000.0</_-BIC_-UMS_OST>
<_-BIC_-UMS_SUED>200000.0</_-BIC_-UMS_SUED>
<RECORDMODE />
</item>
- <item>
<_-BIC_-ZDOM_FIRM>Fahrradladen Peter</_-BIC_-ZDOM_FIRM>
<_-BIC_-FIRMJAHR>2007</_-BIC_-FIRMJAHR>
<_-BIC_-UMS_NORD>200000.0</_-BIC_-UMS_NORD>
marco.hammel@sap.com
26
XML-Export im SAP DataWarehouse 25. August 2008
<_-BIC_-UMS_WEST>100000.0</_-BIC_-UMS_WEST>
<_-BIC_-UMS_OST>300000.0</_-BIC_-UMS_OST>
<_-BIC_-UMS_SUED>500000.0</_-BIC_-UMS_SUED>
<RECORDMODE />
</item>
- <item>
<_-BIC_-ZDOM_FIRM>Spielwaren Klaus</_-BIC_-ZDOM_FIRM>
<_-BIC_-FIRMJAHR>2006</_-BIC_-FIRMJAHR>
<_-BIC_-UMS_NORD>9000.0</_-BIC_-UMS_NORD>
<_-BIC_-UMS_WEST>10000.0</_-BIC_-UMS_WEST>
<_-BIC_-UMS_OST>6000.0</_-BIC_-UMS_OST>
<_-BIC_-UMS_SUED>6000.0</_-BIC_-UMS_SUED>
<RECORDMODE />
</item>
- <item>
<_-BIC_-ZDOM_FIRM>Spielwaren Klaus</_-BIC_-ZDOM_FIRM>
<_-BIC_-FIRMJAHR>2007</_-BIC_-FIRMJAHR>
<_-BIC_-UMS_NORD>10000.0</_-BIC_-UMS_NORD>
<_-BIC_-UMS_WEST>12000.0</_-BIC_-UMS_WEST>
<_-BIC_-UMS_OST>7000.0</_-BIC_-UMS_OST>
<_-BIC_-UMS_SUED>8000.0</_-BIC_-UMS_SUED>
<RECORDMODE />
</item>
- <item>
<_-BIC_-ZDOM_FIRM>Suessigkeiten Mueller</_-BIC_-ZDOM_FIRM>
<_-BIC_-FIRMJAHR>2006</_-BIC_-FIRMJAHR>
<_-BIC_-UMS_NORD>2600000.0</_-BIC_-UMS_NORD>
<_-BIC_-UMS_WEST>9000000.0</_-BIC_-UMS_WEST>
<_-BIC_-UMS_OST>510000.0</_-BIC_-UMS_OST>
<_-BIC_-UMS_SUED>22000000.0</_-BIC_-UMS_SUED>
<RECORDMODE />
</item>
- <item>
<_-BIC_-ZDOM_FIRM>Suessigkeiten Mueller</_-BIC_-ZDOM_FIRM>
<_-BIC_-FIRMJAHR>2007</_-BIC_-FIRMJAHR>
<_-BIC_-UMS_NORD>800000.0</_-BIC_-UMS_NORD>
<_-BIC_-UMS_WEST>1000000.0</_-BIC_-UMS_WEST>
<_-BIC_-UMS_OST>500000.0</_-BIC_-UMS_OST>
<_-BIC_-UMS_SUED>20000000.0</_-BIC_-UMS_SUED>
<RECORDMODE />
</item>
</DATA>
</asx:values>
</asx:abap>
marco.hammel@sap.com
27
XML-Export im SAP DataWarehouse 25. August 2008
IF me-
>get_p_callconvert_count( ) > 3. "table_ lenght for get the structure of th
e datas
l_v_fopt = me-
>get_p_file_operator( ). " get kind of choosen transformation
marco.hammel@sap.com
28
XML-Export im SAP DataWarehouse 25. August 2008
ENDTRY.
super->constructor( ).
*Metadatatable
P_T_FIELD = I_T_FIELD.
*Customer Ttansformation (optional)
P_TRANID = I_V_TRANID.
*Set Fileoptionvalue(0|1|2)
P_FILE_OPERATOR = I_V_FOPT.
*Set number of tablines
P_CallConvert_count = I_R_TABLEDESCR->Length.
*Set Referenz to cl_abap_tabledescr
O_R_TABLEDESCR = I_R_TABLEDESCR.
*Get Type of Datatable
CREATE DATA o_r_datatab TYPE HANDLE me->O_R_TABLEDESCR.
endmethod.
____________________________________________________
Kurztext
Typkonvertierungsdienst
Funktionalität
Diese finale Klasse dient zur Konvertierung und Extrahierung generischer Daten internen Typs des BI-Systems
im XML-Format als lokales Fileobjekt. Es werden dabei das kanonisierte asXML Format, die komprimierte
basXML und das Anwenden einer kundenspezifischen XSLT unterstützt.
Beziehungen
# CL CL_RSB_FILE_TYPE
marco.hammel@sap.com
29
XML-Export im SAP DataWarehouse 25. August 2008
CL CL_RSB_FILE_TYPE_ASCII
CL CL_RSB_FILE_TYPE_CSV
CL CL_RSB_FILE_TYPE_XML
Hinweise
Weiterführende Informationen
Klassen:
CL_RSB_FILE_TYPE
CL_SXML_Writer
Glossar:
1. Online Transaction Processing (OLTP): „die zentralisierte Transaktionsverarbeitung, bei der
eine Folge von Aufträgen nacheinander auf einem Computer verarbeitet wird, wobei alle
Benutzer den Eindruck haben, als arbeite das System in Echtzeit“ (Lutz J. Heinrich, 2004)
4. SAP Netweaver: Eine offene Integrations- und Anwendungsplattform für alle SAP-Lösungen
und bestimmte Lösungen von SAP-Partnern.
5. Extensible-Markup –Language (XML): Eine für die Anwendung im World Wide Web
entwickelte Teilmenge der Standard Generalized Markup Language (SGML). eXtensible
Markup Language- oder XML-Dokumente bestehen aus Entitäten, die entweder analysierte
(parsed) oder nicht analysierte (unparsed) Daten enthalten. Die Spezifikation XML 1.0 wurde
von der XML-Arbeitsgruppe des W3C (World Wide Web Consortium) entworfen und 1998
vom W3C als Empfehlung angenommen. Sie finden diese Spezifikation unter www.w3.org.
Auf der Grundlage von XML wurden (und werden) zahlreiche Standards für spezielle
Aufgaben entwickelt. Dazu zählen XLink, XPointer, XSL, XSLT, und DOM.
6. Comma-Separated-Value (CSV): Ein flaches Datenformat, deren Werte wird einen Seperator,
meist ein Komma getrennt werden
7. American Standard Code for Information Interchange (ASCII): Abkürzung für American
Standard Code for Information Interchange. Nach ISO-646 genormter 7-Bit-Zeichensatz.
Durch ISO-8859 auf 8-Bit-Zeichensätze erweitert.
marco.hammel@sap.com
30
XML-Export im SAP DataWarehouse 25. August 2008
8. Open Hub-Destination OHD: Die Open Hub Destination ist eine Entität des OpenHub Service.
Ein Objekt ermöglicht es, Daten aus einem BI-System in nicht-SAP Data Marts, Analytical
Applications und andere Anwendungen zu verteilen. Damit wird die kontrollierte Verteilung
über mehrere Systeme hinweg gewährleistet. Durch die Open Hub Destination wird definiert,
in welches Ziel die Daten weitergeleitet werden.
9. Data Warehouse (DWH): Die Open Hub Destination ist das Objekt, das ermöglicht, Daten aus
einem BI-System in nicht-SAP Data Marts, Analytical Applications und andere Anwendungen
zu verteilen. Damit wird die kontrollierte Verteilung über mehrere Systeme hinweg
gewährleistet.
11. InfoProvidern: Oberbegriff für BI-Objekte, in die Daten geladen werden oder die Sichten auf
Daten darstellen.
12. Die Data Source (DS): liefert die Beschreibung der Quelldaten. Sie werden für die
Datenextraktion aus einem Quellsystem und Übertragung der Daten ins BI, oder für den
direkten Zugriff auf Quelldaten aus dem BI heraus verwendet. Sie ist somit das Gegenstück
der OpenHub Destination, also für das Mapping der Quelldatan in das Zielsystem eines PSA
Objekts zuständig.
14. Daten-Transfer-Prozess (DTP): Ein DTP dient der Übertragung von Daten zwischen
persistenten Datenobjekten innerhalb des BI. Hierbei werden Transformationen und Filter
auf die Daten angewendet, die eine konsistente Datenübertragung gewährleisten sollen.
Deshalb ist die Definition einer Transformation für einen DTP obligatorisch und muss für
dessen Durchführung in aktiver Version vorliegen.
15. Unified Modelling Language (UML): ist die von der Object Management Group (OMG)
anerkannte Standard- Sprache für die semantische Analyse von Objekten und für das Design
von objektorientierten Modellen mit Hilfe von graphischen Werkzeugen.
16. Run Time Type Service (RTTS): Die Methoden der RTTS beschaffen Informationenzu
Datentypen oder Klassen von Objekten oder erzeugen neue Datentypen in der Form von
Typobjekten. Die RTTS sind als Hierarchie von Typklassen implementiert, aus denen
Typobjekte erzeugt werden können.
17. Feldsymbole: Symbolischer Name für ein Datenobjekt, dem zur Programmlaufzeit konkrete
Speicherbereiche zugewiesen werden können. Ein Feldsymbol kann stellvertretend für
Datenobjekte an Operandenpositionen verwendet werden. Ein Feldsymbol ist entweder
generisch oder vollständig typisiert. Feldsymbole werden mit der Anweisung FIELD-
SYMBOLS deklariert und bekommen mit ASSIGN Speicherbereiche zugewiesen.
18. Enterprise Service Oriented Architekture (eSOA): „*…]open architecture for adaptive business
solutions. Enterprise SOA creates a gradual path to flexible, service-centric system
marco.hammel@sap.com
31
XML-Export im SAP DataWarehouse 25. August 2008
landscapes and allows a non-disruptive transition of existing applications and architecture for
more flexibility and value. The fundamental premise of Enterprise SOA is the abstraction of
business activities or events, modelled as enterprise services“ (SAP AG, 2004)
marco.hammel@sap.com
32
XML-Export im SAP DataWarehouse 25. August 2008
19.
Literaturverzeichnis:
Lehmann, S. -S. (2001). SAP Business Information Warehouse. SAP PRESS.
SAP AG. (3. Januar 2004). help.sap.com. Abgerufen am 12. August 2008 von
http://help.sap.com/saphelp_nw2004s/helpdata/de/e3/e60138fede083de10000009b38f8cf/frames
et.htm
World Wide Web Consortium. (n.d.). www.w3.org. Retrieved August 8, 2008, from
http://www.w3.org/DOM/
marco.hammel@sap.com
33