SAP LOOP GROUP BY METHOD ABEXA



Get Example source ABAP code based on a different SAP table
  



ABAP_ITAB - Grouping with LOOP Using a Method
This example demonstrates the construction of the group key using the assignment of return values.

ABAP_SOURCE_CODE
DEMO CL_DEMO_LOOP_GRP_BY_METHOD

ABAP_DESCRIPTION
Grouping of an internal table flights with group key binding . The group key of the group loop is constructed as a structure. The return values of the functional method get_time_zone are assigned to the components tz_from and tz_to. The values of the columns airpfrom or airpto are passed to the input parameter of the method. This creates groups of lines that have the same combinations of time zones for the departure and destination airport.
In the simple case shown here, the table expression from the method could of course also be specified directly: LOOP AT flights INTO DATA(wa)
GROUP BY ( tz_from = airports[ id = wa-airpfrom ]-time_zone
tz_to = airports[ id = wa-airpto ]-time_zone )
ASSIGNING FIELD-SYMBOL( < group>).
Furthermore, the components size and index are created for the special language elements GROUP SIZE or GROUP • to determine the size and index of each group.
The group key that is bound to a field symbol < group> and the additional components are produced in the group loop. In a member loop, the lines of each group are placed in an internal table members using the value operator with the addition BASE. This table is also displayed.
members could also be filled by evaluating a table comprehension using FOR ... IN GROUP, instead of in a member loop LOOP AT GROUP: members = VALUE #( FOR < member> IN GROUP < group> ( <(> <<)>member> ) ).
The executable example for grouping with FOR demonstrates how the entire group loop can be implemented using expressions.