Internal table operations in SAP ABAP
Introduction
When we are processing large amount of data from the database table we will be using a temporary table with in our program which is commonly known as internal tables. These are dynamic data objects which help in dynamic memory management in the programs. The internal table mainly helps in formatting large amount of data from a database table within a program.
Types of internal table
Standard tables :
These types of table are used when we need the table to resemble same as the database table. Standard internal tables are filled by appending the lines using APPEND statement or using select statements. The table is searched using linear search
Sorted tables
These types of table are used when you need the entries to be sorted as they are filled. These tables are filled using the INSERT statement. Entries are inserted based on the order as they are arranged. We can access the entries in the table using index
Hashed tables
These types of tables are stored using a hashing key. We cannot access the entries in the table using the index instead we can use the hash key. We can access the entries in these tables using hash algorithm.
Processing internal table
We process the internal table using few commonly used statements. To process the internal table first the internal table should be filled with data, then it could be read for processing the data within it, for processing a specific data from the internal table we need to search the internal table.
So basically internal table operations can be divided into
Filling internal tables
Reading internal tables
Searching internal tables
Now let us see the statements under these steps of processing the internal table.
Filling internal table
First for processing the internal table we need to fill the table. We can fill the internal table using the statements mentioned below they are,
Insert
Select
Collect
Append
Modify
Delete
Sort
Let us discus these statements with an example.
Introduction
When we are processing large amount of data from the database table we will be using a temporary table with in our program which is commonly known as internal tables. These are dynamic data objects which help in dynamic memory management in the programs. The internal table mainly helps in formatting large amount of data from a database table within a program.
Types of internal table
Standard tables :
These types of table are used when we need the table to resemble same as the database table. Standard internal tables are filled by appending the lines using APPEND statement or using select statements. The table is searched using linear search
Sorted tables
These types of table are used when you need the entries to be sorted as they are filled. These tables are filled using the INSERT statement. Entries are inserted based on the order as they are arranged. We can access the entries in the table using index
Hashed tables
These types of tables are stored using a hashing key. We cannot access the entries in the table using the index instead we can use the hash key. We can access the entries in these tables using hash algorithm.
Processing internal table
We process the internal table using few commonly used statements. To process the internal table first the internal table should be filled with data, then it could be read for processing the data within it, for processing a specific data from the internal table we need to search the internal table.
So basically internal table operations can be divided into
Filling internal tables
Reading internal tables
Searching internal tables
Now let us see the statements under these steps of processing the internal table.
Filling internal table
First for processing the internal table we need to fill the table. We can fill the internal table using the statements mentioned below they are,
Insert
Select
Collect
Append
Modify
Delete
Sort
Let us discus these statements with an example.
Internal table operations are most important for an ABAP developer, below are some of the most important internal table operations
APPEND
INSERT
SORT
DESCRIBE TABLE
READ TABLE WITH KEY
READ TABLE WITH INDEX
LOOP....ENDLOOP.
MODIFY
DELETE
DELETE ADJACENT DUPLICATES
CLEAR, REFRESH, FREE
APPEND LINES OF
INSERT LINES OF
MOVE
COLLECT
Using APPEND in SAP ABAP
APPEND statement is used to append or add a record from work area to internal table, the new record will be added at the end of the internal table.
Syntax: APPEND <WA> TO <ITAB>
DATA : IT_MARA TYPE TABLE OF MARA.
DATA : WA_MARA TYPE MARA.
WA_MARA-MATNR = '00001'.
WA_MARA-MTART = 'FERT'.
WA_MARA-MEINS = 'EA'.
APPEND WA_MARA TO IT_MARA . "APPEND WORK AREA TO INTERNAL TABLE
Using INSERT in SAP ABAP
INSERT statement is used to insert or add a record from work area into internal table at the specified location
Syntax: INSERT <WA> INTO <ITAB> INDEX <index>
DATA : IT_MARA TYPE TABLE OF MARA.
DATA : WA_MARA TYPE MARA.
WA_MARA-MATNR = '00001'.
WA_MARA-MTART = 'FERT'.
WA_MARA-MEINS = 'EA'.
INSERT WA_MARA INTO IT_MARA INDEX 2 . "The record will be inserted into internal table at 2nd position
Using SORT in SAP ABAP
SORT is used to sort a Internal table data in ascending order or descending order, by default it will sort the data in ascending order. In addition to this we can able to sort data based on specified fields.
Syntax1 : SORT <ITAB> . "Default sorts data in ascending order
Syntax2 : SORT <ITAB> DESCENDING . " Sort in descending order
Syntax3 : SORT <ITAB> BY <FIELD1> <FIELD2>...ASCENDING/DESCENDING ."It sorts data by specified fields <FIELD1>, <FIELD2>..
Using DESCRIBE TABLE in SAP ABAP
DESCRIBE TABLE is used to count the no of records in a internal table
Syntax: DESCRIBE TABLE <ITAB> LINES <v_lines> ." Count the no. Of
record of an internal table, here v_lines store count
DATA : V_LINES TYPE I. "Type integer
DESCRIBE TABLE IT_MARA LINES V_LINES ." Count the no. of record of a internal table
Write : v_lines .
Using READ TABLE WITH KEY in SAP ABAP
READ TABLE WITH KEY .. BINARY SEARCH is used to read a single record from an internal table into work area specified by field name and field value .
BINARY SEARCH is a search mechanism which is used to read a record from internal table into work area very fast, the functionality of binary search it divides the into parts and searches, for full details Binary Search mechanism in SAP ABAPThe internal table must be sorted in ascending order before using binary search.
Syntax: READ TABLE <ITAB> INTO <WA> WITH KEY <FIELD1> = <FIELD1 VALUE> <FIELD1> = <FIELD1 VALUE>
BINARY SEARCH .
." Read a record into work area where some field = some value
READ TABLE IT_MARA INTO WA_MARA WITH KEY MATNR = '0001' BINARY SEARCH . "Read a
record into work area where MATNE is '0001'
Using READ TABLE WITH INDEX in SAP ABAP
READ TABLE WITH INDEX is used to read a single record from an internal table into work area specified by index.
Syntax: READ TABLE <ITAB> INTO <WA> INDEX <index_no>
." Read a record into work area using index ( position )
READ TABLE IT_MARA INTO WA_MARA INDEX '2' . "Read a record into work area where
index is 2.
Using LOOP....ENDLOOP. in SAP ABAP
Loop...Endloop. is also used to read data from a internal table into work area, this is used to read multiple records serially one after one .
Syntax1: LOOP AT <ITAB> INTO <WA> .
ENDLOOP.
Syntax2: LOOP AT <ITAB> INTO <WA> WHERE <FIELDS1> =
<VALUE> .
ENDLOOP.
Syntax3: LOOP AT <ITAB> INTO <WA> FROM <INDEX1> TO
<INDEX2>.
ENDLOOP.
Using MODIFY in SAP ABAP
MODIFY is used to modify a single or multiple internal table records based on condition
TRANSPORTING is a keyword which is used to specify a list of fields to be modified instead of all fields.
Syntax1: MODIFY <ITAB> FROM <WA> INDEX <INDEX NO> TRANSPORTING <FIELD1> <FIELD2>
Syntax1: MODIFY <ITAB> FROM <WA> TRANSPORTING <FIELD1>
<FIELD2> WHERE <CONDITION>
SY-TABIX is a key word which stores the index no of currently processed record. For full details, read using sy-tabix in sap abap programs .
DATA : IT_MARA TYPE TABLE OF MARA.
DATA : WA_MARA TYPE MARA.
SELECT * FROM MARA INTO TABLE IT_MARA . " GET DATA INTO ITAB IT_MARA
WA_MARA-MTART = 'FERT'; "ASSIGN A VALUE TO WORKAREA TO MODIFY INTERNAL TABLE
MODIFY IT_MARA FROM WA_MARA INDEX SY-TABIX TRANSPORTING MTART. " NOW THE VALUE OF
FIELD MTART WILL BE MODIFIED FOR CURRENT RECORD IN IT_MARA
DATA : IT_MARA TYPE TABLE OF MARA.
DATA : WA_MARA TYPE MARA.
SELECT * FROM MARA INTO TABLE IT_MARA . " GET DATA INTO ITAB IT_MARA
WA_MARA-MTART = 'FERT'; "ASSIGN A VALUE TO WORKAREA TO MODIFY INTERNAL TABLE
MODIFY IT_MARA FROM WA_MARA TRANSPORTING MTART WHERE MATNR = '0001'. " NOW THE
VALUE OF FIELD MTART WILL BE MODIFIED WHERE MATNR = '0001' IN ITAB
Using DELETE in SAP ABAP
DELETE is used to delete single or multiple records from an internal table from work area based on some condition.
Syntax1: DELETE <ITAB> INDEX <INDEX NO>.
Syntax2: DELETE <ITAB> WHERE <FIELD1> = <FIELD1 VALUE>
<FIELD2> = <FIELD2 VALUE>.
DELETE IT_MARA INDEX 3. "3rd RECORD WILL BE DELETED IN IT_MARA
DELETE IT_MARA WHERE MTART = 'FERT'. "MATERIALS WITH MTART = 'FERT' WILL BE DELETED
Using DELETE ADJACENT DUPLICATES in SAP ABAP
DELETE ADJACENT DUPLICATES is used to delete delete duplicate records which are adjacent to each-other.Pre-requisite for this is the internal table must be sorted in ascending order
Syntax1: DELETE ADJACENT DUPLICATED FROM <ITAB> ."ADJACENT DUPLICATED WILL
BE DELETED IN INTERNAL TABLE COMPARING ALL FIELDS
Syntax2: DELETE ADJACENT DUPLICATES FROM <ITAB> COMPARING <FIELD1>
<FIELD2> . "ADJACENT DUPLICATES WILL BE DELETED COMPARING SPECIFIED FIELDS
SORT IT_MARA ASCENDING.
DELETE ADJACENT DUPLICATES FROM IT_MARA . "3rd RECORD WILL BE DELETED IN IT_MARA
SORT IT_MARA ASCENDING.
DELETE ADJACENT DUPLICATES IT_MARA COMPARING MATR, MTART. "DUPLICATES WILL BE
DELETED BY COMPARING MATNR AND MTART
Using CLEAR, REFRESH, FREE in SAP ABAP
CLEAR is used to clear a value in a work area or in a variable.
REFRESH is used to clear all values in an internal table.
FREE is used to clear (free) memory of an internal table or work area. We all know whenever we declare an internal table or work area, 8kb memory will be allocated.
Syntax clear : CLEAR <WA> "CLEAR WORK AREA OR VARIABLE
Syntax REFRESH : REFRESH <ITAB> "CLEAR ALL RECORDS OF INTERNAL TABLE BUT
MEMORY WILL BE THERE
Syntax FREE : FREE <WA> "FREE INTERNAL TABLE MEMORY
CLEAR WA_MARA.
REFRESH IT_MARA.
FREE IT_MARA.
Using APPEND LINES OF in SAP ABAP
APPEND LINES OF is used to append multiple records to an internal table from another internal table.
Syntax : APPEND LINES OF <ITAB1> FROM <index no> TO <index no2>
TO <ITAB2>.
DATA : IT_MARA TYPE TABLE OF MARA. "FIRST INTERNAL TABLE
DATA : IT_MARA1 TYPE TABLE OF MARA. "SECOND INTERNAL TABLE
APPEND LINES OF IT_MARA FROM 3 TO 5 TO IT_MARA1 . "DATA IN IT_MARA WILL BE APPENDED
TO IT_MARA1 FROM INDEX 3 TO INDEX 5 .
Using INSERT LINES OF in SAP ABAP
INSERT LINES OF is used to INSERT multiple records to an internal table from another internal table at the specified location.
Syntax : INSERT LINES OF <ITAB1> FROM <index no> TO <index no2>
INTO <ITAB2> INDEX <index no>.
DATA : IT_MARA TYPE TABLE OF MARA. "FIRST INTERNAL TABLE
DATA : IT_MARA1 TYPE TABLE OF MARA. "SECOND INTERNAL TABLE
INSERT LINES OF IT_MARA FROM 3 TO 5 INTO IT_MARA1 INDEX 3 . "DATA IN IT_MARA WILL
BE INSERTED INTO IT_MARA1 FROM INDEX 3 TO INDEX 5 AT INDEX 3 LOCATION .
Using MOVE in SAP ABAP
MOVE keyword is used to move one internal table data to another.
Syantax : <ITAB2[]> = <ITAB1[]> . "Move ITAB1 to ITAB2
Using COLLECT in SAP ABAP
COLLECT is slimier to APPEND, the difference is it (COLLECT) will check whether the work area record already exists with the same key (only C, D, N, T), if exists it will add numerical fields (sum) to the existing record, if the work area record does not exist it will append a new record.
Syntax: COLLECT <WA> INTO <ITAB>.
When we are processing large amount of data from the database table we will be using a temporary table with in our program which is commonly known as internal tables. These are dynamic data objects which help in dynamic memory management in the programs. The internal table mainly helps in formatting large amount of data from a database table within a program.
Types of internal table
Standard tables :
These types of table are used when we need the table to resemble same as the database table. Standard internal tables are filled by appending the lines using APPEND statement or using select statements. The table is searched using linear search
Sorted tables
These types of table are used when you need the entries to be sorted as they are filled. These tables are filled using the INSERT statement. Entries are inserted based on the order as they are arranged. We can access the entries in the table using index
Hashed tables
These types of tables are stored using a hashing key. We cannot access the entries in the table using the index instead we can use the hash key. We can access the entries in these tables using hash algorithm.
Processing internal table
We process the internal table using few commonly used statements. To process the internal table first the internal table should be filled with data, then it could be read for processing the data within it, for processing a specific data from the internal table we need to search the internal table.
So basically internal table operations can be divided into
Filling internal tables
Reading internal tables
Searching internal tables
Now let us see the statements under these steps of processing the internal table.
Filling internal table
First for processing the internal table we need to fill the table. We can fill the internal table using the statements mentioned below they are,
Insert
Select
Collect
Append
Modify
Delete
Sort
Let us discus these statements with an example.
Introduction
When we are processing large amount of data from the database table we will be using a temporary table with in our program which is commonly known as internal tables. These are dynamic data objects which help in dynamic memory management in the programs. The internal table mainly helps in formatting large amount of data from a database table within a program.
Types of internal table
Standard tables :
These types of table are used when we need the table to resemble same as the database table. Standard internal tables are filled by appending the lines using APPEND statement or using select statements. The table is searched using linear search
Sorted tables
These types of table are used when you need the entries to be sorted as they are filled. These tables are filled using the INSERT statement. Entries are inserted based on the order as they are arranged. We can access the entries in the table using index
Hashed tables
These types of tables are stored using a hashing key. We cannot access the entries in the table using the index instead we can use the hash key. We can access the entries in these tables using hash algorithm.
Processing internal table
We process the internal table using few commonly used statements. To process the internal table first the internal table should be filled with data, then it could be read for processing the data within it, for processing a specific data from the internal table we need to search the internal table.
So basically internal table operations can be divided into
Filling internal tables
Reading internal tables
Searching internal tables
Now let us see the statements under these steps of processing the internal table.
Filling internal table
First for processing the internal table we need to fill the table. We can fill the internal table using the statements mentioned below they are,
Insert
Select
Collect
Append
Modify
Delete
Sort
Let us discus these statements with an example.
Internal table operations are most important for an ABAP developer, below are some of the most important internal table operations
APPEND
INSERT
SORT
DESCRIBE TABLE
READ TABLE WITH KEY
READ TABLE WITH INDEX
LOOP....ENDLOOP.
MODIFY
DELETE
DELETE ADJACENT DUPLICATES
CLEAR, REFRESH, FREE
APPEND LINES OF
INSERT LINES OF
MOVE
COLLECT
Using APPEND in SAP ABAP
APPEND statement is used to append or add a record from work area to internal table, the new record will be added at the end of the internal table.
Syntax: APPEND <WA> TO <ITAB>
DATA : IT_MARA TYPE TABLE OF MARA.
DATA : WA_MARA TYPE MARA.
WA_MARA-MATNR = '00001'.
WA_MARA-MTART = 'FERT'.
WA_MARA-MEINS = 'EA'.
APPEND WA_MARA TO IT_MARA . "APPEND WORK AREA TO INTERNAL TABLE
Using INSERT in SAP ABAP
INSERT statement is used to insert or add a record from work area into internal table at the specified location
Syntax: INSERT <WA> INTO <ITAB> INDEX <index>
DATA : IT_MARA TYPE TABLE OF MARA.
DATA : WA_MARA TYPE MARA.
WA_MARA-MATNR = '00001'.
WA_MARA-MTART = 'FERT'.
WA_MARA-MEINS = 'EA'.
INSERT WA_MARA INTO IT_MARA INDEX 2 . "The record will be inserted into internal table at 2nd position
Using SORT in SAP ABAP
SORT is used to sort a Internal table data in ascending order or descending order, by default it will sort the data in ascending order. In addition to this we can able to sort data based on specified fields.
Syntax1 : SORT <ITAB> . "Default sorts data in ascending order
Syntax2 : SORT <ITAB> DESCENDING . " Sort in descending order
Syntax3 : SORT <ITAB> BY <FIELD1> <FIELD2>...ASCENDING/DESCENDING ."It sorts data by specified fields <FIELD1>, <FIELD2>..
Using DESCRIBE TABLE in SAP ABAP
DESCRIBE TABLE is used to count the no of records in a internal table
Syntax: DESCRIBE TABLE <ITAB> LINES <v_lines> ." Count the no. Of
record of an internal table, here v_lines store count
DATA : V_LINES TYPE I. "Type integer
DESCRIBE TABLE IT_MARA LINES V_LINES ." Count the no. of record of a internal table
Write : v_lines .
Using READ TABLE WITH KEY in SAP ABAP
READ TABLE WITH KEY .. BINARY SEARCH is used to read a single record from an internal table into work area specified by field name and field value .
BINARY SEARCH is a search mechanism which is used to read a record from internal table into work area very fast, the functionality of binary search it divides the into parts and searches, for full details Binary Search mechanism in SAP ABAPThe internal table must be sorted in ascending order before using binary search.
Syntax: READ TABLE <ITAB> INTO <WA> WITH KEY <FIELD1> = <FIELD1 VALUE> <FIELD1> = <FIELD1 VALUE>
BINARY SEARCH .
." Read a record into work area where some field = some value
READ TABLE IT_MARA INTO WA_MARA WITH KEY MATNR = '0001' BINARY SEARCH . "Read a
record into work area where MATNE is '0001'
Using READ TABLE WITH INDEX in SAP ABAP
READ TABLE WITH INDEX is used to read a single record from an internal table into work area specified by index.
Syntax: READ TABLE <ITAB> INTO <WA> INDEX <index_no>
." Read a record into work area using index ( position )
READ TABLE IT_MARA INTO WA_MARA INDEX '2' . "Read a record into work area where
index is 2.
Using LOOP....ENDLOOP. in SAP ABAP
Loop...Endloop. is also used to read data from a internal table into work area, this is used to read multiple records serially one after one .
Syntax1: LOOP AT <ITAB> INTO <WA> .
ENDLOOP.
Syntax2: LOOP AT <ITAB> INTO <WA> WHERE <FIELDS1> =
<VALUE> .
ENDLOOP.
Syntax3: LOOP AT <ITAB> INTO <WA> FROM <INDEX1> TO
<INDEX2>.
ENDLOOP.
Using MODIFY in SAP ABAP
MODIFY is used to modify a single or multiple internal table records based on condition
TRANSPORTING is a keyword which is used to specify a list of fields to be modified instead of all fields.
Syntax1: MODIFY <ITAB> FROM <WA> INDEX <INDEX NO> TRANSPORTING <FIELD1> <FIELD2>
Syntax1: MODIFY <ITAB> FROM <WA> TRANSPORTING <FIELD1>
<FIELD2> WHERE <CONDITION>
SY-TABIX is a key word which stores the index no of currently processed record. For full details, read using sy-tabix in sap abap programs .
DATA : IT_MARA TYPE TABLE OF MARA.
DATA : WA_MARA TYPE MARA.
SELECT * FROM MARA INTO TABLE IT_MARA . " GET DATA INTO ITAB IT_MARA
WA_MARA-MTART = 'FERT'; "ASSIGN A VALUE TO WORKAREA TO MODIFY INTERNAL TABLE
MODIFY IT_MARA FROM WA_MARA INDEX SY-TABIX TRANSPORTING MTART. " NOW THE VALUE OF
FIELD MTART WILL BE MODIFIED FOR CURRENT RECORD IN IT_MARA
DATA : IT_MARA TYPE TABLE OF MARA.
DATA : WA_MARA TYPE MARA.
SELECT * FROM MARA INTO TABLE IT_MARA . " GET DATA INTO ITAB IT_MARA
WA_MARA-MTART = 'FERT'; "ASSIGN A VALUE TO WORKAREA TO MODIFY INTERNAL TABLE
MODIFY IT_MARA FROM WA_MARA TRANSPORTING MTART WHERE MATNR = '0001'. " NOW THE
VALUE OF FIELD MTART WILL BE MODIFIED WHERE MATNR = '0001' IN ITAB
Using DELETE in SAP ABAP
DELETE is used to delete single or multiple records from an internal table from work area based on some condition.
Syntax1: DELETE <ITAB> INDEX <INDEX NO>.
Syntax2: DELETE <ITAB> WHERE <FIELD1> = <FIELD1 VALUE>
<FIELD2> = <FIELD2 VALUE>.
DELETE IT_MARA INDEX 3. "3rd RECORD WILL BE DELETED IN IT_MARA
DELETE IT_MARA WHERE MTART = 'FERT'. "MATERIALS WITH MTART = 'FERT' WILL BE DELETED
Using DELETE ADJACENT DUPLICATES in SAP ABAP
DELETE ADJACENT DUPLICATES is used to delete delete duplicate records which are adjacent to each-other.Pre-requisite for this is the internal table must be sorted in ascending order
Syntax1: DELETE ADJACENT DUPLICATED FROM <ITAB> ."ADJACENT DUPLICATED WILL
BE DELETED IN INTERNAL TABLE COMPARING ALL FIELDS
Syntax2: DELETE ADJACENT DUPLICATES FROM <ITAB> COMPARING <FIELD1>
<FIELD2> . "ADJACENT DUPLICATES WILL BE DELETED COMPARING SPECIFIED FIELDS
SORT IT_MARA ASCENDING.
DELETE ADJACENT DUPLICATES FROM IT_MARA . "3rd RECORD WILL BE DELETED IN IT_MARA
SORT IT_MARA ASCENDING.
DELETE ADJACENT DUPLICATES IT_MARA COMPARING MATR, MTART. "DUPLICATES WILL BE
DELETED BY COMPARING MATNR AND MTART
Using CLEAR, REFRESH, FREE in SAP ABAP
CLEAR is used to clear a value in a work area or in a variable.
REFRESH is used to clear all values in an internal table.
FREE is used to clear (free) memory of an internal table or work area. We all know whenever we declare an internal table or work area, 8kb memory will be allocated.
Syntax clear : CLEAR <WA> "CLEAR WORK AREA OR VARIABLE
Syntax REFRESH : REFRESH <ITAB> "CLEAR ALL RECORDS OF INTERNAL TABLE BUT
MEMORY WILL BE THERE
Syntax FREE : FREE <WA> "FREE INTERNAL TABLE MEMORY
CLEAR WA_MARA.
REFRESH IT_MARA.
FREE IT_MARA.
Using APPEND LINES OF in SAP ABAP
APPEND LINES OF is used to append multiple records to an internal table from another internal table.
Syntax : APPEND LINES OF <ITAB1> FROM <index no> TO <index no2>
TO <ITAB2>.
DATA : IT_MARA TYPE TABLE OF MARA. "FIRST INTERNAL TABLE
DATA : IT_MARA1 TYPE TABLE OF MARA. "SECOND INTERNAL TABLE
APPEND LINES OF IT_MARA FROM 3 TO 5 TO IT_MARA1 . "DATA IN IT_MARA WILL BE APPENDED
TO IT_MARA1 FROM INDEX 3 TO INDEX 5 .
Using INSERT LINES OF in SAP ABAP
INSERT LINES OF is used to INSERT multiple records to an internal table from another internal table at the specified location.
Syntax : INSERT LINES OF <ITAB1> FROM <index no> TO <index no2>
INTO <ITAB2> INDEX <index no>.
DATA : IT_MARA TYPE TABLE OF MARA. "FIRST INTERNAL TABLE
DATA : IT_MARA1 TYPE TABLE OF MARA. "SECOND INTERNAL TABLE
INSERT LINES OF IT_MARA FROM 3 TO 5 INTO IT_MARA1 INDEX 3 . "DATA IN IT_MARA WILL
BE INSERTED INTO IT_MARA1 FROM INDEX 3 TO INDEX 5 AT INDEX 3 LOCATION .
Using MOVE in SAP ABAP
MOVE keyword is used to move one internal table data to another.
Syantax : <ITAB2[]> = <ITAB1[]> . "Move ITAB1 to ITAB2
Using COLLECT in SAP ABAP
COLLECT is slimier to APPEND, the difference is it (COLLECT) will check whether the work area record already exists with the same key (only C, D, N, T), if exists it will add numerical fields (sum) to the existing record, if the work area record does not exist it will append a new record.
Syntax: COLLECT <WA> INTO <ITAB>.