ARTICLE
Reader Positions
In a reader position, the content of an operand is only read, and not
changed, when the statement is executed. Data objects can be specified
as followed in reader 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 reference dref- * dereferenced using the
dereferencing operator - *
(providing dref is specified in full). The names of data
objects here include the specification of a
text symbol using text-idf , where
idf 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 using text-idf , the
three-character code of a text symbol can be appended 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 [] , or dref- *[] can also be used. An exception
to this is when specifying the internal table of a
table expression , where []
cannot be appended to the name. For dobj[] , this ensures that the
table body is addressed and no
header lines . If an internal table does
not have a header line, its simple name dobj (without [] )
is interpreted as the table body at all operand positions. However, if
an internal table does have a header line, its simple name dobj
(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
.
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 in all reader positions. For example, they
are not permitted for specifying the target of dynamic
executions .
A system field should only be specified
as an operand in a reader position if its content is not set by the same
statement, since otherwise undefined behavior may occur.
The predicate expressions IS ASSIGNED
and IS BOUND can be used to check
whether field symbols or data references.
A data reference variable with a generic static type can only be
deserialized using the statement
ASSIGN dref- * TO fs .
In many reader positions, functions or
expressions can be specified as well as data objects.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved