ABAP Keyword Documentation → ABAP Programming Guidelines → Structure and Style → Formatting the Source Code.
Statements per Program Line
Other versions: 7.31 | 7.40 | 7.54
An ABAP statement (declaration or executable statement) is closed with a period. This statement can be followed by further statements in the same line. Statements can also be split over several lines.
Maximum of one statement per program line
Write a maximum of one statement in every source code line. Long statements can and should be split at suitable places. This means the statements can be divided up across consecutive lines.
Using several statements in one line makes the source code harder to read. If a line contains an entire control structure, the lack of indentations makes it especially difficult to identify the logical structure. Therefore you should try to avoid using more than one statement in a program line.
Besides reduced readability, using several statements in a line can also make the code more difficult to debug. Even in single steps, ABAP Debugger stops a maximum of once per executable program line. This makes it impractical for the debugging process if there is more than one statement in a line.
If a statement is split over several lines (which occurs frequently due to the potential length of complex ABAP statements), there should be no spaces between the parts of the statement. The breaks in the statement should occur at semantically suitable places so that groups with a similar semantic meaning are next to each other, if possible. Indentations should be used to ensure that the statement is as well structured and readable as possible.
The following source code shows a syntactically correct program section which is poorly laid out and difficult to understand. Even the Pretty Printer can barely improve the layout of the template displayed here.
CLASS class DEFINITION.
PUBLIC SECTION. METHODS meth. ENDCLASS.
DATA: itab TYPE TABLE OF dbtab, wa TYPE dbtab.
SELECT * FROM dbtab WHERE column = ' ' INTO TABLE @itab.
IF sy-subrc <> 0. RETURN. ENDIF.
LOOP AT itab INTO wa. ... ENDLOOP.
The following source code shows the same code as above but with the recommended limit of one statement
per line. The complex
SELECT statement contains numerous clauses and is spilt accordingly over several consecutive lines.
CLASS class DEFINITION.
DATA: itab TYPE TABLE OF dbtab,
wa TYPE dbtab.
WHERE column = ' '
INTO TABLE @itab.
IF sy-subrc <> 0.
LOOP AT itab INTO wa.