Error message in ABAP Objects if the following syntax is used:
CLEAR f WITH NULL.
Correct syntax:
CONSTANTS hex(1) TYPE x VALUE IS INITIAL.
CLEAR f with hex.
Reason:
Initialization with an incompatible type must be avoided. If required, the statement CLEAR WITH NULL can be replaced by the above sequence of statements.
In ABAP Objects, the following statements cause an error message:
DATA: c1(...) TYPE c,
p1(...)
TYPE p.
PACK c1 TO p1.
Correct syntax:
DATA: c1(...) TYPE c,
p1(...)
TYPE p.
MOVE c1 TO p1.
Cause:
The PACK statement is superfluous, since
it works just like the MOVE statement when you assign a character field to a packed number.
In ABAP Objects, the following statement causes an error message:
MOVE c1 TO c2 PERCENTAGE n.
Correct syntax:
DATA l TYPE i.
DESCRIBE
FIELD c1 LENGTH l.
l = l * n / 100.
MOVE c1(l) TO c2.
Cause:
If necessary, you can assign a percentage of a field to another field using other statements.
In ABAP Objects, the following statements cause an error message:
ADD-CORRESPONDING struc1 TO struc2.
DIVIDE-CORRESPONDING
struc1 BY struc2.
MULTIPLY-CORRESPONDING struc1
BY struc2.
SUBTRACT-CORRESPONDING struc1 FROM struc2.
Cause:
The system performs calculations regardless of the data type of the component. Just
because two components are identically named, it does not follow that the results ofthese calculations will be meaningful. Therefore, always program these calculations explicitly.
Note:
The same rule applies to the MOVE-CORRESPONDING
statement and the
INTO CORRESPONDING FIELDS of the SELECT statement.
At present, these statements cannot be made illegal for practical reasons. However, you should replace
MOVE-CORRESPONDING statements with explicit assignements.
This also allows you to bundle and assign structure components in substructures, in both the source
and the target structure. If a structure cannot contain a substructure, because it is typed with reference
to a database table, you can achieve the same effect using group names (the
AS NAMEaddtion of the INCLUDE
STRUCTURE | TYPE
statement). At least in static cases, you should avoid the INTO
CORRESPONDING FIELDS addition of the SELECT
statement and replace it with explicit field name in an INTO clause, since this addition affects performance.