HANA und Eclipse

Aus SAP-Wiki
(Weitergeleitet von HANA)
Zur Navigation springenZur Suche springen

Siehe Basis.

Dieses Kapitel über HANA ist Stand Juli 2024 noch wenig gefüllt. Es wird aber schnell erweitert werden, da ich im aktuellen SAP-Projekt an einer HANA-Einführung arbeite und daher das HANA-Know-how im realen Kundenprojekt getestet und entwickelt werden kann.

HANA (High Performance Analytic Appliance) ist eine Datenbanktechnologie von SAP, die u. a. den Arbeitsspeicher für die Speicherung und Datenzugriff der Datenbank nutzt, um schnellere Zugriffe auf Daten zu ermöglichen.

Die Daten werden in HANA zeilen- und spaltenorientiert gespeichert. HANA ist eine Kombination von Hardware und Software.

HANA ist einer der Hoffnungsträger von SAP für zukünftiges Wachstum.

Umstellung der SAP-Entwickler zur HANA-Programmierung

  • Ein HANA-Release ist neben dem schnellen Arbeitsspeicherzugriff auch in vielen anderen Hinsichten moderner.
  • Es erfordert allerdings auch vom Programmierer das Erlernen neuer Möglichkeiten von ABAP-Schlüsselbefehlen und der Beherrschung der IDE von Eclipse.
  • SAP SE konzentriert die Weiterentwicklung des Entwicklungsframeworks auf Eclipse. Die leistungsfähige Transaktion SE80 und (die meisten) klassischen Entwicklungstransaktionen aus dem SAP-GUI werden nicht mehr weiter entwickelt.
  • Jeder SAP-Entwickler muss sich früher oder später mit Eclipse, bzw. dem HANA-Studio beschäftigen. Kenntnisse über HANA, die neuen ABAP-Befehle (ab Release 7.40) und die IDE Eclipse werden eine zunehmend bedeutende Qualifikation für SAP-Entwickler sein.
  • Das alte ABAP-Coding wird wie von SAP gewohnt weiterhin funktionsfähig sein.
  • Das alte Coding mag langsamer sein oder Einschränkungen in anderer Hinsicht haben, aber altes Coding wird weiterhin lauffähig sein und daher ist das Wissen über die alten Befehle und die Entwicklung im klassischen SAP-GUI weiterhin wertvoll. Es wird auch noch lang dauern, bis alle Entwicklungstransaktionen aus dem SAP-GUI auch nativ in Eclipse lauffähig sind und nicht lediglich in Eclipse eingebettet sind.
  • Neue Entwickler können sich vielleicht auf Eclipse konzentrieren. Aber dann braucht es auch weiterhin die etablierten SAP-Entwickler, die das alte Coding weiter betreuen. Je mehr ein SAP-Entwickler sowohl die die klassische SAP-Entwicklung als auch die neuen Möglichkeiten unter Eclipse beherrscht, umso wertvoller ist dieser SAP-Entwickler bei einem SAP-Kunden.

Neues ABAP (ab Release 7.40)

  • Neues ABAP (ab Release 7.40)
  • Im ABAP-Release 7.40 sind viele neue Befehle hinzugekommen, die häufig auch die Möglichkeiten von HANA besser ausnutzen und oft im Vergleich zu alternativen klassischen ABAP-Befehlen performanter sein werden.
  • Es ist jedoch immer die zusätzliche Performance von den neuen Befehlen mit der Lesbarkeit des Codings und der Debuggingmöglichkeiten abzuwägen. Oftmals stellen die neuen Befehle hohe Anforderungen an das Know-how der ABAP-Entwickler/Berater und das Coding ist schwer zu verstehen, wenn man sich noch nicht intensiv mit den neuen ABAP-Befehlen beschäftigt hat. Viele neue Befehle fassen eine Reihe von klassischen Einzelschritten in einem Befehl zusammen. Daher ist das schrittweise debuggen und verstehen des Codings oftmals nicht mehr möglich.
  • Die neuen ABAP-Befehle sollten ausführlicher kommentiert werden, um das Verständnis zu erleichtern.

Schlüsselbefehl Select und Umstellung der Programmierung

  • Schlüsselbefehl Select
  • Der Datenbank-Select nimmt unter HANA eine noch höhere Bedeutung ein als bereits in vorherigen ABAP-Releases. und die Möglichkeiten vom Schlüsselbefehl SELECT sind mit den letzten ABAP-Releases deutlich gewachsen.
  • Es lohnt sich, sich mit den verschiedenen Möglichkeiten dieses Befehls zu beschäftigen.
  • Vor HANA war es oft empfehlenswert mit internen Tabellen zu arbeiten und über die internen Tabellen die Daten zu verdichten.
  • Mit HANA wird die Verarbeitung möglichst auf die Datenbank verlegt.
  • Es ist mit HANA empfehlenswert intensiv mit Datenbankselects zu arbeiten, um die Datenverdichtung der Datenbank zu überlassen und dann möglichst weit verarbeitete Daten an das Programm/den Applikationsserver zu übergeben.

Performancevorteile von HANA

SAP in Eclipse

  • Eclipse wurde von IBM ursprünglich allein für die Programmiersprache Java entwickelt und 2001 als Open-Source freigegeben.
  • Eclipse kann durch mit Erweiterungen um zusätzliche Funktionen ergänzt werden. Auch die Firma SAP hat das Potential von Eclipse erkannt und mehrere Erweiterungen für SAP geschrieben. Neue Funktionen im Framework werden von SAP zuerst immer in Eclipse geschrieben und nur z. T. im SAP-GUI ebenfalls implementiert.
  • Eclipse muss lokal auf dem PC installiert werden. Eclipse kommuniziert über ein Webservices-API mit den Backendsystemen. Die Objekte liegen also weiterhin auf dem Applikationsserver.

Vorteile von ABAP in Eclipse im Vergleich zur ABAP-Entwicklung im SAP-GUI

  • keine Beschränkung auf 6 Modi pro SAP-System
  • Alle nötigen SAP-Systeme (ABAP-Projekte) sind in Eclipse unter einer Oberfläche sichtbar und offene SAP-Systeme mit ihren Modi sind übersichtlich über Registerkarten im Zugriff
  • farbliche Hervorhebung aller Verwendungen einer Variablen in Eclipse
  • Umbenennung von Variablen inklusive aller Verwendungen im lokalen Kontext
  • Ständige Weiterentwicklung der ADT in Eclipse
  • Sehr viele Shortcuts zur schnellen Bedienung von Funktionen in Eclipse
  • Die Benutzeroberfläche von Eclipse ist extrem flexibel und lässt sich mit allen benötigten Fenstern sehr individuell gestalten. Es können Fenster ein- und ausgeblendet werden, verschoben und in der Größe verändert werden, so wie man es möchte. Die Änderungen werden automatisch im Workspace gespeichert.
  • Wird innerhalb eines Entwicklungsobjektes ein anderes Entwicklungsobjekt aufgerufen (z. B. ein Funktionsbaustein innerhalb eines Programms), dann wird dieses andere Entwicklungsobjekt auf einer separaten Registerkarte in Eclipse dargestellt. So ist z. B. der Vergleich von Parametern vom Aufrufer und vom Funktionsbaustein deutlich einfacher als wenn beide Entwicklungsobjekte im gleichen Modus dargestellt werden und man dann öfters hin und her gehen muss, um die Details zu vergleichen. Es öffnen sich dadurch in Eclipse schnell viele Fenster. Aber die lassen sich auch sehr schnell wieder schließen (Rechtsklick auf eine Registerkarte und z. B. "Close all" oder "Close others").
  • Die Navigation "zurück zum letzten Fenster" (nach F3) und "wieder vor zum letzten aufgerufenen Fenster" mit den Tastenkürzeln ALT+Pfeil links und ALT+Pfeil rechts" ist sehr intuitiv und wie im Browser
  • Es lässt sich ein Fenster "ABAP Element Info" einblenden, wo man sofort bei einer Markierung einer Variablen deren Typisierung sieht.
  • Über ein Suchfeld ("Open Development Objekt") lassen sich sehr schnell Objekte mit einem beliebigen Objekttyp finden (Tastenkürzel: strg+umschalt+F2). Man muss nicht erst wie in SE80 den passenden Objekttyp (Programm, Funktionsgruppe, Funktionsbaustein etc.) vorselektieren.
  • Mit einem Suchfeld "Quick Access", bzw. "Find Actions" (Tastenkürzel: strg + 3) kann man nach Befehlen suchen, wie z. B. nach "Project". Das ist hilfreich, wenn man nicht weiß wo im Menü eine Funktion sich befindet
  • Wenn in Eclipse eine Variable umbenannt wird über das Menü "Source Code - Rename", werden die Verwendungen dieser Variable auch umbenannt
  • CDS-Views können ausschließlich mit Eclipse angezeigt und bearbeitet werden, in SE80 nicht.
  • Methoden in Klassen können sehr schnell angelegt werden
  • Gibt es Syntaxfehler in einem Programm, so werden die dafür verantworltichen Zeilen mit einem rote X-Symbol markiert und mit Mouse-Over sieht man den entsprechenden Fehlertext. Ein gelbes Ausrufezeichen steht für Warnungen. Zusätzlich sieht man den Fehler-/Hinweistext auch im Fenster "Problems".
  • Es gibt in Ecipse mächtige Funktionen der Code-Vervollständigung. Mit dem Tastenkürzel strg+leertaste wird eine Vorschlagsliste für die Code-Vervollständigung angezeigt. Markieren und ENTER übernimmt den Vorschlag.
  • Code-Vorlagen lassen sich in Eclipse komfortabel erstellen und per Drag&Drop von einem Fenster "Template" einfügen in den Code oder auch per Code-Vervollständigung (Tastenkürzel strg+leertaste).
  • Findet man über die Suchfunktionen einen Transaktionscode, würde ein Klick auf diesen Transaktionscode deren Eigenschaften zeigen. Aber möchte man den Transaktionscode direkt ausführen, geht das über die Tastenkombination alt+F8.
  • Im ATD in Eclipse gibt es eine Aufgabenverwaltung. Man könnte z. B. eine Aufgabe anlegen für einen CR oder Ticket, an dem man arbeitet. Öffnet man Entwicklungsobjekte in Eclipse für eine aktivierte Aufgabe, merkt sich Eclipse diese. Deaktiviert man die Aufgabe, werde alle offenen Entwicklungsobjekte zu dieser Aufgabe geschlossen. Das spart oftmals lästiges Nachschlagen nach Entwicklungsobjekten.
  • In Eclipse ist es sehr leicht Lesezeichen/Bookmarks zu setzen (rechte Maustaste auf Leiste neben Codingzeile und "Add Bookmark", und dann die Bookmarks anzuspringen über den View "Bookmarks".

Nachteile von ABAP in Eclipse im Vergleich zur ABAP-Entwicklung im SAP-GUI

  • Man kann auch Strukturen und Tabellen in Eclipse anlegen. Dies muss man jedoch über eine eigene Syntax als Text tun. Das ist höchst gewöhnungsbedürftig und da scheint mir die Tabellen-/Strukturanlege in der Transaktion SE11 wesentlich intuitiver und leichter.
  • Klassen werden in Eclipse immer als Ganzes gesperrt. Das kann bei größeren Klassen dazu führen, dass Entwickler sich gegenseitig sperren.
  • Die Entwicklungsumgebung SE24 (Class Builder) für Klassen und Interfaces ist sehr übersichtlich und komfortabel. In Eclipse bearbeitet man Klassen rein in einer Codingansicht. Das ist mindestens gewöhnungsbedürftig.
  • Nicht alle Entwickler-Transaktionen existieren in Eclipse. Es wird dann als Fallback der SAP-GUI geöffnet. Meist ist dann zu wenig Platz für den SAP-GUI und man öffnet wie gewohnt den SAP-GUI über das Programm SAP-GUI. Dann muss man schon wieder parallel mit Eclipse und SAP-GUI arbeiten.

Unterschied HANA-Studio, ABAP Devopment Studio (ADT) und Eclipse

  • Das HANA-Studio basiert auf Eclipse. Es ist die Entwicklungsumgebung (IDE) für SAP HANA und die Administrationsoberfläche für HANA.
  • Die Erweiterung in Eclipse für ABAP heißt "ABAP Developer Studio (ADT)". Diese SAP-Erweiterung in Eclipse kann auch mit Nicht-HANA-Systemen bereits genutzt werden.

Format (Pretty-Printer)

  • Ähnlich wie in ABAP der "Pretty-Printer" funktioniert der Menübefehl "Format". Er formatiert den Quelltext und macht ihn leichter lesbarer.

Tastenkombinationen in Eclipse

best of
F2 Informationen zum Codeelement
F3 Navigieren zu Objekt unter Cursor. Die aus dem SAP-GUI bekannte Vorwärtsnavigation per Doppelklick gibt es in Eclipse nicht. Ein Doppelklick in Eclipse markiert ein Wort in einer Codingzeile.
F5 Einzelschritt ausführen im Debugger (Unterroutinen werden schrittweise ausgeführt)
F6 Einzelschritt ausführen im Debugger (Unterroutinen werden als Ganzes ausgeführt)
F7 Unterroutine wird im Debugger weiter ausgeführt und Cursor steht nach Ausführung der Unterroutine
F8 Ausführen Report (wie im SAP-GUI). Im Debugger komplett oder bis zum nächsten Breakpoint
F11 Startet den Debugger
UMSCH + F1 Pretty-Printer
STRG + SPACE Aufruf Muster/Codevervollständigung
STRG + F2 Syntaxprüfung
STRG + F3 Aktivieren Report/Objekt
STRG + UMSCH + A Finden beliebiger Entwicklungsobjekte
STRG + UMSCH + G Verwendungsnachweis von einem Objekt
STRG + F Suche im Quelltext
STRG + H Suche nach ABAP-Objekten oder im Quelltext
STRG + S Speichern auf der aktuellen Registerkarte
STRG + 1 Quick Assist (Assistent)
STRG + 3 Quick Access
STRG + 7 Codingzeile wird kommentiert, bzw. Kommentarsymbol wird entfernt
ALT+LINKS/RECHTS Navigationsobjekt links/rechts wird aktiv
sonstige
STRG + N Neues Entwicklungsobjekt
STRG + UMSCHALT + B Alle Breakpoints werden deaktiviert, bzw. wieder aktiviert
STRG + UMSCHALT + S Alle Änderungen in allen Registerkarten werden gespeichert
STRG + F6 In einer neuen Registerkarte kann SAP-GUI ausgeführt werden
STRG + UMSCHALT + F3 Alle inaktiven Projekte werden in einer Liste zur Aktivierung angeboten
STRG + SPACE Quellcode vervollständigen
STRG + UMSCHALT + L Liste aller Tastenkürzel in Eclipse
ALT + F8 Beliebige SAP-Anwendung kann ausgeführt werden

SAP-GUI in Eclipse

  • Es sind bisher noch relativ wenige Funktionen in Eclipse implementiert, die man für die SAP-Entwicklung braucht.
  • Man muss jedoch nicht immer zum SAP-GUI wechseln und die in Eclipse fehlende Funktion im SAP-GUI ausführen. Ist eine Funktion in Eclipse nicht implementiert, wird das SAP-GUI in Eclipse eingebettet angezeigt.
  • Ähnlich wie beim Adobe LiveCycle Designer, der ein Windows-Programm ist und nicht im SAP-GUI implementiert ist, aber im SAP-GUI eingebettet angezeigt wird, möchte Adobe Forms-Formulare editieren.

Zeichenkettenfunktionen im CDS-View

"ABAP Projekt" in Eclipse

  • Wenn Eclipse erfolgreich eingerichtet wurde, sieht man noch keine Entwicklungsobjekte aus dem eigenen SAP-System.
  • Es muss zunächst ein "ABAP Projekt" eingerichtet werden. Das ist keine SAP-Entwicklung, wie man es vielleicht vermuten würde, sondern eine Verbindung zu einem SAP-System. Erzeugt man ein "ABAP Projekt" erscheint (bei erfolgreicher Konfiguration von Eclipse) eine Liste der verfügbaren SAP-Systeme im Kundensystem. Ggf. muss dann bei einer Auswahl eines SAP-Systems noch Mandant, User und Passwort eingetragen werden. Ist die Verbindung zu einem SAP-System über das ABAP Projekt erfolgreich hergestellt, kann man aus diesem SAP-System Entwicklungsobjekte aufrufen oder neu anlegen.

HANA-Entwicklungsobjekte

Attribute-View

  • Attribute-Views sind in Eclipse/HANA sehr ähnlich zu den Views in ABAP.
  • Hier werden 2 Tabellen miteinander verknüpft.

Analytic View

  • Der Analytic View baut auf dem Attribute-View auf, kann aber um zusätzliche Tabellen erweitert werden.

Calculation-View

  • Der komplexeste View im Vergleich mit Attribute View und dem Analytic View.
  • Mehrere Views können hier zusammengeführt werden (UNION)
  • SQLScript kann zur Datenaufbereitung eingesetzt werden

CDS-Views und DDL SQL View

Stored Procedures (AMDP, ABAP Managed Database Procedures)

SQLScript

Weitere Themen im Umfeld HANA

Extensibility - Erweiterbarkeit

Bei der Erweiterbarkeit (Extensibility) im HANA Umfeld unterscheidet man zwischen In-App Extensibility und side-by-side Extensibility.

Die Extensibility kann UI-Layer, Anwendungslogik und/oder Datenbank betreffen.

Die Extensibility ist abhängig vom HANA Produkt (Essential Edition, Extended Edition, Enterprise Cloud, On-Premise).

Essential Edition und Extended Edition nutzen die Public Cloud. Enterprise Cloud (inzwischen "Rise ...") nützt die Private Cloud. On-Premise benötigt kundenseitig Infrastruktur oder via IaaS durch einen Hyperscaler (Amazon Web Services, Google Cloud, Microsoft Azure).

Die Erweiterungsmöglichkeiten sind bei Essential Edition eingeschränkt und vergrößern sich bei der Extended Edition und weiter auf die HANA Enterprise Cloud und HANA on Premise.

Details sind vielfältig, daher hier einige Links:

Weiterbildungskurse HANA

  • Vom Hasso-Plattner-Institutut (HPI) gibt es in regelmäßigen Abständen Weiterbildungskurse, die über das Internet zu absolvieren sind. Hier gibt es auch einen kostenlosen Kurs über HANA, der auf der Cebit 2013 von den HPI-Mitarbeitern empfohlen wurde.
  • SAP-Hana-Kurse

Web-Links

Literatur