ALV Varianten
Mittlerweile bietet ABAP drei verschiedene Möglichkeiten einen SAP List Viewer (ALV) zu erstellen. Doch warum diese 3 Möglichkeiten? Was unterscheidet sie? Diese Fragen werden in diesem Blog Beitrag beantwortet.
Für Besucher von Erlebe Software können wir unseren Kurs „SAP ABAP für Anfänger: Programmieren lernen mit SAP“ mit kräftigem Rabatt anbieten.
SAP ABAP für Anfänger: Programmieren lernen mit SAP
Warum REUSE_ALV_GRID_DISPLAY, CL_GUI_ALV_GRID und CL_SALV_TABLE?
Im Grunde sind die drei verschiedenen Möglichkeiten Weiterentwicklungen voneinander. Am Anfang waren die Funktionsbausteine. Die Funktionsgruppe SLVC_FULLSCREEN beinhaltet den Funktionsbaustein REUSE_ALV_GRID_DISPLAY. Diese Variante ist die älteste und gibt es seit Release 4.0. Nach den Funktionsbausteinen kam ABAP Objects und damit auch die objektorientierte Variante des ALV Grids: CL_GUI_ALV_GRID. Diese Variante gibt es seit Release 4.6. Mit dem Release 6.4 kam dann noch eine objektorientierte Variante: CL_SALV_TABLE. Diese neue Variante soll für Entwickler einfacher handzuhaben sein.
Sie erhalten die Komplettlösung – Ihr Projekt machen wir zu unserem Projekt. Mit professionellem Projektmanagement sicheren wir den Projekterfolg.
Gerne spreche ich mit Ihnen über Ihre Ausgangslage und zeige Lösungsmöglichkeiten auf. Auf Wunsch unterbreite ich Ihnen im Anschluss ein unverbindliches Angebot.
Kontaktieren Sie mich: Telefon 0211.9462 8572-16 oder per E-Mail info@erlebe-software.de
Ingo Biermann, Fachbereichsleiter
Unterschiede zwischen den Varianten
Der auffälligste Unterschied ist wohl vorerst, dass REUSE_ALV_GRID_DISPLAY auf einem Funktionsbaustein basiert und die anderen beiden objektorientiert umgesetzt wurden. Daneben gibt es aber noch weitere Unterschiede. Sowohl bei dem Funktionsbaustein als auch bei CL_GUI_ALV_GRID müssen zu einem die Daten als auch die Beschreibung der Daten (Meta Daten) geliefert werden. D.h. dem Programm müssen die Daten, die angezeigt werden sollen, mit einer internen Tabelle übergeben werden. Gleichzeitig muss aber auch beschrieben werden, was für Daten das sind. Die Beschreibung der Daten kann entweder über den sogenannten Feldkatalog oder über den Strukturnamen übergeben werden und bestimmt z.B. die Spaltennamen im ALV. Das nächste Bild soll das verdeutlichen:
Das nächste Bild zeigt den Unterschied zu CL_SALV_TABLE. Hier werden lediglich die Daten benötigt mit denen ein Objekt vom Typ CL_SALV_TABLE erzeugt wird. Die Klasse erstellt die Datenbeschreibung dann automatisch anhand der übergebenen Daten.
Die getrennte Übergabe von Daten und Meta-Daten bei REUSE_ALV_GRID_DISPLAY und CL_GUI_ALV_GRID ist sehr fehleranfällig. Wenn die Meta-Daten nicht zu den übergebenen Daten passen kommt es zu Fehlern und das ALV wird nicht angezeigt. Diese Schwachstelle wurde unter anderem bei CL_SALV_TABLE behoben.
REUSE_ALV_GRID_DISPLAY ist die älteste Variante, wodurch auch die Funktionalität geringer ist. Z.B. wird von den beiden objektorientierten Varianten die Drag & Drop Funktionalität im ALV unterstützt. REUSE_ALV_GRID_DISPLAY unterstützt diese Funktionalität nicht.
Bei der Entscheidung, welche Variante für welchen Anwendungsfall genutzt werden sollte, empfehle ich eindeutig die aktuellste Variante, die vom jeweiligen SAP Release zur Verfügung gestellt wird. Gerade die neuste Variante CL_SALV_TABLE ist durch den oben beschriebenen Aufbau wesentlich robuster. Des Weiteren sind die beiden Varianten CL_GUI_ALV_GRID und CL_SALV_TABLE für Entwickler durch den objektorientierten Ansatz einfacher zu handhaben und bieten mehr Funktionalität.
Fazit
Dieser Blog Beitrag gibt einen Überblick über die verschiedenen ALV Varianten. Zukünftige Blog Beiträge werden näher auf den Umgang mit den einzelnen Varianten eingehen.
Welche Variante nutzen Sie am liebsten und warum? Welche Probleme haben Sie mit ALVs? Ich freue mich auf Ihre Kommentare.