This is a test message to test the length of the message box.
Login
|
ABAP Tipp Loop at Group
Erstellt von Software-Heroes

ABAP Tipp - Loop mit Gruppen

761

Manchmal möchte man gewisse Gruppen einer ermittelten Menge an Daten abarbeiten. Mit dem heutigen Befehl wollen wir dir eine einfach Methode aus dem Standard zeigen.

Werbung


Wenn die ermittelten Daten aus der Datenbank strukturiert in Gruppen abgearbeitet werden sollen, gibt es verschiedene Wege dies zu tun. Einmal könnte man mit einer zweiten Tabelle arbeiten, die man soweit verdichtet auf die Kombinationen die man abdecken möchte. Oder man nimmt sich den von SAP vorgesehenen Weg und arbeitet über Gruppen, die man in einem Loop einfach verarbeiten kann.

Was man dabei beachten sollte und wie die jeweilige Variante funktioniert, werden wir dir heute kurz schildern und an ein paar Beispielen vorstellen.

 

Freie Verarbeitung

Bei einer freien Verarbeitung nach eigenen Methoden, gibt es sicherlich etliche Varianten, wie man mit den Daten umgehen kann und wie man sich selbst Gruppen bilden kann. Wir wollen dir an dieser Stelle eine unserer Methoden vorstellen.

Im ersten Schritt bauen wir uns eine neue Tabelle aus den Daten auf, die wir entsprechend nach den Gruppen sortieren und verdichten. In unserem Beispiel nehmen wir die Buchungskreise, die wir nach Währung und Land sortieren, dann die doppelten Einträge auf dieser Basis entfernen.


" Bildung der Gruppe
DATA(lt_group) = lt_t001.
SORT lt_group BY waers land1.
DELETE ADJACENT DUPLICATES FROM lt_group COMPARING waers land1.

 

Dann kannst du auch schon mit der Verarbeitung starten. Wir arbeiten die Daten pro Gruppe ab, dafür kann in der äußeren Schleife noch eine gewisse Vor- und Nacharbeit durchgeführt werden. In der inneren Schleife kann mit den Daten gearbeitet werden.


LOOP AT lt_group ASSIGNING FIELD-SYMBOL(<ls_group>).
  " ... vor der Verarbeitung

  LOOP AT lt_t001 ASSIGNING FIELD-SYMBOL(<ls_t001>)
   WHERE waers = <ls_group>-waers AND land1 = <ls_group>-land1.
    " Verarbeitung
  ENDLOOP.

  " ... nach der Verarbeitung
ENDLOOP.

 

Verarbeitung mit Gruppen

Bei der Verarbeitung mit Gruppen kommt reiner SAP-Standard zum Zuge. Die Arbeitsweise ähnelt stark der unseres Beispiels, du sparst dir allerdings die zweite Tabelle. Dafür musst du aber auch die abgebildete Logik verstehen.


LOOP AT lt_bukrs ASSIGNING FIELD-SYMBOL(<ls_bukrs>)
 GROUP BY ( waers = <ls_bukrs>-waers land1 = <ls_bukrs>-land1 )
 ASSIGNING FIELD-SYMBOL(<ls_group>).
  " ... vor der Verarbeitung

  LOOP AT GROUP <ls_group> ASSIGNING FIELD-SYMBOL(<ls_t001>).
    " Verarbeitung
  ENDLOOP.

  " ... nach der Verarbeitung
ENDLOOP.

 

Im ersten Loop wird die Gruppe mit den Elementen gebildet und einem neuen Feldsymbol für die Gruppe zugewiesen. Dieses neue Feldsymbol enthält nur die Felder der Gruppe. Der zweite Loop ist die Schleife über die Gruppe. Mit dem Zusatz AT GROUP wird die Gruppe angesprochen und die Daten dem neuen Feldsymbol mit allen Daten zugewiesen.

 

Fazit

Die Verarbeitung über Gruppen kann man über den ein oder anderen Weg realisieren. Der Standard Weg über die Gruppierung ist etwas schwerer zu lesen, erfüllt aber voll und ganz seinen Zweck. Der freie Weg scheint im ersten Schritt einfacher zu sein, man muss alerdings die Daten doppelt halten und etwas mehr Rechenleistung beim Ablauf einplanen. Welcher Weg für dich der Beste ist, solltest du selbst herausfinden.

 

Quelle:
SAP Dokumentation AT GROUP


Enthaltene Themen:
TippLOOP AT GROUP
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.


ABAP in der Praxis - Objekt Generator

Kategorie - ABAP

In diesem Beispiel schauen wir uns an, wie wir mit der XCO Bibliothek einen wiederverwendbaren Generator erstellen, um uns für unsere Tutorials etwas Arbeit zu sparen und automatisiert DDIC Objekte zu generieren.

09.01.2026

ABAP Tipp - Logging Performance

Kategorie - ABAP

Wie sieht es eigentlich mit der Performance des BAL Logs in der ABAP Cloud Welt aus? Schauen wir uns dazu drei Lösungen an und messen die Performance in verschiedenen Szenarien.

19.12.2025

ABAP in der Praxis - Fiori Daten fehlerhaft

Kategorie - ABAP

In diesem kleinen Praxisbeispiel schauen wir uns einen Fehlerfall in Fiori an. Hier werden die Daten im UI falsch angezeigt, obwohl alles sonst richtig zu sein scheint. Die Spur führt uns durch den RAP Stack in eine andere Richtung.

10.10.2025

ABAP Tipp - Handling von Funktionsbausteinen

Kategorie - ABAP

Wie gehst du eigentlich mit Funktionsbausteinen und der Fehlerbehandlung innerhalb von ABAP um? In diesem kleinen Tipp schauen wir uns die Behandlung auch im Rahmen von RFC an.

26.08.2025

ABAP Tipp - Generische Datentypen

Kategorie - ABAP

Was unterscheidet eigentlich CLIKE von CSEQUENCE? Generische Typen können manchmal etwas undurchsichtig sein und als ABAP Entwickler wählen wir vielleicht den Typen zu generisch.

12.08.2025