Skip to content

ABAP Keyword Documentation →  ABAP Programming Guidelines →  Robust ABAP →  Internal Tables 

Loop Processing

Other versions: 7.31 | 7.40 | 7.54

Background

Alongside the statements for editing individual rows in internal tables, other statements can be used to address and modify the entire body of the table. Examples:

  • All categories of assignments applying to whole internal tables
  • Deleting the whole of an internal table using CLEAR or FREE
  • Operations in target ranges such as SELECT INTO TABLE

These types of accesses to the table body cause problems by producing a loop across the internal table

Rule

Do not modify the entire table body in a loop

You cannot use a loop across an internal table to perform accesses to the table that modify the entire table body at once.

Details

A modifying access to the entire table body usually produces a runtime error and at the very least unpredictable program behavior. If this can be detected statically, a syntax error occurs within classes and also in LOOPs with a statically detectable secondary key when the table operations in question are used. Otherwise, the syntax check simply returns a warning for compatibility reasons.


Note

This rule is mainly intended to make you more away of the problem. If you only work with ABAP Objects or if no syntax check warnings are ignored, then the rule above should be kept automatically.