ABAP Keyword Documentation → ABAP - Reference → ABAP Syntax → ABAP Statements → Operands → Data Objects in Operand Positions
Read Positions
At a read position, the content of an operand is only read, and not changed, when the statement is executed. Data objects can be specified as followed at read positions:
- Specification of a literal.
- Specification of a data object visible at this point using a name
dobj
, a field symbol<fs>
, or a data referencedref->*
dereferenced using the dereferencing operator->*
(providingdref
is specified in full). The names of data objects here include the specification of a text symbol using text-idf, whereidf
is the three-character code of the text symbols, or concatenations of reference variables. If a field symbol is used, it must be assigned to a memory area and a data reference must point to a data object. Otherwise an unhandleable exception is raised.
As an alternative to specifying a text symbol usingtext-idf
, you can append the three-character code of a text symbol to the text field literal in parentheses:
... '...'(idf) ...
If the text symbol exists in the currently loaded text pool, then the content of the text symbol is used instead of the text field literal, otherwise the literal is used.
- If the data object is an internal table, the expressions
dobj[]
, <fs>[], ordref->*[]
can also be used. Fordobj[]
, this ensures that the table body is addressed and no header lines. If an internal table does not have a header line, its simple namedobj
(without[]
) is interpreted as the table body at all operand positions. However, if an internal table does have a header line, its simple namedobj
(without[]
) is interpreted as the header line and not the table body at almost all operand positions. The operand positions, used to interpret an internal table name with a header as the internal table, are listed under internal tables with headers. Field symbols <fs> and data referencesdref->*
, on the other hand, only ever refer to the table body or a possible header line.
- Specification of a subarea of a character-type or byte-type data object (or a character-type initial part of a structure) by specifying an offset/length.
- In some positions, number values must be specified directly as digits, although it is often not possible to specify a sign (which is not the case with numeric literals). Examples are numbers specified in declarative statements for the length of elementary data objects or for the initial memory requirements of internal tables.
Notes
- Text symbols cannot be listed at all read positions. For example, they are not permitted for specifying the target of dynamic executions.
- A system field should only be specified as an operand at a read position if its content is not set by the same statement, as otherwise undefined behavior may occur.
- At many operand positions, you can specify functions or expressions instead of data objects.
- The logical expressions
IS ASSIGNED
andIS BOUND
can be used to check whether field symbols or data references.