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

475

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 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 Praxis - String Verarbeitung

Kategorie - ABAP

In diesem praktischen Beispiel schauen wir uns die String Verarbeitung zur Ermittlung der CDS Namen in CamelCase an und wie du das mit ABAP umsetzen kannst.

15.10.2024

ABAP in der Praxis - Test Driven Development

Kategorie - ABAP

Wie funktioniert eigentlich TDD in der Praxis und gibt es einfache Beispiele zum Lernen in ABAP? In dieser Übung gehen wir auf den praktischen Teil ein.

24.09.2024

ABAP in der Praxis - Datenmenge zusammenführen

Kategorie - ABAP

Wir führen wir zwei unterschiedliche Datenmengen in ABAP zusammen, vor allem im Hinblick auf das Moderne ABAP? Eine praktische Aufgabe zum Thema.

17.09.2024

ABAP in der Praxis - Modern ABAP

Kategorie - ABAP

In dieser kleinen Aufgabe schauen wir uns bestehenden klassischen ABAP Quellcode an und versuchen diesen nach Modern ABAP zu optimieren.

27.08.2024

ABAP Tipp - Performance Datenfilterung

Kategorie - ABAP

Welche Anweisung verwendest du in ABAP zur Filterung von internen Tabellen und ist diese performant? In diesem Artikel mehr dazu.

13.08.2024