Ansicht
Dokumentation

ABAPLOOP_AT_ITAB_GROUP_BY_BINDING - LOOP AT ITAB GROUP BY BINDING

ABAPLOOP_AT_ITAB_GROUP_BY_BINDING - LOOP AT ITAB GROUP BY BINDING

Fill RESBD Structure from EBP Component Structure   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

LOOP AT itab, group_result

... ${ $}
  $| ${INTO group$}$|${ASSIGNING group>$}$|${REFERENCE INTO group_ref$} ...


Alternativen:

1. ... ${ $}

2. ... ${INTO group$}$|${ASSIGNING group>$}$|${REFERENCE INTO group_ref$}

Wirkung

Definiert das Ausgabeverhalten der Gruppenschleife bei einer Gruppierung einer internen Tabelle in einer LOOP-Schleife. Durch das Ausgabeverhalten werden zwei Dinge definiert:

  • Ein Datenobjekt bzw. ein Feldsymbol, auf dessen Inhalt in der Gruppenschleife zugegriffen und das auch an aufgerufene Prozeduren übergeben werden kann.
  • Ein Bezeichner für die Gruppe, der ausschließlich innerhalb der aktuellen Gruppenschleife und darin geschachtelten Schleifen in der Anweisung LOOP AT GROUP oder in einem Ausdruck FOR ... IN GROUP für die Angabe einer Gruppe verwendet werden kann.

Alternative 1

... ${ $}


Wirkung

Repräsentantenbindung. Wenn für das Ausgabeverhalten group_result nichts angegeben ist, wird das Ausgabeverhalten durch den Zusatz result für die Tabellenzeilen bestimmt. Bei jedem Schleifendurchgang wird die erste Zeile der aktuellen Gruppe als Repräsentant ihrer Gruppe dem dort definierten Datenobjekt bzw. Feldsymbol zugewiesen. Der Repräsentant ist an die aktuelle Gruppe gebunden und in der Anweisung LOOP AT GROUP oder dem Ausdruck FOR ... IN GROUP ist die Gruppe über den Namen des Repräsentanten ansprechbar. IN GROUP.

Bei Verwendung der Repräsentantenbindung

  • ist der Zusatz WITHOUT MEMBERS nicht möglich, da es dann keine Zuordnung vom Repräsentanten zu seiner Gruppe gäbe,
  • können zu einem strukturierten Gruppenschlüssel keine zusätzlichen Komponenten für GROUP SIZE und GROUP INDEX angelegt werden, da dann kein Zugriff auf diese Komponenten besteht.

Außerhalb der Gruppenschleife ist der Repräsentant nicht an die Gruppe gebunden und kann nicht für deren Angabe in Mitgliederschleifen verwendet werden. Dies gilt insbesondere auch für Prozeduren, die aus der Gruppenschleife aufgerufen werden.

Hinweis

Bei der Bindung eines Repräsentanten an die aktuelle Gruppe kann der zugehörige Gruppenschlüssel in der Gruppenschleife nicht angesprochen werden.

Beispiel

Der Gruppenschlüssel des folgenden Beispiels ist eine Struktur mit zwei Komponenten key1 und key2 , denen während der Gruppierung jeweils die Spalten key1 und key2 jeder Zeile der internen Tabelle itab zugewiesen werden. Es ergeben sich drei Gruppen mit den Gruppenschlüsselwerten (a, a), (a, b), und (b, a). Entsprechend wird die Gruppenschleife dreimal durchlaufen und es werden die erste, zweite und sechste Zeile als Repräsentanten ihrer Gruppen dem Feldsymbol wa> zugewiesen. Siehe auch das ausführbare Beispiel zum Ausgabeverhalten.

Alternative 2

... ${INTO group$}$|${ASSIGNINGgroup>$}$|${REFERENCE INTO group_ref$}


Wirkung

Gruppenschlüsselbindung. Wenn ein explizites Ausgabeverhalten group_result angegeben ist, wird bei jedem Schleifendurchgang der Gruppenschlüssel der aktuellen Gruppe dem hinter INTO, ASSIGNING oder REFERENCE INTO angegebenen Datenobjekt bzw. Feldsymbol zugewiesen, wobei bezüglich Syntax und Semantik das Gleiche gilt, wie beim Ausgabeverhalten result. Der Datentyp des angegebenen Datenobjekt bzw. Feldsymbols muss zu Datentyp des Gruppenschlüssels passen. Wenn der Gruppenschlüssel im Gruppenschlüsselausdruck als neue Struktur konstruiert wird, muss der Zieltyp eine Struktur sein, deren Komponenten mit gleichen Namen und in der gleichen Reihenfolge wie im Gruppenschlüssel vorliegen.

Das angegebene Datenobjekt bzw. Feldsymbol wird an die aktuelle Gruppe gebunden und in der Anweisung LOOP AT GROUP oder dem Ausdruck FOR ... IN GROUP ist die Gruppe über dessen Name ansprechbar. Außerhalb der Gruppenschleife ist das Datenobjekt bzw. das Feldsymbol nicht an die Gruppe gebunden und kann nicht für deren Angabe in Mitgliederschleifen verwendet werden. Dies gilt insbesondere auch für Prozeduren, die aus der Gruppenschleife aufgerufen werden. Bei Abschluss der Gruppenschleife wird die Gruppierung aufgehoben und ein angegebenes Datenobjekt wird initialisiert bzw. einem Feldsymbol ist kein Gruppenschlüssel mehr zugewiesen.

Das Datenobjekt bzw. Feldsymbol des in result definierten Ausgabeverhaltens für die Tabellenzeilen ist in der Gruppenschleife zwar ansprechbar, es ist nach der LOOP-Anweisung aber initial bzw. zeigt auf keine Zeile.

Hinweise

  • Um ein typgerechtes Datenobjekt bzw. Feldsymbol als Ziel für den Gruppenschlüssel anzugeben, empfiehlt sich eine Inline-Deklaration, die an dieser Stelle immer möglich ist.
  • Das Ausgabeverhalten result für die Tabellenzeilen wird bei der expliziten Angabe von group_result weiterhin für die Konstruktion des Gruppenschlüssels group_key benötigt.
  • Anders als in result für Tabellenzeilen kann hier kein Zusatz CASTING hinter ASSIGNING angegeben werden.

Beispiel

Wie das vorangehende Beispiel, wobei die Gruppen hier nicht einem impliziten Repräsentanten sondern an den expliziten definierten Zielbereich für den Gruppenschlüssel zugewiesen werden. In jedem der drei Schleifendurchgänge zeigt die inline deklarierte Referenzvariable group_key auf den jeweiligen strukturierten Gruppenschlüssel (a, a), (a, b), und (b, a). Siehe auch das ausführbare Beispiel zum Ausgabeverhalten.








Vendor Master (General Section)   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8997 Date: 20240418 Time: 043535     sap01-206 ( 132 ms )