Using AT_FIRST be used to initialize variables used in loop in SAP ABAP

In SAP ABAP, the AT_FIRST statement is a useful control flow construct that can be used to initialize variables at the beginning of a loop iteration. Understanding when and how to use AT_FIRST for variable initialization is crucial for writing efficient ABAP code.

Understanding AT_FIRST vs. Regular Initialization

There would not be much of difference in both ways. The only thing is without AT_FIRST, the counter variables will be cleared in all cases while using AT_FIRST, the counter variables will be cleared only if there is at least one execution of the loop. So, the only difference would come into the picture if ls_itab is empty.

Example Without AT_FIRST

Here's how variable initialization works without using AT_FIRST ?

DATA: lv_counter TYPE i,
      lt_materials TYPE TABLE OF mara,
      ls_material TYPE mara.

* Initialize counter outside loop
lv_counter = 0.

LOOP AT lt_materials INTO ls_material.
  lv_counter = lv_counter + 1.
  WRITE: / lv_counter, ls_material-matnr.
ENDLOOP.

Example With AT_FIRST

Here's the same logic using AT_FIRST for initialization ?

DATA: lv_counter TYPE i,
      lt_materials TYPE TABLE OF mara,
      ls_material TYPE mara.

LOOP AT lt_materials INTO ls_material.
  AT FIRST.
    lv_counter = 0.
  ENDAT.
  
  lv_counter = lv_counter + 1.
  WRITE: / lv_counter, ls_material-matnr.
ENDLOOP.

Key Differences

The main difference between these approaches becomes apparent when dealing with empty internal tables:

  • Without AT_FIRST: Variables are initialized regardless of whether the loop executes
  • With AT_FIRST: Variables are initialized only when the loop has at least one iteration

This distinction is particularly important when you need to preserve variable values in cases where the loop might not execute due to empty data sets.

Conclusion

Using AT_FIRST for variable initialization provides more control over when initialization occurs, making it especially useful when working with potentially empty internal tables where you want to preserve existing variable values.

Updated on: 2026-03-13T18:19:53+05:30

223 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements