ABAP Keyword Documentation → ABAP - Reference → Program structure → Modularization Statements → Source Code Modules → Macros
Inserting Macros
Other versions: 7.31 | 7.40 | 7.54
Syntax
macro [p1 p2 ... ].
Effect
If a macro is executed instead of a valid
ABAP keyword, as the first word in an ABAP statement, its statements are included at this position
in the source text. Suitable ABAP words or operands p1 p2 ...
must be transferred
to all of the macro's placeholders. The specified operands p1 p2 ...
replace
the placeholders sequentially. The characters are converted to uppercase (except for the content of character literals).
The ABAP Compiler searches for a macro specified in a program, first in the preceding source text of the same compilation unit and then in the type groups which are used for the program. Local macros of the program hide macros of the same name in type groups.
A macro can insert other macros but not itself.
Notes
- Previously, a specified macro not defined in the current program was only searched for in explicitly loaded
type groups using the
TYPE-POOLS
statement. The search now covers all usable type groups.
- If the ABAP Compiler does not find a specified macro in the current program or in a type group, it searches in the TRMAC table. Macros in the TRMAC table usually follow different name conventions to those in type groups and therefore nothing should be hidden.
Example
In this example, the two macros operation
and output
are defined. output
is nested in operation
.
operation is called three times with different parameters. Note how the placeholders &1
, &2
, ... are replaced in the macros.
DATA: result TYPE i,
n1 TYPE i VALUE 5,
n2 TYPE i VALUE 6.
DEFINE operation.
result = &1 &2 &3.
output &1 &2 &3 result.
END-OF-DEFINITION.
DEFINE output.
write: / 'The result of &1 &2 &3 is', &4.
END-OF-DEFINITION.
operation 4 + 3.
operation 2 ** 7.
operation n2 - n1.