Extended Functional Operand Positions
Extended functional operand positions are functional operand positions in which certain built-in 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:
operandof the predicate expression
... operand IS [NOT] INITIAL
operandof the statement
WHEN operand ...
- Source field
sourceof the obsolete statement
MOVE source TO ...
The following built-in functions can be specified for
IS [NOT] INITIAL,
However, these functions can only be specified at extended functional operand positions if the argument is not an expression, a functional method, or a built-in function.
7.31 | 7.40 | 7.54
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 built-in functions could previously also be specified, were replaced by a suitable
operand position. In the remaining statements,
IS [NOT] INITIAL,
MOVE, this did not take place for the following reasons:
- The operand position of the predicate expression
IS [NOT] INITIALis suitable for use as a functional operand position, but not as a general expression position. In particular, calculation expressions are not valid here.
WHENis used to distinguish cases using CASE. Generally, no operations should be performed after
WHENand constant values should be specified instead. The operand position after
CASE, on the other hand, was changed to a general expression position.
MOVEis obsolete and has been replaced by the assignment operator
=. The right side of a statement with assignment operator is a general expression position.
The extended functional operand position should not be used in the case of
The more general assignment operator
= should be used instead of
Specifies the built-in function
lines as the source of the obsolete statement
DATA itab TYPE TABLE OF i WITH EMPTY KEY. DATA lines TYPE i. ... MOVE lines( itab ) TO lines.
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 ).