COLLECT ( ABAP keyword) introduction & details
COLLECT
Basic
form
COLLECT [wa INTO] itab.
Addition
... SORTED BY
f
Effect
COLLECT is used to create unique or compressed datsets. The
key fields are the default key fields of the internal table itab .
If you
use only COLLECT to fill an internal table, COLLECT makes sure that the internal
table does not contain two entries with the same default key fields.
If,
besides its default key fields, the internal table contains number fields (see
also ABAP/4 number types ), the contents of these number fields are added
together if the internal table already contains an entry with the same key
fields.
If the default key of an internal table processed with COLLECT is
blank, all the values are added up in the first table line.
If you
specify wa INTO , the entry to be processed is taken from the explicitly
specified work area wa . If not, it comes from the header line of the internal
table itab .
After COLLECT , the system field SY-TABIX contains the index
of the - existing or new - table entry with default key fields which match those
of the entry to be processed.
Notes
COLLECT can create unique or
compressed datasets and should be used precisely for this purpose. If uniqueness
or compression are unimportant, or two values with identical default key field
values could not possibly occur in your particular task, you should use APPEND
instead. However, for a unique or compressed dataset which is also efficient,
COLLECT is the statement to use.
If you process a table with COLLECT , you
should also use COLLECT to fill it. Only by doing this can you guarantee
that
the internal table will actually be unique or compressed, as
described above and
COLLECT will run very efficiently.
If you use
COLLECT with an explicitly specified work area, it must be compatible with the
line type of the internal table.
Example
Compressed sales figures for
each company
DATA: BEGIN OF COMPANIES OCCURS
10,
NAME(20),
SALES TYPE I,
END OF COMPANIES.
COMPANIES-NAME =
'Duck'. COMPANIES-SALES = 10.
COLLECT COMPANIES.
COMPANIES-NAME = 'Tiger'.
COMPANIES-SALES = 20.
COLLECT COMPANIES.
COMPANIES-NAME = 'Duck'.
COMPANIES-SALES = 30.
COLLECT COMPANIES.
The table COMPANIES now
has the following appearance:
NAME SALES
Duck 40
Tiger
20
Addition
... SORTED BY f
Effect
COLLECT ...
SORTED BY f is obsolete and should no longer be used. Use APPEND ... SORTED BY f
which has the same meaning.
Note
Performance
The cost of a
COLLECT in terms of performance increases with the width of the default key
needed in the search for table entries and the number of numeric fields with
values which have to be added up, if an entry is found in the internal table to
match the default key fields.
If no such entry is found, the cost is reduced
to that required to append a new entry to the end of the table.
A COLLECT
statement used on a table which is 100 bytes wide and has a key which is 60
bytes wide and seven numeric fields is about approx. 50 msn (standardized
microseconds).
Note
Runtime errors
COLLECT_OVERFLOW : Overflow
in integer field when calculating totals.
COLLECT_OVERFLOW_TYPE_P :
Overflow in type P field when calculating totals.
Related APPEND , WRITE
... TO , MODIFY , INSERT
Related 10 ABAP Syntax Tutorials
Most readed SAP Tutorials
- WRITE - Output to a list ( SAP ABAP Keyword)
WRITE ( Output to a list ) is a keyword used in SAP ABAP programming.This tutorial covers its introduction & syntax details. - List of SAP HR TABLES and Infotypes tables
Detailed full list of tables and infotypes used in SAP HR module. - List of SAP MM Transaction codes
This documentation covers the details of SAP MM Transaction codes - SELECT-OPTIONS ( SAP ABAP Keyword)
SELECT-OPTIONS is a keyword used in SAP ABAP programming.This tutorial covers its introduction & syntax details. - FI Accounts Receivable and Accounts Payable | SAP FI PDF manual
The following topics are an introduction to the Accounts Receivable and Accounts Payable application components. - SELECT clause ( SAP ABAP Keyword)
SELECT clause is a keyword used in SAP ABAP programming.This tutorial covers its introduction & syntax details. - SAP MM Process Flow
The typical procurement cycle for a service or material consists of the following phases:
Latest Added SAP documents
- 9KE9 Transaction code
Details about SAP transaction code 9KE9 - 9KE8 Transaction code
Details about SAP transaction code 9KE8 - 9KE7 Transaction code
Details about SAP transaction code 9KE7 - 9KE6 Transaction code
Details about SAP transaction code 9KE6 - 9KE5 Transaction code
Details about SAP transaction code 9KE5 - 9KE4 Transaction code
Details about SAP transaction code 9KE4 - 9KE3 Transaction code
Details about SAP transaction code 9KE3 - 9KE2 Transaction code
Details about SAP transaction code 9KE2 - 9KE1 Transaction code
Details about SAP transaction code 9KE1 - 9KE0 Transaction code
Details about SAP transaction code 9KE0