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

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)
Werbung

ABAP Tipp - Wait for Task

Kategorie - ABAP

Heute einmal einen Tipp für die asynchrone Verarbeitung oder wenn ihr in speziellen Situationen die Verarbeitung in einen separaten Task geben wollt. Wie geht es im Anschluss weiter?

05.03.2021

ABAP Tipp - Performance INSERT vs VALUE

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal die Performance der Einfüge-Operationen APPEND, INSERT und VALUE im Hinblick auf Tabellen an und bewerten die Performance und Stabilität bei der Entwicklung.

26.02.2021

ABAP Tipp - Suche im Quellcode

Kategorie - ABAP

Manchmal ist die Suche über verschiedene Quellcode in einem System nötig. Wir zeigen dir wie es in der SAP GUI und in Eclipse funktioniert.

24.04.2020

ABAP Tipp - Icons

Kategorie - ABAP

Icons oder auch Ikonen in SAP finden und richtig nutzen? Hier ein kleiner Guide zum Umgang mit den Bildern für unterschiedliche Zwecke.

06.03.2020

ABAP Tipp - Klassen und Dynpros

Kategorie - ABAP

Wie verwendest du am Besten lokale Klassen und Dynpros miteinander? Und funktioniert das Ganze eigentlich sinnvoll?

28.02.2020

Wir verwenden Cookies für unsere Dienste und Funktionen. Mehr Informationen