DECLARATION OF INTERNAL TABLE OF TYPE (DATABASE TABLE)
DATA It_internal_table TYPE STANDARD TABLE OF ztt_db_table1.
DATA Is_structure LIKE LINE OF It_internal_table.
DO’s
- DATA Is_structure TYPE ztt_db_table1
DON’TS
- One common mistake observed from beginners: please declare the internal type explicitly like below ‘TYPE STANDARD TABLE OF’. Otherwise it will consider as structure.
DATA ls_struct_instead_of_internal_table TYPE ztt_db_table1.
- DATA Is_structure TYPE lt_internal_table. if it is written like this, it will show compilation error –“Type LT_INTERNAL TABLE’ is unknown”.
- DATA Is_structure LIKE It_internal_table. Here Is_structure is considered as internal table. It shows error which assigning values to the structure. The compilation error such as ‘Is structure’ is a table without a header line and therefore does not have a component called “FIELD1”, ‘FIELD2′,’FIELD3’. It also shows compilation error in the line ‘INSERT INTO ztt_db_table1 VALUES Is_structure’ saying that internal tables cannot be used as work areas.
“CHECKING INTERNAL TABLE OF TYPE (DATABASE TABLE)
Is structure-field1 = 10.
Is structure-field2 = ‘Ten’.
Is structure-fieid3 = ‘Number: 10’.
INSERT INTO ztt_db_table1 VALUES Is_structure.
SELECT * FROM ztt_db_table1 INTO TABLE It_internal_table.
LOOP AT It_internal_table ASSIGNING FIELD-SYMBOL(<Is_internal_table>).
WRITE:/ <ls_internaltable>-field1.
WRITE:/ <Is_internal_table›-field2.
WRITE:/ <Is_internal_table>-field3.
ENDLOOP.
DECLARATION OF LOCAL INTERNAL TABLE AND STRUCTURE
TYPES: BEGIN OF st_structure,
Field1 TYPE zdel_id,
Field2 TYPE zdel_name,
Field3 TYPE zdel_desc,
END OF st_structure.
TYPES: tt_internal_table TYPE STANDARD TABLE OF st_structure.
DATA pt_internal_table TYPE tt_internal_table.
DATA ls_local_structure LIKE LINE OF pt_internal_table.
“ CHECKING LOCAL INTERNAL TABLE AND STRUCTURE
Ls_local_structure-field1 = 20.
Ls_local_structure-field2 = ‘Twenty’.
Ls_local_structure-field3 = ‘Number: 20’.
INSERT INTO ztt_db_table1 VALUES ls_local_structure.
SELECT * FROM ztt_db_table1 INTO TABLE pt_internal_table.
LOOP AT pt_internal_table ASSIGNING <ls_internal_table>.
WRITE:/ <ls_internal_table>-field1.
WRITE:/ <ls_internal_table>-field2.
WRITE:/ <ls_internal_table>-field3.
ENDLOOP.
DO’S
- DATA ls_local_structure TYPE st_structure. Instead of using the LIKE LINE OF internal_table. We can directly specify the structure type.
DON’TS
- St_structure-field1 = 20. Please don’t use variables of ‘TYPES’. We need to explicitly define a variable in order to use it. It shows the compilation error “Field is unknown”. The same applies for the table type, so here ‘SELECT * FROM ztt_db_table1 INTO TABLE tt_internal_table.’
tt_internal_table is just a datatype. We need to explicitly declare a variable of this type, in order to use it.
DECLARATION OF INTERNAL TABLE OF TYPE ( TABLE TYPE)
DATA lt_int_table_of_tt TYPE ztt_table_type.
DATA ls_structure_of_tt TYPE zss_structure.
“CHECKING LOCAL INTERNAL TABLE AND STRUCTURE
Ls_structure_of_tt-m_field4 = 30.
Ls_structure_of_tt-m_field5 = 30.
APPEND ls_structure_of_tt TO lt_int_table_of_tt.
LOOP AT lt_int_table_of_tt ASSIGNING FIELD-SYMBOL(<ls_structure_of_tt>).
WRITE:/ <ls_structure_of_tt>-m_field4.
WRITE:/ <ls_structure_of_tt>-m_field5.
ENDLOOP.