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
orFREE
- 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 is known statically, a syntax error occurs within classes. This error also
occurs in LOOP
s with a secondary key known statically 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 aware of the problem. If you only work with ABAP Objects or if no syntax check warnings are ignored, the rule above should be met automatically.