Sometimes ABAP drives me crazy with really simple tasks such as incrementing an integer within a loop...
Here's my try:
METHOD test.
DATA lv_id TYPE integer.
lv_id = 1.
LOOP AT x ASSIGNING <y>.
lv_id = lv_id+1.
ENDLOOP.
ENDMETHOD.
This results in the error message Field type "I" does not permit subfield access.
You already answered the question yourself, but to make things a bit clearer:
variable + 1
is an arithmetic expression - add 1 to the value of the variable.
variable+1
is an offset operation on a character variable. For example, if variable contains ABC
, variable+1
is BC
.
This can be especially confusing when dealing with NUMCs. For example, with variable = '4711'
, variable + 1
is evaluated to 4712
, whereas variable+1
is '711'
(a character sequence).
The error you saw occurred because it's not possible to perform the index operation on a non-character-like variable.