This is a test message to test the length of the message box.
Login
|
Vom ALV zum List Report
Erstellt von Software-Heroes

Vom ALV zum List Report (Selektion)

113

Du willst von einem Report mit ALV auf ein RAP Objekt mit List Report umsteigen? Wo findest du eigentlich die verschiedenen Funktionen für die Selektion? Schauen wir uns den Vergleich im Detail an.

Werbung


In diesem Artikel werfen wir einen Blick auf die möglichen Einstellungen bei der Selektion und wie diese in den beiden Varianten funktionieren.

 

Einleitung

Ein wichtiger Bestandteil einer Anwendung, die Daten anzeigt, ist die Selektion der Daten. Dabei werden Filter vorgegeben, die die Menge an möglichen Daten einschränken sollen und so verschiedene Optionen geben, um auf die Daten am Ende zugreifen zu können. Dabei gibt es hier verschiedene Möglichkeiten, die der SAP-Standard in der SAP GUI anbietet, wie zum Beispiel die Selektion über Select-Options, einen Parameter, eine Checkbox oder Radiobuttons, die bestimmte Einschränkungen vornehmen.

 

Aufbau

Gehen wir dazu in den Vergleich und schauen uns die alte Welt mit der neuen Welt an, indem wir unsere Anwendungen miteinander vergleichen.

 

SAP GUI

Starten wir die Transaktion oder die Anwendung direkt über die SE38, dann landen wir auf dem Selektionsbild. Das Selektionsbild zeigt jeweils nur die verschiedenen Kriterien an, die zur Verfügung stehen, um die Daten einzuschränken. In unserem Beispiel vier Felder. Auf dem Selektionsbild werden keine weiteren Daten oder Ausgaben angezeigt. Dies ist zur Vorbereitung unserer Auswahl der Einstellung.

 

SAP Fiori

Im List Report in Fiori Elements werden die Filter oberhalb der Tabellenausgabe angezeigt. Das heißt, nach einem Klick auf die Kachel im Fiori Launchpad landen wir direkt im List Report, wo wir Filter und mögliche Daten auf einen Blick sehen. In diesem Beispiel haben wir nur einmal die Filterbar als Screenshot aufgenommen, diese beinhaltet alle angezeigten Filter.

 

Der Vorteil bei einer Fiori-Elements-Anwendung ist der Button "Adapt Filters", der auf dem Screenshot dargestellt ist. Über diesen können wir weitere Filter dynamisch einblenden, was auf einem Selektionsbild erst einmal so nicht im Standard vorgesehen ist. Angeboten werden alle Filterkriterien, die für diese Entität aktiviert sind, was normalerweise fast alle Felder sind, außer sie sind virtuelle Felder, berechnete Felder oder wurden explizit deaktiviert.

 

Elemente

Gehen wir in diesem Kapitel einmal auf die Darstellung der verschiedenen Einschränkungen und Möglichkeiten ein und schauen auf die Umsetzung in beiden Welten.

 

Select-Option

Die Select-Option ist das flexibelste Element, das es auf dem Selektionsbild gibt, da, wenn sie leer gelassen wird, alle Einträge selektiert werden. Ansonsten können wir verschiedene Filter anwenden. In unserem Beispiel haben wir ein Between (BT) verwendet und ein Equal (EQ), um die Datensätze zu ermitteln. In der Darstellung wird die Select-Option angezeigt, jeweils der erste Eintrag. Am hinteren Button erkennt man, dass noch weitere Einstellungen gepflegt sind.

 

Die gleiche Einstellung haben wir nun auch in der Fiori-Anwendung vorgenommen. Hier versucht das System, die verschiedenen Einträge innerhalb des Feldes zu visualisieren, solange der Platz reicht. Daher sehen wir hier ganz gut den Between-Wert, aber auch den Equal-Wert, der gesetzt wurde. Die Sichtbarkeit ist immer abhängig von der verfügbaren Auflösung.

 

Parameter

Ein Parameter lässt jeweils nur einen Wert zu, den wir über das Selektionsbild eingeben können. Der Nachteil eines Parameters ist: Wird dieser leer gelassen, wird dann auch auf der Datenbank zum Beispiel gegen den Wert leer geprüft, was dafür sorgen kann, dass wir keine Ergebnisse erhalten. Ein Parameter enthält nur einen Feldwert und keine weiteren Vergleichsoperationen.

 

Fiori verwendet für den Parameter auch eine Select-Option. Dadurch ist es möglich, einen Wert leer zu lassen und trotzdem Ergebnisse zu erhalten. Ist dies nicht gewünscht, wie in unserem Fall, müssen wir das Feld auf Mandatory setzen (siehe weiter unten im Artikel).

 

Damit wir in das Feld nur einen einzigen Wert eingeben können, definieren wir über die Annotation den Filter auf Single. So lässt das System nur zu, dass wir genau einen Wert eingeben und keine Möglichkeit haben, weitere Einschränkungen vorzunehmen, wie ein Größer-gleich, Kleiner-gleich oder Between. Es wird dann immer Equal (EQ) ans Backend übertragen.

@Consumption.filter.selectionType: #SINGLE
DocType,

 

Checkbox

In einer klassischen GUI-Anwendung können wir auch Checkboxen verwenden, um diese in Selektionen anzugeben. Dabei haben wir die Möglichkeit, ein Ja (X) oder Nein (Leer) zu setzen, indem wir die Checkbox anhaken oder eben leer lassen. Wie auch beim Parameter kann dies zu entsprechenden Problemen führen, wenn wir zum Beispiel Einträge mit beiden Werten haben möchten.

 

