== Why is this an issue? Using ``++LOOP...INTO++`` with ``++MODIFY++`` statements will put the required record in a work area, process it and put it back in the internal table. It is more efficient to modify the internal table directly by using ``++LOOP...ASSIGNING++`` and field-symbols. This rule raises an issue when a ``++LOOP...INTO++`` contains one or more ``++MODIFY++`` statements. === Noncompliant code example [source,abap] ---- LOOP AT i_bseg INTO wa_bseg. ... wa_bseg-sgtxt = 'VALUE'. MODIFY i_bseg FROM wa_bseg. ENDLOOP. ---- === Compliant solution [source,abap] ---- LOOP AT i_bseg ASSIGNING . ... -sgtxt = 'VALUE'. ENDLOOP. ---- == Resources * https://zevolving.com/use-of-field-symbols-vs-work-area/[Use of Field-symbols vs Work area] ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Replace this "LOOP INTO" and "MODIFY" with "LOOP ASSIGNING" and field-symbols. === Highlighting Primary: the whole LOOP...INTO statement, but not the body of the loop. Secondary: * Every "MODIFY" statement * message: replace this "MODIFY" with a field-symbol endif::env-github,rspecator-view[]