Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Obsolete Language Elements →  Obsolete User Dialogs →  Obsolete Statements in List Processing →  Obsolete calculations 

SUMMING

Short Reference

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.

PARAMETERS p_carrid TYPE spfli-carrid.

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.