In Fiori wird dafür ein Dropdown zur Verfügung gestellt, welches automatisch vom System generiert wird, wenn wir zum Beispiel den Datentyp ABAP_BOOLEAN verwenden. Bei dieser Option ist es aber auch möglich, ein "Not Selected" zu setzen, das heißt, die Checkbox ist weder True noch False und wird damit bei der Selektion ignoriert. Damit haben wir eine flexible Möglichkeit zu prüfen, wenn es uns egal ist, ob ein Ja oder Nein in einem Feld steht, sondern wir alle Inhalte sehen wollen. Im Hintergrund wird wieder eine Select-Option verwendet.

 

Pflichtfelder

Ein wichtiger Bestandteil ist dabei auch ein Pflichtfeld, um damit zu klassifizieren, ob eine Eingabe verpflichtend ist. In diesem Fall haben wir unseren Parameter als Pflichtfeld (OBLIGATORY) gesetzt. Es wird ein Stern davor gesetzt, um darauf hinzuweisen, dass die Eingabe benötigt wird.

 

In der Filterbar wird bereits nach dem Öffnen der Anwendung eine rote Fehlermeldung am Feld gezeigt, noch bevor wir eine Eingabe getätigt haben. Damit sind die Pflichtfelder noch stärker hervorgehoben als in der SAP GUI. Grundsätzlich ist auch hier ein Stern vorhanden, um das Feld als Pflichtfeld zu markieren.

 

Als Annotation verwenden wir in diesem Fall ein Mandatory, welches dann dafür sorgt, dass das Feld eine Pflichteingabe benötigt. Damit erreichen wir das Verhalten der SAP GUI und erzwingen eine Eingabe vom Anwender.

@Consumption.filter.mandatory: true
DocType,

 

Ausführung

In der SAP GUI findest du dann den klassischen Ausführen-Button oder auch die Taste F8 über das UI. Je nach gewähltem Theme kann der Button dabei in der Buttonleiste im oberen Bereich sein, aber auch im unteren Bereich, wenn es sich um ein moderneres Theme handelt. Hier ist das Design abhängig vom jeweils gewählten Theme innerhalb der SAP GUI. Nach dem Ausführen der Selektion wird in den meisten Fällen dann das ALV angezeigt, welches die Daten beinhaltet, die durch den Filter gelaufen sind. Das eigentliche Selektionsbild ist dann erst einmal nicht mehr sichtbar.

 

Im List Report wird nach dem Klick auf den Go-Button oder über ENTER die Selektion gegen die gebundene Entität in der Tabelle ausgeführt. Die Daten werden dann im unteren Bereich direkt unter der Filterbar angezeigt und können eingesehen werden. Ein Unterschied hierbei ist, dass der Bereich der Selektion in der Anwendung immer noch verfügbar ist, sodass Filter dynamisch angepasst werden können. In den meisten Fällen werden aber auch nicht alle Daten direkt von der Datenbank gezogen, sondern über eine sogenannte Pagination nur ein Teil der Daten angezeigt, um die Performance zu erhöhen und die Übertragung vom Server zum Browser zu optimieren.

 

Vollständiges Beispiel

In diesem Kapitel findest du alle Ressourcen zum Vergleich der beiden Anwendungen. Wir haben das RAP-Objekt in ein neues Repository gelegt, damit du es klonen kannst. Das Programm ist lediglich eine Ressource, der ebenfalls in diesem Repository liegt. Tabelle und Generierungsklasse kannst du jeweils aus dem Repository verwenden, um auch die Daten für den Report generieren zu können. Bist du auf dem gleichen System, dann brauchst du die Tabelle und die Klasse nur einmal.

 

Fazit

Grundsätzlich sind alle Funktionen aus der SAP-GUI-Welt auch noch in der Fiori-Welt verfügbar, auch wenn sie vereinfacht wurden und zum Beispiel nur noch Select-Options verwenden, was aber auch wiederum die Flexibilität der einzelnen Felder erhöht. Grundsätzlich musst du hierbei etwas umdenken, wenn es um den Zugriff auf die Daten geht.


Enthaltene Themen:
FioriABAPALVMigrationSelektion
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Dienstag und Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


Vom ALV zum List Report (Features)

Kategorie - ABAP

Du willst von einem Report mit ALV auf ein RAP Objekt mit List Report umsteigen? Wo findest du eigentlich die verschiedenen Funktionen und Features im UI? Schauen wir uns den Vergleich im Detail an.

06.10.2026

Vom ALV zum List Report (Einführung)

Kategorie - ABAP

Du willst von einem Report mit ALV auf ein RAP Objekt mit List Report umsteigen? Wo findest du eigentlich die verschiedenen Funktionen für den Start und die Einbindung? Schauen wir uns den Vergleich im Detail an.

29.09.2026

Fiori für ABAP - Navigation Parameters

Kategorie - ABAP

Was ist eigentlich, wenn zu viele Parameter bei der Navigation übergeben werden und die Ziel-App nicht mehr das korrekte Ergebnis anzeigt? Eine mögliche Lösung können Navigation Parameters sein, die wir uns einmal im Detail anschauen.

15.09.2026

052: 10 Minutes from Start to Launchpad

Kategorie - YouTube

In dieser Folge schauen wir uns an, wie wir innerhalb von 10 Minuten eine RAP Anwendung erstellen können, diese generieren und bereitstellen und am Ende fertig im Launchpad aufrufen.

07.09.2026

Fiori für ABAP - Änderung archivierter Apps

Kategorie - ABAP

Ist die Arbeit an einer Fiori App abgeschlossen, wir diese in einem Git Repository abgelegt, um sie später immer noch zugreifbar zu machen. Schauen wir uns einmal den Flow an, um das Projekt erneut zu laden und anzupassen.

21.08.2026