https://docs.abapopenchecks.org/checks/08/
Grundsätzlich wird in Klassen und Methoden programmiert. Hier sind viele obsolete Sprachbestandteile nicht mehr möglich. Falls wir aus technischen Gründe (z.B. RFC-Fähigkeit) doch mal die Klassen verlassen müssen, dann dienen die Funktionsbausteine nur als Hülle / Wrapper um objektorientierte Konstrukte.
LOOP AT ... AT NEW .... <Task1> ENDAT. <Task2> AT END OF... <Task3> ENDAT. ENDLOOP.
LOOP AT .. GROUP BY <Task1> LOOP AT GROUP .. <Task2> ENDLOOP. <Task3> ENDLOOP.