ABAP Tipp - ALV Varianten transportieren
In diesem kleinen Artikel zeigen wir dir einige Tipps im Bezug auf ALVs, Varianten und die Verteilung im System.
Inhaltsverzeichnis
ALV oder auch SAP List Viewer wird für alle möglichen Ausgaben im System verwendet und hatte sich lange Zeit als neuer Standard nach den Drucklisten etabliert. Für die Entwicklung eines ALV gibt es mittlerweile viele verschiedene Methoden, die alle ihre Vor- und Nachteile haben.
Methoden
Heute existieren noch verschiedene Methoden um einen ALV zu erzeugen, dazu ein kurzer Überblick sortiert mit der ältesten Technologie zuerst.
- Funktionsbaustein REUSE_ALV_GRID_DISPLAY
- Klasse CL_GUI_ALV_GRID
- Klasse CL_SALV_TABLE
Wieso eigentlich zwei Klassen im System wirst du dich fragen? Wenn du dir die ältere Klasse CL_GUI_ALV_GRID anschaust, wirst du schnell feststellen, dass hier ein Refactoring dringend nötig war. Die Klasse ist mit ca. 220 Methoden und über 25000 Zeilen Code riesig, nicht mehr richtig wartbar und unübersichtlich. Die neue Klasse CL_SALV_TABLE ist die Überarbeitung der alten Klasse nach modernen OO Prinzipen.
Ein Nachteil der neuen Klasse ist aber, dass damit keine Änderung an Daten im ALV durchgeführt werden können. Die Klassen bieten reine Anzeigefunktionalität. Damit solltest du auf jeden Fall beide Klassenvarianten beherrschen.
Aufbau
Hier ein kleines Beispiel, wie man mit wenig Code direkt eine ALV aufbaut und anzeigt. Dazu lesen wir im ersten Schritt die Buchungskreise, rufen die Factory auf, aktivieren noch ein paar Einstellungen und zeigen die Daten auf dem Bildschirm an. Dazu ist dann auch kein seperates Dynpro notwendig und man erhält auch die Funktionsleiste dazu.
SELECT *
FROM t001
INTO TABLE @DATA(lt_companies).
cl_salv_table=>factory(
IMPORTING r_salv_table = DATA(lo_alv)
CHANGING t_table = lt_companies ).
DATA(lo_functions) = lo_alv->get_functions( ).
lo_functions->set_all( ).
DATA(lo_layout) = lo_alv->get_layout( ).
lo_layout->set_default( abap_true ).
lo_layout->set_key( VALUE #( report = sy-repid handle = '0001' ) ).
lo_layout->set_save_restriction( ).
lo_alv->display( ).
Durch die Konfiguration der Funktionen und des Layout-Handlings erhältst du die gewohnte Funktionsleiste, mit der du dann das Layout des ALV ändern und sichern kannst.
Transport von Varianten
Für den Transport einer Variante musst du zuerst einmal deine Variante im System konfigurieren und anlegen. Dies kannst du den letzten drei Buttons der Funktionsleiste machen. Nachdem du die Variante angelegt hast und noch in der Anzeige deiner Daten bist, kannst du über das Menü unter dem Punkt "Einstellungen -> Layout -> Verwalten" abspringen.
Im Anschluss erhältst du eine Übersicht der Varianten zum aktuell ALV. Hier kannst du dir die zu transportierende Variante wählen und über das Menü unter dem Punkt "Layout -> Transportieren", die Variante in einen bestehenden Transport übernehmen oder einen Neuen anlegen.
Du benötigst einen Customizing Transport im System, um die Aufzeichnung durchzuführen. Der Eintrag im Transport sieht dann wie folgt aus.
Fazit
Wenn es um Darstellung und Änderung von Daten geht, haben sich mittlerweile viele anderen Technologien etabliert, die auch zumeist unabhängig von der SAP GUI sind. Webdynpro oder SAP Fiori basieren auf Webtechnologien, werden aber in Bezug auf Schnelligkeit in der Entwicklung wahrscheinlich die klassische Liste im System nicht so schnell einholen. Zumindest die nächsten Jahre wird damit der ALV ein wichtiger Bestandteil für den ABAP Entwickler bleiben.