ARTICLE
Extended Functional Operand Positions
Extended functional operand positions are
functional operand positions in which certain predefined functions
can be specified alongside data objects,
functional method calls ,
constructor expressions , and
table expressions , if a single data
object is specified as their argument. The following extended functional
operand positions exist:
Operand operand of the predicate expression
... operand IS [NOT] INITIAL
Operands operand of the statement
WHEN operand ...
No table expressions , however, can
be specified for operand .
Source field source of the obsolete statement
MOVE source TO ...
No constructor expressions or
table expressions , however, can be
specified for source .
The predefined functions that can be specified for WHEN and
MOVE are:
General numeric functions
Floating point functions
Length functions for strings
Length functions for byte strings
Row function for internal tables
If an expression, a functional method, or a predefined function is
specified as an argument, these predefined functions cannot be specified
in extended functional operand positions.
Note
Extended functional operand positions exist for historical reasons and
they have been replaced by operand
positions for functions and expressions . In all appropriate places,
operand positions in which functional methods or predefined functions
could previously also be specified, were replaced by a suitable
operand position . In the remaining
statements, WHEN and MOVE , this did not take placed,
because:
The operand position of the predicate expression IS [NOT] INITIAL
is suitable for use as a functional
operand position , but not as a
general expression position .
In particular, calculation
expressions are not valid here.
WHEN is used to distinguish cases using CASE
. Generally, no operations should be performed after WHEN and
constant values should be specified instead. The operand position after
CASE , on the other hand, was changed to a
general expression position .
MOVE is obsolete and has been replaced by the
assignment operator = . The right side
of a statement with assignment operator is a
generation expression position .
The extended functional operand position should not be used in the case
of WHEN . The more general assignment operator = should be
used instead of MOVE .
Bad example
Specifies the predefined function lines as the source of the
obsolete statement MOVE .
DATA itab TYPE TABLE OF i WITH EMPTY KEY.
DATA lines TYPE i.
...
MOVE lines( itab ) TO lines.
#Good example
Uses the general assignment operator =
, which enables inline declarations on the left side.
DATA itab TYPE TABLE OF i WITH EMPTY KEY.
...
DATA(lines) = lines( itab ).
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved