DO (ABAP keyword) introduction & syntax details
DO
Variants
1.
DO.
2. DO n TIMES.
Variant 1
DO.
Addition
...
VARYING f FROM f1 NEXT f2
Effect
Repeats the processing enclosed by
the DO and ENDDO statements until the loop is terminated by EXIT , STOP or
REJECT .
You can use the CONTINUE statement to end the current loop pass
prematurely and continue with the next loop pass.
The system field
SY-INDEX counts the number of loop passes, starting from 1. You can nest DO
loops. When the processing leaves a DO loop, the value of SY-INDEX belonging to
the outer DO loop is restored.
Example
DO.
WRITE: / 'SY-INDEX -
Begin:', (3) SY-INDEX.
IF SY-INDEX = 10.
EXIT.
ENDIF.
WRITE: 'End:',
(3) SY-INDEX.
ENDDO.
This DO loop outputs 9 lines of the
form
" SY-INDEX - Begin: n End: n ".
Here, n stands for the
numbers 1 to 9.
The last line displayed is
" SY-INDEX - Begin: 10
".
On the 10th pass, the loop is terminated.
Note
The danger
with this statement is programming endless loops. Therefore, you must ensure
that the loop contains at least one EXIT , STOP or REJECT statement which is
executed at least once.
Addition 1
... VARYING f FROM f1 NEXT
f2
Effect
This addition is useful if you have a series of fields of
the same type and the same distance from each other.
f is a variable which
you define in a DATA statement. On each loop pass, f contains a new value. The
field f1 after " FROM " specifies the first value of the variable f , while the
field f2 after " NEXT " specifies the value to be assigned to the variable f in
the second pass. For each subsequent pass, the variable f contains the next
value in the sequence determined by the distance between the fields f1 and f2 in
memory.
The fields f1 and f2 should be type-compatible and convertible to f
.
If the value of f changes during the loop pass, the new value is then
placed in the appropriate field fn assigned to f (transfer type: pass by value
and result). If the loop pass terminates because of a dialog message, the new
value is not passed back if f changes.
The addition ... VARYING f FROM f1
NEXT f2 can be used several times in a DO statement.
Example
DATA:
BEGIN OF WORD,
ONE VALUE 'E',
TWO VALUE 'x',
THREE VALUE 'a',
FOUR
VALUE 'm',
FIVE VALUE 'p',
SIX VALUE 'l',
SEVEN VALUE 'e',
EIGHT
VALUE '!',
END OF WORD,
LETTER1, LETTER2.
DO VARYING LETTER1 FROM
WORD-ONE THEN WORD-THREE
VARYING LETTER2 FROM WORD-TWO THEN
WORD-FOUR.
WRITE: LETTER1, LETTER2.
IF LETTER2 =
'!'.
EXIT.
ENDIF.
ENDDO.
The resulting output is the
character string
"E x a m p l e !".
Note
When using this
addition, ensure that the DO loop terminates at the "right" time, in order to
avoid assigning meaningless values that happen to be in memory after this
sequence of fields. This could result in a runtime error.
Variant 2
DO
n TIMES.
Addition
... VARYING f FROM f1 NEXT f2 (similar to
variant 1)
Effect
Repeats the processing enclosed by the DO and ENDDO
statements n times. If n changes within the loop, this has no effect on loop
passes.
Example
DATA COUNT TYPE I.
DO 10 TIMES.
ADD SY-INDEX
TO COUNT.
ENDDO.
The field COUNT now contains 55
(1+2+...+10).
Related WHILE , LOOP
Note
Performance
The runtime
required to pass once through an empty DO loop is about 11 msn (standardized
microseconds). For 100 loop passes, about 230 msn would be needed.
If
possible, use a WHILE loop instead of a DO / EXIT construction because this
improves the performance slightly and is clearer.
Related 10 ABAP Syntax Tutorials
Most readed SAP Tutorials
- WRITE - Output to a list ( SAP ABAP Keyword)
WRITE ( Output to a list ) is a keyword used in SAP ABAP programming.This tutorial covers its introduction & syntax details. - List of SAP HR TABLES and Infotypes tables
Detailed full list of tables and infotypes used in SAP HR module. - List of SAP MM Transaction codes
This documentation covers the details of SAP MM Transaction codes - SELECT-OPTIONS ( SAP ABAP Keyword)
SELECT-OPTIONS is a keyword used in SAP ABAP programming.This tutorial covers its introduction & syntax details. - FI Accounts Receivable and Accounts Payable | SAP FI PDF manual
The following topics are an introduction to the Accounts Receivable and Accounts Payable application components. - SAP MM Process Flow
The typical procurement cycle for a service or material consists of the following phases: - SELECT clause ( SAP ABAP Keyword)
SELECT clause is a keyword used in SAP ABAP programming.This tutorial covers its introduction & syntax details.
Latest Added SAP documents
- 9KE9 Transaction code
Details about SAP transaction code 9KE9 - 9KE8 Transaction code
Details about SAP transaction code 9KE8 - 9KE7 Transaction code
Details about SAP transaction code 9KE7 - 9KE6 Transaction code
Details about SAP transaction code 9KE6 - 9KE5 Transaction code
Details about SAP transaction code 9KE5 - 9KE4 Transaction code
Details about SAP transaction code 9KE4 - 9KE3 Transaction code
Details about SAP transaction code 9KE3 - 9KE2 Transaction code
Details about SAP transaction code 9KE2 - 9KE1 Transaction code
Details about SAP transaction code 9KE1 - 9KE0 Transaction code
Details about SAP transaction code 9KE0