Wenn aus Feinden doch noch Freunde werden - Mein dorniger Weg zu den SAP Eclipse DEV Tools
Der ein oder andere mag es aus Kommentaren von mir schon mal mitbekommen haben. Seit die SAP von ihrem traditionellen Frontendwerkzeug, dem sog. SAP GUI, mit dem sowohl der klassische Endanwender, aber auch die Entwickler und Berater deutlich über 2,5 Jahrzehnte auf SAP Produkte zugegriffen und im Rahmen ihrer jeweiligen, sehr unterschiedlichen Tätigkeiten mit ihnen gearbeitet haben, immer mehr abkommt und alternative Frontendtechnologien favorisiert, trauere ich durchaus dem guten alten SAP GUI schon noch etwas nach. Das mag den ein oder anderen sehr erstaunen. Ja, tatsächlich, die Staunenden haben auch nicht gänzlich Unrecht. Der SAP GUI war nämlich immer auch eine große Hassliebe.
Wer als Einsteiger in SAP zum ersten Mal mit dem SAP GUI in Berührung gekommen ist - in meinem Fall war das 1997 - der hat damals schon geheult, weil selbst in jener längst vergangenen Zeit durchaus schon viel Besseres zu finden war. Als ehemaliger SAP Business Warehouse Berater habe ich in jenen Tagen oft genug geflucht, wenn ich Datenflüsse mit dem SAP GUI aufbauen musste. Der SAPGUI war in jedem Fall hinsichtlich Usability höchst verbesserungswürdig. SAP hat allerdings schon seit dem Jahr 2000 beginnend immer weniger in den SAP GUI investiert, und statt dessen vielmehr viele webbasierte Varianten eines Frontends entwickelt, von denen die meisten aus meiner subjektiven Sicht nicht wirklich gut waren oder sich durchgesetzt hätten. Wer dann jahrzehntelang mit dem SAP GUI gearbeitet hat, hat sich an die manchmal nervtötenden Restriktionen gewöhnt, passable Workarounds gefunden, teilweise sogar durchaus mächtige, aber sehr gut versteckte Features entdeckt, die schon immer existierten, aber sich nicht so ohne Weiteres erschlossen haben und die das Leben erleichtert und manche Restriktionen aufgelöst haben.
Für Endanwender hat SAP irgendwann in den Jahren nach 2010 begonnen mit dem webbasierten Oberflächenparadigma Fiori / SAPUI5 eine durchaus sehr gute Alternative zum SAP GUI anzubieten. Für Entwickler jedoch blieb es im Rahmen ihrer doch sehr anders gearteten Tätigkeit zunächst noch beim guten alten SAP GUI. Ich weiß tatsächlich nicht mehr genau - man sehe mir das nach - in welchem Jahr SAP begonnen hat, auch für Entwickler eine Alternative auf Basis des sog. Eclipse Tools anzubieten. Es könnte so ungefähr ab 2010 oder ab 2012, vielleicht auch etwas später gewesen sein. Für langjährige Entwickler, die bis dahin ausschließlich mit dem SAP GUI und seinen Entwicklungswerkzeugen gearbeitet und bestens vertraut waren, war dieser Schritt in die neue Welt hin und wieder gar nicht so einfach.
Zunächst waren die klassischen SAP ABAP Entwickler die ersten, die das neue Werkzeug im Zuge der Entwicklung von ABAP Programmen ausprobieren durften, und die mit Sicherheit noch am einfachsten damit zurecht gekommen sind. Später kamen dann auch die SAP BW Entwickler in den "Genuss". Es war ein sehr sanfter Wechsel, den SAP damit angeboten hat, denn eine lange Zeit konnte man als SAP BW Entwickler weiterhin ohne große Einschränkung mit dem SAP GUI arbeiten. SAP hat dann aber zunehmend damit begonnen, bestimmte Funktionen in der BW Entwicklung im SAP GUI nicht mehr zu ermöglichen. Der Druck wuchs mit jedem Jahr und jedem neuen BW Release, sich mit dem Eclipse Werkzeug und den von SAP dort integrierten SAP Entwicklungswerkzeugen intensiver zu beschäftigen. Ich selbst habe mir das über all die Jahre nur sehr oberflächlich angesehen und kam zunächst überhaupt nicht damit klar. Mich verwirrte das Werkzeug zunächst, nicht zuletzt auch dadurch, dass manche Funktionen nichts anderes als ein Aufruf von Funktionen aus dem SAP GUI waren, wie man dann sehr deutlich an der vertrauten alten SAP GUI Oberfläche sah, die da in einer der vielen Eclipse Perspektiven durch schimmerte.
"Wozu also dann Eclipse, wenn manches eben doch noch der alte SAP GUI ist, der da aufgerufen wird?", habe ich mich gefragt.
Neue Begrifflichkeiten wie Perspektiven, Workspace, eine ganze Menge zusätzlicher Schaltflächen, von denen nicht immer sofort klar war, ob man sie überhaupt für die BW Entwicklung brauchte, die relativ kleinen Symbole, die insbesondere alternden BW Beratern wie mir mit zunehmender Alterskurzsichtigkeit nicht unbedingt das Leben leichter machten und viele weitere, zunächst verwirrenden Neuerungen machten den Einstieg in die neue Umgebung schwer und ließen Sehnsüchte nach einem alten Feind hochkommen, den man zunehmend und liebevoll als guten Freund betrachtete: Der gute alte SAP GUI.
Wo es ging, hat man den Wechsel gern vermieden, zumal SAP sich aller größte Mühe gegeben hat, keinerlei Einstiegs- bzw. Umstiegshilfen zu geben und das Eclipse Werkzeug zu erklären. Weitestgehend war Trial & Error angesagt. Ich selbst war ohnehin nicht groß betroffen, da meine Rolle in Analytics und Data Warehouse Projekten schon seit sehr langer Zeit weniger in der Realisierung, als vielmehr in der Steuerung von Projekten als Projektmanager lag.
Und dennoch dämmerte mir irgendwann, dass auch ich gut daran tun würde, die grundlegenden, längst eingerosteten BW Kenntnisse wieder aufzufrischen, sei es aus Vorsicht oder sei es auch nur, um in Diskussionen mit Entwicklern durchaus klar machen zu können, dass man durchaus noch folgen und nachvollziehen konnte, worum es ging, woran es hakte und - falls nötig - ggf. selbst im System mal nachzusehen, was denn eigentlich der wirkliche Stand der Dinge ist.
In den letzten Wochen habe ich begonnen, mich auf Basis der kostenlosen SAP ABAP Trial zum einen stärker in die dahinter liegende SAP HANA Datenbank einzuarbeiten und mir im Zuge dessen auch zumindest Grundkenntnisse in SAP SQLScript anzueignen, wobei die Reise noch lange nicht vorbei ist.
Der Zugriff auf die SAP HANA Datenbank erfolgt mittlerweile über das Eclipse Tool, auch wenn es von SAP - wie sollte es denn auch anders sein - immer noch 2-3 weitere Alternativen gibt, die zu erläutern den Rahmen dieses Artikels sprengt. Ich selbst habe beschlossen, mich auf Eclipse zu fokussieren, nachdem ich es lange vermieden habe. Parallel zu meiner Beschäftigung mit SAP HANA probiere ich durchaus das ein oder andere auch mal mit dem Microsoft SQL Server aus, aus purer Neugierde bzw. auch um das ein oder andere mit der SAP HANA Datenbank zu vergleichen. Demzufolge muss ich beim MS SQL Server auch einen anderen Editor bzw. eine andere Entwicklungsumgebung verwenden. Dabei ist mir tatsächlich ein kleiner, aber wie ich finde, sehr feiner Unterschied aufgefallen, den ich hier mal beschreiben möchte. Manchmal sind es eben wirklich nur Kleinigkeiten, die aus Feinden Freunde werden lassen. Spoiler Alarm: Es könnte sein, dass Eclipse und ich unsere langjährige Abneigung begraben und aus alten vehementen Feinden, zumindest mal freundschaftlich gesinnte Partner werden. Wir werden sehen. Was aber hat denn dazu beigetragen? Schauen wir uns das an.
Will man direkt auf einer Datenbank wie bspw. der SAP HANA auf eine Tabelle zugreifen und die darin gespeicherten Datensätze abfragen, in denen die Details zu Büchern gespeichert sind, z.B. die Buchnummer, die Sprache, die Kategorie, ISBN und den Autor, dann ist das unter Verwendung der Datenbanksprache SQL wie in jeder anderen SQL basierten Datenbank gar kein Problem für denjenigen, der als Datenbankadministrator, als Entwickler oder u.U. sogar als Business Analyst aufgrund der durch den Datenbankadministrator zugeteilten Rechte die Berechtigung besitzt, direkt auf Datenbankebene auf die physischen Tabellen zuzugreifen.
Das dazu erforderliche SQL Statement ist wirklich schrecklich einfach, wie man in der nachfolgenden Abbildung exemplarisch sehen kann. Man sieht dort eine sogenannte "IDE", also ein "Integrated Development Environment", man könnte auch sehr einfach von einem SQL Editor sprechen, auch wenn jetzt die Wissenden empört aufschreien werden, angesichts dieser unzulässigen hochgradigen Simplifizierung. Ja, ich weiß, es ist nicht nur ein SQL Editor, es ist in Wahrheit eine Entwicklungsumgebung, mit der man nicht nur SQL Statements schreiben und auf die Datenbank absetzen kann, sondern komplexe Anwendungen entwickeln, administrieren und analysieren kann. Alles richtig. Wir wollen es aber nicht unnötig schwer machen für diejenigen, die sich dem Thema gerade erst nähern.
Solche "IDE´s" gibt es recht viele am Markt. Jeder Datenbankhersteller hat auch seine eigene IDE im Angebot, die er im Rahmen der Lizenzierung der Datenbank zur Verfügung stellt. Natürlich muss man sie nicht nutzen, man kann i.d.R. auch andere Werkzeuge anderer Hersteller benutzen, wie z.B. DBeaver und vieles weitere mehr. Microsoft bietet u.a. für seine MS SQL Server Datenbank das hauseigene MS SQL Server Management Studio an.
SAP wiederum bietet für die Arbeit mit seiner SAP HANA DB wie bereits angedeutet nicht nur eine Umgebung an, sondern gleich mehrere, unter anderem die Eclipse basierte IDE (siehe nachfolgende Abbildung), die um viele spezifische und auf SAP Produkte abgestimmte Erweiterungen ergänzt wurde, um zu gewährleisten, dass die Umgebung alles enthält, was man zur Entwicklung leistungsfähiger und SAP basierter Applikationen oder auch einfach nur zur Abfrage von Daten mittels SQL benötigt.
In der Mitte des Bildschirms sieht man im oberen Bereich das SQL Statement, das formuliert wurde, um die Tabelle "Books" mit ihren Spalten vollständig abzufragen. Das Ergebnis wird unterhalb des SQL Skriptes in Form einer Tabelle ausgegeben. Wie man sieht, kommt man durch einen recht einfachen "Select Befehl" unmittelbar an eine sehr einfache tabellarische Darstellung des Ergebnisses, nämlich des gesamten Dateninhalts in der Tabelle.
Alle IDE´s und Editoren, die mir bisher bekannt sind unterscheiden sich so gut wie gar nicht im Hinblick auf die sog. SQL Konsole zur Formulierung von SQL Statements, die dann auf die Datenbank abgesetzt werden. Das Grundprinzip und der Aufbau ist immer derselbe. Es gibt meistens links eine baumartige Auflistung aller Datenbankschemata und der jeweiligen dort enthaltenen Tabellen und rechts daneben einen recht simplen Editor, um Befehle zu formulieren und das war es dann im Wesentlichen auch schon. Daneben existieren noch eine Menge weiterer Schaltflächen, mit denen man die unterschiedlichsten, mehr oder weniger wichtigen Dinge machen kann, angefangen vom Speichern der Skripte, über das Exportieren von SQL Code, den Export von Daten und vielen weiteren sehr nützlichen Dingen, die im Alltag eines Datenbankentwicklers eben so anfallen und auch erledigt werden müssen. Das ist letztlich alles ganz lapidar formuliert kein großes Ding.
Abweichungen gibt es nur sehr marginale zwischen den verschiedenen Editoren, aber wenn sie denn existieren, dann können sie unter Umständen durchaus sehr angenehm sein.
Zum Vergleich der SAP Eclipse basierten IDE sei hier mal exemplarisch das Microsoft SQL Server Management Studio 2019 aufgeführt. Wie man unschwer erkennen kann, sieht eine Abfrage auf eine Tabelle (hier mit einem anderen Datenbankbeispiel) dort genauso aus und führt letztlich zum selben Ergebnis einer tabellarischen Darstellung, nachdem das SQL Statement auf die Datenbank abgesetzt wurde.
Man sieht sehr deutlich ein fast gleiches Aussehen, ein identisches Vorgehen, dieselbe Ausgabe des Ergebnisses im Microsoft SQL Studio. Am Ende erhält man die Tabelle und diverse Spalten, die man ausdrücklich angegeben hat als Ergebnis und natürlich sieht man die Daten der Tabelle. So funktionieren mehr oder weniger alle SQL Editoren bzw. IDE´s, die ich bisher gesehen habe.
SAP hat in seinem Eclipse Editor ein Feature, welches es so in gewisser Weise auch in MS SQL Management Studio gibt. Anstatt sich die Struktur der Tabelle vorher anzusehen und den Select Befehl manuell zu formulieren, geht es noch viel schneller. Man positioniert einfach den Cursor auf den gewünschten Tabellenamen im ausgewählten Datenbankschema in der Schemahierarchie auf der linken Seite, öffnet mit der rechten Maustaste das Kontextmenü und wählt den Eintrag "Open Data Preview". Als Ergebnis erhält man nun genauso das passende SQL Statement automatisch vorgegeben und gleich auch noch das Ergebnis präsentiert. Schrecklich einfach, oder?
So weit, so gut, das geht ganz genauso auch im MS SQL Management Studio. Nun gibt es aber einen kleinen, aber sehr netten und hilfreichen Unterschied in der Eclipse IDE. Schaut man sich nämlich das Ergebnisfenster, das automatisch geöffnet wurde genauer an, so sieht man plötzlich drei Reiter, die es bei der SQL Konsole, in der man manuell arbeitet so nicht gibt. Ich habe sie mal rot markiert in der nachfolgenden Abbildung.
Im Reiter "Raw Data" werden die Daten so angezeigt, wie sie in der Tabelle vorliegen. Im zweiten Reiter "Distinct values" gibt es die sehr hilfreiche Möglichkeit, sich für jede ausgewählte Tabellenspalte anzeigen zu lassen, wie sich die einzelnen Ausprägungen verteilen. Im vorliegenden Beispiel sieht man, dass es 8 Mal Einträge für "E-Books" gab, wohingegen "pdf" und auch "Printed" jeweils nur 5 Mal vorkommen. Auch das prozentuale Verhältnis der Ausprägungen zur Gesamtanzahl aller vorkommenden Werte der Tabellenspalte "Category" in de Tabelle "Books" wird ermittelt und dargestellt. Vor allem aber - und das ist sehr hilfreich insbesondere bei sehr großen Tabellen mit Millionen Einträgen - erhält man die Anzahl der sog. "Null" Werte bzw. wie im vorliegenden Fall auch Felder mit dem Wert "Leerzeichen". In anderen Worten: Die Auswertung, die hier ermöglicht wird ist hilfreich für ETL Entwickler, um zum einen etwas über Verteilung der Werte zu erfahren, vor allem aber um Hinweise auf Datenqualitätsprobleme zu erhalten, wie bspw. Null Werte, leere Felder oder Ausprägungen die eigentlich dasselbe bedeuten, wo aber ggf. unterschiedliche Schreibweisen existieren. Denkbar wäre z.B. dass es "e-books" und "ebooks" bzw. "ebook" gibt, die alle dieselbe Bedeutung haben, aber in der Tabelle mit unterschiedlichen Schreibeweisen existieren. All das kann natürlich ohne Weiteres mit SQL Befehlen ebenso ermittelt werden, ist aber ein wenig unkomfortabler und es wird nicht sofort und automatisch auch noch eine grafische Visualisierung angeboten. Insofern bietet die Eclipse Umgebung hier ein recht nützliches Feature. Mir ist gegenwärtig nicht bekannt, dass es im MS SQL Management Studio ein vergleichbares Feature gibt.
Richtig spannend wird es dann aber im Reiter "Analysis". Wie bereits im Reiter "Distinct Values" wird mir hier eine identische Oberfläche geboten, in der ich mir aus dem Spaltenvorrat im Reiter "Available Objects", in dem die zur Verfügung stehenden Tabellenspalten angezeigt werden die Objekte auswählen kann, die ich nun dargestellt bekommen möchte. Man zieht einfach per "Drag & Drop" die gewünschten Tabellenspalten nach rechts in den Reiter "Label axis" und macht denselben Schritt mit der Tabellenspalte, die numerische Werte enthält.
Im vorliegenden Beispiel habe ich das für die "Book ID" und die "ISBN" getan und erhalte - zunächst noch ohne Auswahl einer numerischen Tabellenspalte eine tabellarische Darstellung aller Bücher und ihrer ISBN Nummer.
Sobald man die numerische Spalte "MRP" in den Reiter "Value axis" hineinzieht, bekomme ich nun eine vollständige tabellarische Darstellung der in der Tabelle Books existierenden Bücher, ihrer ISBN Nummer und ihres Preises (MRP).
Nun muss nur noch der Reiter "Charts" ausgewählt werden und ohne Weiteres Zutun steht mir eine grafische Darstellung der Produkt ID einschließlich der ISBN auf der X-Achse und der Preise in Form eines Histogramms zur Verfügung. Ich kann mir so sehr schnell zumindest einmal triviale, in manchen Situationen aber durchaus hilfreiche Auswertungen zu einer einzelnen Tabelle verschaffen.
Um ein vorläufiges Fazit zu ziehen:
Natürlich ersetzt dieses rudimentäre Berichtswerkzeug in der IDE keinesfalls ein mächtiges Auswertungswerkzeug. Dafür ist es auch überhaupt nicht gedacht. Ziel dieses rudimentären Berichtswerkzeugs in der IDE ist die schnelle Generierung von Übersichten in tabellarischer oder auch grafischer Form, um Datenqualitätsanalysen vorzunehmen. Dafür sind zumindest für einen ersten groben Überblick keine SQL Befehle erforderlich, kein Export der Rohdaten in ein Werkzeug wie Excel, um eine Visualisierung vorzunehmen. In zwei bis maximal vier Schritten unter Verwendung des Kontextmenüs und per Drag & Drop ist man sehr schnell am Ziel. Das erscheint mir recht gelungen und zeichnet die Eclipse IDE in meinen Augen gegenüber anderen Werkzeugen wie dem MS SQL Management Studio aus. Möglicherweise geht das doch über irgendwelche Umwege auch im MS SQL Mgmt. Studio, mir ist es jedoch bisher noch nicht aufgefallen.
Wie bereits gesagt, manchmal sind es die kleinen, scheinbar unbedeutenden Funktionen, die das Interesse und die Freude im Umgang mit einem Werkzeug deutlich erhöhen und damit Akzeptanz schaffen.
Bisher trifft die positive Erfahrung zumindest für die Nutzung der Eclipse Perspektive "SAP HANA Development" zu, die ich gelungen finde, auch wenn die SAP HANA Entwicklung nun hoffentlich nicht das ist, was Kern meiner zukünftiger Tätigkeit sein sollte. Gerne würde ich mir mal die Perspektive "BW Modellierung" näher ansehen, um herauszufinden, ob ich auch hier aus einem alten Feind, einen möglicherweise guten neuen Freund mache.
Allerdings fehlt mir aktuell leider das passende BW System dazu. Wobei... in der SAP ABAP Trial ist ja durchaus ein "embedded BW" enthalten... Mal sehen, ob ich das zumindest rudimentär nutzen und zur Auffrischung ausprobieren kann..., ich werde vielleicht darüber berichten.
𝐒𝐀𝐏 𝐄𝐖𝐌 𝐭𝐫𝐢𝐟𝐟𝐭 𝐄𝐑𝐏: 𝐒𝐲𝐧𝐜𝐡𝐫𝐨𝐧𝐢𝐬𝐢𝐞𝐫𝐞𝐧, 𝐈𝐧𝐭𝐞𝐠𝐫𝐢𝐞𝐫𝐞𝐧, 𝐎𝐩𝐭𝐢𝐦𝐢𝐞𝐫𝐞𝐧 🚀
4 MonateWow sehr fleißig Joachim! Nimm uns gerne weiter mit auf deine Reise durch eclipse!
SAP Trainings vom Profi - Autor des Buches "SQLScript für SAP HANA"
4 MonateHi Joachim, schön zu lesen, dass Du ein #SQLScript Freund geworden bist. Ich nutze in BW/4-Projekten fast nichts anderes mehr, um mir Daten anzuzeigen.