Ansicht
Dokumentation

ABENLOOP_GROUP_BY_EXPLICIT_ABEXA - LOOP GROUP BY EXPLICIT ABEXA

ABENLOOP_GROUP_BY_EXPLICIT_ABEXA - LOOP GROUP BY EXPLICIT ABEXA

CL_GUI_FRONTEND_SERVICES - Frontend Services   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Gruppierung mit LOOP, explizit und implizit

Das Beispiel demonstriert eine selbst programmierte Gruppenschleife und deren Ersetzung durch GROUP BY.

Quelltext

Ausführen

Beschreibung

Die Aufgabe, die Zeilen einer einspaltigen internen Tabelle nach Vergleichskriterien in drei Gruppen einzuteilen wird auf zwei Arten gelöst:

  • Die Methode group_explicit arbeitet ohne GROUP BY. Statt dessen wird die Gruppierung explizit im ABAP-Programm vorgenommen, wofür eine explizite Hilfstabelle helper_tab benötigt wird. Nach der Gruppierung zeigen die Zeilen der geschachtelten Tabelle refs in helper_tab für jede über die Spalte key definierte Gruppe auf die zugehörigen Zeilen der ursprünglichen Tabelle numbers. Nach dieser Gruppierungsschleife folgt die Gruppenschleife über die Hilfstabelle, wobei bei jedem Schleifendurchgang durch Auswertung der geschachtelten Tabellen refs auf die Gruppenmitglieder zugegriffen wird.
  • Die Methode group_by arbeitet mit GROUP BY. Das Resultat ist das Gleiche wie von group_explicit. Ein Vergleich der Methoden zeigt, dass die Gruppierungsschleife der ersten Methode in der zweiten Methode implizit durch GROUP BY erledigt wird und dass keine explizite Hilfstabelle benötigt wird. Zu sehen ist nur die Gruppenschleife.

In beiden Methoden werden drei Arten von Schleifen ausgeführt, die Gruppierungsschleife, die Gruppenschleife und die optionalen Mitgliederschleifen. Die Verwendung von GROUP BY erspart die explizite Programmierung der Gruppierungsschleife, was bequemer ist und die zweite Methode merklich kürzer macht.






CL_GUI_FRONTEND_SERVICES - Frontend Services   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 2116 Date: 20240523 Time: 105652     sap01-206 ( 48 ms )