ABAP Keyword Documentation → ABAP - Reference → Obsolete Language Elements → Obsolete User Dialogs → Obsolete Statements in List Processing → Obsolete calculations
SUMMING
Other versions: 7.31 | 7.40 | 7.54
Obsolete Syntax
SUMMING dobj.
Effect
For every WRITE
statement that
after executing the statement SUMMING
(which is forbidden in classes) writes
the content of data object dobj
onto a list of any list level, the total
of all values of dobj
output with WRITE
since
the execution of SUMMING
is determined implicitly and assigned to a data object sum_dobj
.
The statement SUMMING
declares the global data object sum_dobj
with the same type as dobj
.
Numeric data objects
can be specified for dobj
. The statement SUMMING
can be executed only once in a program. It may be located within a
procedure, but the declared data object sum_dobj
is not local.
If the content of dobj
in a WRITE
statement cannot
be interpreted as a number or the addition produces an overflow after the statement SUMMING
is executed, an unhandleable exception is raised.
Note
This statement is not permitted in classes because it works with implicitly created global variables. Instead, explicit calculations can be made.
Example
Implicit determination of minimum, maximum and total of a list of flight distances.
DATA spfli_wa TYPE spfli.
MINIMUM spfli_wa-distance.
MAXIMUM spfli_wa-distance.
SUMMING spfli_wa-distance.
SELECT carrid, connid, distance
FROM spfli
WHERE carrid = @p_carrid
INTO CORRESPONDING FIELDS OF @spfli_wa.
WRITE: / spfli_wa-carrid, spfli_wa-connid,
spfli_wa-distance.
ENDSELECT.
ULINE.
WRITE: min_spfli_wa-distance,
max_spfli_wa-distance,
sum_spfli_wa-distance.
The program triggers a syntax check warning because the names of the data objects declared using
MINIMUM, MAXIMUM
and SUMMING
contain the invalid "-" character.
Without using the implicit statements MINIMUM
, MAXIMUM
,
and SUMMING
, the same result can be achieved using explicitly calculated auxiliary fields.
PARAMETERS p_carrid TYPE spfli-carrid.
DATA: spfli_wa TYPE spfli,
min_distance TYPE spfli-distance VALUE +99999,
max_distance TYPE spfli-distance VALUE -99999,
sum_distance TYPE spfli-distance.
SELECT carrid, connid, distance
FROM spfli
WHERE carrid = @p_carrid
INTO CORRESPONDING FIELDS OF @spfli_wa.
WRITE: / spfli_wa-carrid, spfli_wa-connid,
spfli_wa-distance.
IF spfli_wa-distance < min_distance.
min_distance = spfli_wa-distance.
ENDIF.
IF spfli_wa-distance > max_distance.
max_distance = spfli_wa-distance.
ENDIF.
sum_distance = sum_distance + spfli_wa-distance.
ENDSELECT.
ULINE.
WRITE: min_distance,
max_distance,
sum_distance.