SlideShare a Scribd company logo
1 of 47
Download to read offline
Internal Tables
Internal Tables




         Objective:


           The following section explains :
           • Defining Internal Tables
           • Processing Internal Tables
           • Accessing Internal Tables
           • Initializing Internal Tables
Internal Tables


         Internal tables are structured data types provided by ABAP/4.
         Internal tables cannot be accessed outside the program
         environment.


         Purpose of internal tables

            • Internal tables are used to reorganize the contents of
            database tables according to the needs of your program

            • Internal tables are used to perform calculations on
            subsets of database tables.

            • The number of lines in an internal table is not fixed.

            • Internal tables exist only during the run time of a
            program.
Accessing Internal Tables

        •You access internal tables line by line. You must use a work
        area as an interface for transferring data to and from the table.

        •When you read data from an internal table, the contents of the
        addressed table line overwrite the contents of the work area..

        • When you write data to an internal table, you must first enter
        the data in the work area from which the system can transfer the
        data to the internal table.
Types of internal tables

         There are two kinds of internal tables in ABAP/4:

         ·Internal tables with header line

          If you create an internal table with header line, the system
         automatically creates a work area with the same data type as
         the lines of the internal table.

         Note : Work area has the same name as the internal table.

         ·Internal tables without header line

         Internal tables without a header line do not have a table work
         area which can be used implicitly you must specify a work
         area explicitly.
Creating Internal Tables


         There are two ways by which you can create internal tables

         First create an internal table data type using the 'TYPES'
         statement and then create a data object referring that data
         type.

         Syntax : TYPES <t> <type> OCCURS <n>

         Eg: TYPES : BEGIN OF LINE,
               COLUMN1 TYPE I,
               COLUMN2 TYPE I,
               COLUMN3 TYPE I,
               END OF LINE.

            TYPES ITAB TYPE LINE OCCURS 10.
Creating Internal Tables




         Create an internal table data object by referring to a
         structure.

         Syntax: DATA <f> <type> [WITH HEADER LINE]

         Eg: TYPES : BEGIN OF LINE,
               COLUMN1 TYPE I,
               COLUMN2 TYPE I,
               COLUMN3 TYPE I,
               END OF LINE.
            TYPES ITAB TYPE LINE OCCURS 10.
             DATA ITAB1 TYPE ITAB.
             DATA ITAB2 LIKE ITAB1 WITH HEADER LINE.
Creating Internal Tables




         Creating Internal Tables with header line
         In this method an internal table is created with reference to
         existing structure ( another internal table or Dictionary
         object).

         Eg: DATA ITAB LIKE SFLIGHT OCCURS 10 WITH HEADER
         LINE.
Creating Internal Tables




         Create an internal table data object directly with the 'DATA'
         statement.

         Eg: DATA : BEGIN OF ITAB OCCURS 0,
               COLUMN1 TYPE I,
               COLUMN2 TYPE I,
               COLUMN3 TYPE I,
               END OF ITAB.

         Note : In this method a header line with same name as the
         internal table is created automatically.
Filling Internal Tables



          Appending Lines:
          To append a line to an internal table, use the APPEND
          statement as follows:

          Syntax
          APPEND [<wa> TO] <itab>.

          Eg: TYPES : BEGIN OF LINE,
                 COL1 TYPE C,
                 COL2 TYPE N,
                 END OF LINE.
          DATA TAB1 LIKE LINE OCCURS 10.
          LINE-COL1 = ‘A’. LINE-COL2 = ‘1’.
          APPEND LINE TO TAB1.
Filling Internal Tables




         Appending Lines depending on the Standard Key (COLLECT
         STATEMENT)

         To fill an internal table with lines which have unique standard
         keys.

         Syntax
         COLLECT [<wa> INTO] <itab>

         If an entry with the same key already exists(all non-numeric
         fields) the collect statement does not append a new line but
         adds the contents of the numeric fields in the work area to the
         contents of the numeric fields in the existing entry
Filling Internal Tables


          Eg: TYPES : BEGIN OF ITAB1 OCCURS 0,
                 COL1 TYPE C,
                 COL2 TYPE I,
                 END OF ITAB1.

          ITAB1-COL1 = ‘A’. ITAB1-COL2 = ‘1’.
          COLLECT TAB1.
          ITAB1-COL1 = ‘B’. ITAB1-COL2 = ‘2’.
          COLLECT TAB1.
          ITAB1-COL1 = ‘A’. ITAB1-COL2 = ‘1’.
          COLLECT TAB1.

          This Produces the output as follows:
          A      2
          B      2
Filling Internal Tables

          Inserting lines :

         To insert a new line before a line in an internal table, you use
         the INSERT statement as follows:

         Syntax

         INSERT [<wa> INTO] <itab> [INDEX <idx>].

         Eg: TYPES : BEGIN OF LINE,
                COL1 TYPE C,
                COL2 TYPE N,
                END OF LINE.
         DATA TAB1 LIKE LINE OCCURS 10.
         LINE-COL1 = ‘A’. LINE-COL2 = ‘1’.
         INSERT LINE INTO TAB1 INDEX 2.
Filling Internal Tables

          COPYING INTERNAL TABLES :
          To copy the entire contents of one internal table into another,
          use the MOVE statement.
          Syntax:
          MOVE <itab1> to <itab2>

          Eg: TYPES : BEGIN OF LINE,
                 COL1 TYPE C,
                 COL2 TYPE N,
                 END OF LINE.

          DATA TAB1 LIKE LINE OCCURS 10.
          DATA TAB2 LIKE LINE OCCURS 10.
          LINE-COL1 = ‘A’. LINE-COL2 = ‘1’.
          APPEND LINE TO TAB1.
          MOVE TAB1[ ] TO TAB2.
Filling Internal Tables

         Filling Internal Table from Database Table:

                 Example
                 TABLES SPFLI.

                 DATA ITAB LIKE SPFLI OCCURS 10 WITH HEADER
         LINE.

                 SELECT * FROM SPFLI INTO TABLE ITAB
                           WHERE CARRID = 'LH'.

                  LOOP AT ITAB.
                   WRITE: / ITAB-CONNID, ITAB-CARRID.
                  ENDLOOP.
         In this example, all lines from the database table SPFLI in which
         CARRID field contains "LH" are read into the internal table ITAB,
         where they can be processed further.
Filling Internal Tables


         To read data component by component into the internal table.

                 TABLES SPFLI.
                 DATA: BEGIN OF ITAB OCCURS 0,
                    NUMBER TYPE I VALUE 1,
                     CITYFROM LIKE SPFLI-CITYFROM,
                     CITYTO LIKE SPFLI-CITYTO,
                   END OF ITAB.

                 SELECT * FROM SPFLI WHERE CARRID = 'LH'.
                  MOVE-CORRESPONDING SPFLI TO ITAB.
                  APPEND ITAB.
                 ENDSELECT.
         In this example, all lines from the database table SPFLI in which
         CARRID field contains "LH" are read into the internal table ITAB
         one by one, where they can be processed further.
Reading Internal Tables




        To read the contents of internal tables for further processing,
        you can use either the LOOP or the READ statement.

        Reading Internal Tables Line by Line

        You use the the LOOP statement to read internal tables line by
        line.
Reading Internal Tables




               LOOP AT <itab> [INTO <wa>] [WHERE <condition>].
                .....
               ENDLOOP.

        Eg:    DO 3 TIMES.
               LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX *
               SY-INDEX.
               APPEND LINE TO TAB1.
               ENDDO.
               LOOP AT TAB1 WHERE COL1 > 2.
               WRITE : / TAB1-COL1.
               ENDLOOP.
Reading Internal Tables




        You can select a single line by the READ statement:

        Syntax:

        READ TABLE <itab> [INTO <wa>] WITH KEY<key> [BINARY
        SEARCH].
Reading Internal Tables




        Eg:
              TYPES : BEGIN OF LINE,
                 COL1 TYPE C,
                 COL2 TYPE N,
                 END OF LINE.
              DATA TAB1 LIKE LINE OCCURS 10.
              DO 3 TIMES.
              LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2.
              APPEND LINE TO TAB1.
              ENDDO.
              READ TABLE TAB1 INTO LINE WITH KEY COL2 = 4.
Reading Internal Tables




         The COMPARING addition, the specified table fields <f i > of
         the structured line type are compared with the corresponding
         fields of the work area before being transported. If the
         contents of the compared fields are the same, SY-SUBRC is
         set to 0. If the contents of the compared fields are not the
         same, it returns the value 2.
         Syntax:
         READ TABLE <itab> [INTO <wa>] INDEX <idx> COMPARING
         <fields>.
Reading Internal Tables




        Eg:
              TYPES : BEGIN OF LINE,
                 COL1 TYPE C,
                 COL2 TYPE N,
                 END OF LINE.
              DATA TAB1 LIKE LINE OCCURS 10.
              DO 3 TIMES.
              LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2.
              APPEND LINE TO TAB1.
              ENDDO.
              READ TABLE TAB1 INTO LINE INDEX 2 COMPARING COL1
              COL2.
Modifying Internal tables




         You can modify single line using MODIFY statement:

         Syntax :
          MODIFY itab [FROM wa] [INDEX idx].
Modifying Internal tables




         Eg:
               TYPES : BEGIN OF LINE,
                  COL1 TYPE C,
                  COL2 TYPE N,
                  END OF LINE.
               DATA TAB1 LIKE LINE OCCURS 10.
               DO 3 TIMES.
               LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2.
               APPEND LINE TO TAB1.
               ENDDO.
               LINE-COL1 = ‘A’.
               MODIFY TAB1 FROM LINE INDEX 2.
Modifying Internal tables




         Syntax :
         MODIFY itab [FROM wa] [TRANSPORTING f1 ... fn [WHERE
         cond]].
Modifying Internal tables




         Eg:
               TYPES : BEGIN OF LINE,
                  COL1 TYPE C,
                  COL2 TYPE N,
                  END OF LINE.
               DATA TAB1 LIKE LINE OCCURS 10.
               DO 3 TIMES.
               LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2.
               APPEND LINE TO TAB1.
               ENDDO.
               LINE-COL1 = ‘A’.
               MODIFY TAB1 FROM LINE TRANSPORTING COL1
               WHERE COL2 = 4.
Deleting Internal tables




         To delete lines from an internal table in a loop:
         Syntax:
          DELETE <itab>.
         Note: The System can process this statement only within an
                       LOOP..ENDLOOP block.
Deleting Internal tables




         Eg:    DO 3 TIMES.
                LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX *
                SY-INDEX.
                APPEND LINE TO TAB1.
                ENDDO.
                LOOP AT TAB1.
                 IF TAB1-COL1 > 2.
                  DELETE TAB1.
                 ENDIF.
                ENDLOOP.
Deleting Internal tables




         TO delete the lines using Index.
         Syntax:
           DELETE <itab> INDEX <idx>.
Deleting Internal tables




         Eg:
               TYPES : BEGIN OF LINE,
                   COL1 TYPE C,
                   COL2 TYPE N,
                   END OF LINE.
               DATA TAB1 LIKE LINE OCCURS 10.
               DO 3 TIMES.
               LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX * SY-INDEX.
               APPEND LINE TO TAB1.
               ENDDO.
               DELETE TAB1 INDEX 2.
Deleting Internal tables




         TO delete the Adjacent Duplicates from the Internal Table.
         Syntax:
          DELETE ADJACENT DUPLICATE ENTRIES FROM <itab> [
         COMPARING
                     <comp>]
Deleting Internal tables




         Eg:
               TYPES : BEGIN OF LINE,
                   COL1 TYPE C,
                   COL2 TYPE N,
                   END OF LINE.
               DATA TAB1 LIKE LINE OCCURS 10.
               LINE-COL1 = ‘A’. LINE-COL2 = ‘1’.
               APPEND LINE TO TAB1.
               LINE-COL1 = ‘A’. LINE-COL2 = ‘2’.
               APPEND LINE TO TAB1.
               DELETE ADJACENT DUPLICATE ENTRIES FROM TAB1
                                                 COMPARING COL1.
Deleting Internal tables




         TO delete the Adjacent Duplicates from the Internal Table.
         Syntax:
          DELETE ADJACENT DUPLICATE ENTRIES FROM <itab> [
         COMPARING
                     <comp>]
Deleting Internal tables



         Eg:
                TYPES : BEGIN OF LINE,
                   COL1 TYPE C,
                   COL2 TYPE N,
                   END OF LINE.
                DATA TAB1 LIKE LINE OCCURS 10.
               LINE-COL1 = ‘A’. LINE-COL2 = ‘2’.
               APPEND LINE TO TAB1.
               LINE-COL1 = ‘A’. LINE-COL2 = ‘2’.
               APPEND LINE TO TAB1.
               DELETE ADJACENT DUPLICATE ENTRIES FROM TAB1
               COMPARING ALL FIELDS.
Deleting Internal tables




         TO delete a set of selected lines from the Internal Table.
         Syntax:
          DELETE <itab> [FROM <n1>] [TO <n2>] [WHERE
         <condition>].
Deleting Internal tables




         Eg:
               TYPES : BEGIN OF LINE,
                   COL1 TYPE C,
                   COL2 TYPE N,
                   END OF LINE.
               DATA TAB1 LIKE LINE OCCURS 10.
               LINE-COL1 = ‘A’. LINE-COL2 = ‘1’.
               APPEND LINE TO TAB1.
               LINE-COL1 = ‘A’. LINE-COL2 = ‘2’.
               APPEND LINE TO TAB1.
               DELETE TAB1 WHERE COL2 = 2.
Sorting Internal Table




         TO Sort an Internal Table .
         Syntax:
          SORT <itab> [<order>] [AS TEXT] [BY <f1> [<order>]
         [AS TEXT] . . <fn>[<order>] [AS TEXT] ]   .
Sorting Internal Table




         Eg:
         TYPES : BEGIN OF LINE,
                COL1 TYPE C,
                COL2 TYPE N,
                END OF LINE.
            DATA TAB1 LIKE LINE OCCURS 10.
            LINE-COL1 = ‘A’. LINE-COL2 = ‘2’.
            APPEND LINE TO TAB1.
            LINE-COL1 = ‘A’. LINE-COL2 = ‘1’.
            APPEND LINE TO TAB1.
            SORT TAB1 BY COL2 ASCENDING .
Loop Processing




       Calculating the totals within loop…endloop.
       Syntax: SUM
Loop Processing




       Eg.
             TYPES : BEGIN OF LINE,
                COL1 TYPE C,
                COL2 TYPE I,
                END OF LINE.
             DATA TAB1 LIKE LINE OCCURS 10.
             DO 3 TIMES.
             LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2.
             APPEND LINE TO TAB1.
             ENDDO.
             LOOP AT TAB1.
             SUM.
             ENDLOOP.
Using Control Levels




         This topic describes how to use control level statement
         blocks which process only specific values within
         loop…endloop.
         Syntax:
             AT <line>
              <statement block>
             ENDAT.
Using Control Levels




        The line condition <line>, at which the statement block within
        AT-ENDAT. <Line>                         Meaning
        FIRST                   First line of the internal table
        LAST                    Last line of the internal table
        NEW <f>                 Beginning of a group of line with same
        contents in the fields <f> & in the fields of <f>.
        END OF <f>              End of a group of line with same contents
        in the fields <f> & in the fields of <f>.
        Note: Before working with control breaks, You should sort the
        internal table in the same order as its columns are defined.
Using Control Levels

        Hierarchy of AT-ENDAT statement.
        If the internal table has the columns <col1>,<col2>,… and if it is
        sorted by the columns as they are defined, the loop is to be
        programmed as follows:
        LOOP AT <itab>.
              AT FIRST. …..ENDAT.
                     AT NEW <col1>….ENDAT.
                            AT NEW <col2>……ENDAT.
                            …….
                            <single line processing>
                            ……...
                            AT END OF <col2>…..ENDAT.
                     AT END OF <col1>……ENDAT.
              AT LAST……ENDAT.
        ENDLOOP.
Using Control Levels

        Example:
        TYPES : BEGIN OF LINE,
                COL1 TYPE C,
                COL2 TYPE I,
                END OF LINE.
               DATA TAB1 LIKE LINE OCCURS 10.

                LINE-COL1 = ‘A’. LINE-COL2 = ‘2’.
                APPEND LINE TO TAB1.
                LINE-COL1 = ‘B’. LINE-COL2 = ‘1’.
                APPEND LINE TO TAB1.
                LINE-COL1 = ‘A’. LINE-COL2 = ‘3’.
                APPEND LINE TO TAB1.
                LINE-COL1 = ‘C’. LINE-COL2 = ‘4’.
                APPEND LINE TO TAB1.
                SORT TAB1 BY COL1.
Using Control Levels

        Cont..
        LOOP AT TAB1.
              AT FIRST.
                     WRITE:/ ‘HEADING’.
              ENDAT.
              AT NEW COL1.
                     WRITE:/ TAB1-COL1.
              ENDAT.
              AT END OF COL1.
                     SUM.
                     WRITE:/ TAB1-COL1, TAB1-COL2.
              ENDAT.
              AT LAST.
                     SUM.
                     WRITE:/ TAB1-COL1, TAB1-COL2.
              ENDAT.
        ENDLOOP.
Initializing Internal Tables

          To initialize an internal table with or without header line.
          Syntax :
          REFRESH <itab>.
          This statement resets an internal table.
          CLEAR <itab>.
          If you are working with an internal table with a header line ,
          the clear statement clears only the table work area
          resetting to initial values.
          CLEAR <itab>[ ].
          The square bracket after the name of the internal table refer
          to the body of the internal table.This statement also resets
          an internal table.
          FREE <itab>.
          You can release the memory with the FREE statement once
          initialized.
Initializing Internal Tables

         Example:
         TYPES : BEGIN OF LINE,
                 COL1 TYPE C,
                 COL2 TYPE I,
                 END OF LINE.
                DATA TAB1 LIKE LINE OCCURS 10.

                 LINE-COL1 = ‘A’. LINE-COL2 = ‘2’.
                 APPEND LINE TO TAB1.
                 LINE-COL1 = ‘B’. LINE-COL2 = ‘1’.
                 APPEND LINE TO TAB1.
                 CLEAR TAB1.
                 REFRESH TAB1.
                 IF TAB1 IS INITIAL.
                 WRITE:/ ‘TAB1 IS EMPTY’.
                 FREE TAB1.
                 ENDIF.

More Related Content

What's hot

Sap abap database table
Sap abap database tableSap abap database table
Sap abap database tableDucat
 
Abap function module help
Abap function module helpAbap function module help
Abap function module helpKranthi Kumar
 
Chapter 03 foreign key relationships1
Chapter 03 foreign key relationships1Chapter 03 foreign key relationships1
Chapter 03 foreign key relationships1Kranthi Kumar
 
SAP ABAP - Needed Notes
SAP   ABAP - Needed NotesSAP   ABAP - Needed Notes
SAP ABAP - Needed NotesAkash Bhavsar
 
Call transaction method
Call transaction methodCall transaction method
Call transaction methodKranthi Kumar
 
ABAP Event-driven Programming &Selection Screen
ABAP Event-driven Programming &Selection ScreenABAP Event-driven Programming &Selection Screen
ABAP Event-driven Programming &Selection Screensapdocs. info
 
Bdc BATCH DATA COMMUNICATION
Bdc BATCH DATA COMMUNICATIONBdc BATCH DATA COMMUNICATION
Bdc BATCH DATA COMMUNICATIONHitesh Gulani
 
Beginner’s guide to sap abap 1
Beginner’s guide to sap abap 1Beginner’s guide to sap abap 1
Beginner’s guide to sap abap 1Panduka Bandara
 
Abap data dictionary
Abap data dictionaryAbap data dictionary
Abap data dictionarySmartGokul4
 
Introduction to ABAP
Introduction to ABAPIntroduction to ABAP
Introduction to ABAPsapdocs. info
 
Top 10 sap abap faqs-www.bigclasses.com
Top 10 sap abap faqs-www.bigclasses.comTop 10 sap abap faqs-www.bigclasses.com
Top 10 sap abap faqs-www.bigclasses.combigclasses.com
 
0104 abap dictionary
0104 abap dictionary0104 abap dictionary
0104 abap dictionaryvkyecc1
 

What's hot (20)

Sap abap database table
Sap abap database tableSap abap database table
Sap abap database table
 
Abap function module help
Abap function module helpAbap function module help
Abap function module help
 
Chapter 03 foreign key relationships1
Chapter 03 foreign key relationships1Chapter 03 foreign key relationships1
Chapter 03 foreign key relationships1
 
SAP ABAP - Needed Notes
SAP   ABAP - Needed NotesSAP   ABAP - Needed Notes
SAP ABAP - Needed Notes
 
Abap reports
Abap reportsAbap reports
Abap reports
 
Badis
Badis Badis
Badis
 
Call transaction method
Call transaction methodCall transaction method
Call transaction method
 
ABAP Event-driven Programming &Selection Screen
ABAP Event-driven Programming &Selection ScreenABAP Event-driven Programming &Selection Screen
ABAP Event-driven Programming &Selection Screen
 
Bdc BATCH DATA COMMUNICATION
Bdc BATCH DATA COMMUNICATIONBdc BATCH DATA COMMUNICATION
Bdc BATCH DATA COMMUNICATION
 
Badi document
Badi documentBadi document
Badi document
 
ABAP Advanced List
ABAP Advanced ListABAP Advanced List
ABAP Advanced List
 
Beginner’s guide to sap abap 1
Beginner’s guide to sap abap 1Beginner’s guide to sap abap 1
Beginner’s guide to sap abap 1
 
Abap data dictionary
Abap data dictionaryAbap data dictionary
Abap data dictionary
 
Alv theory
Alv theoryAlv theory
Alv theory
 
Using idoc method in lsmw
Using idoc method in lsmwUsing idoc method in lsmw
Using idoc method in lsmw
 
Introduction to ABAP
Introduction to ABAPIntroduction to ABAP
Introduction to ABAP
 
Top 10 sap abap faqs-www.bigclasses.com
Top 10 sap abap faqs-www.bigclasses.comTop 10 sap abap faqs-www.bigclasses.com
Top 10 sap abap faqs-www.bigclasses.com
 
Search help
Search helpSearch help
Search help
 
0104 abap dictionary
0104 abap dictionary0104 abap dictionary
0104 abap dictionary
 
Sap abap
Sap abapSap abap
Sap abap
 

Viewers also liked

Chapter 01 overview of abap dictionary1
Chapter 01 overview of abap dictionary1Chapter 01 overview of abap dictionary1
Chapter 01 overview of abap dictionary1Kranthi Kumar
 
Chapter 05 adding structures1
Chapter 05 adding structures1Chapter 05 adding structures1
Chapter 05 adding structures1Kranthi Kumar
 
Chapter 02 abap dictionary objects1
Chapter 02 abap dictionary objects1Chapter 02 abap dictionary objects1
Chapter 02 abap dictionary objects1Kranthi Kumar
 
Chapter 04 abap dictionary tables in relational databases1
Chapter 04 abap dictionary tables in relational databases1Chapter 04 abap dictionary tables in relational databases1
Chapter 04 abap dictionary tables in relational databases1Kranthi Kumar
 
Chapter 06 abap repository information system1
Chapter 06 abap  repository information system1Chapter 06 abap  repository information system1
Chapter 06 abap repository information system1Kranthi Kumar
 
Lecture02 abap on line
Lecture02 abap on lineLecture02 abap on line
Lecture02 abap on lineMilind Patil
 
Chapter 07 abap dictionary changes1
Chapter 07 abap dictionary changes1Chapter 07 abap dictionary changes1
Chapter 07 abap dictionary changes1Kranthi Kumar
 
Chapter 08 abap dictionary objects views1
Chapter 08 abap dictionary objects views1Chapter 08 abap dictionary objects views1
Chapter 08 abap dictionary objects views1Kranthi Kumar
 
Chapter 10 online help & documentation1
Chapter 10 online help & documentation1Chapter 10 online help & documentation1
Chapter 10 online help & documentation1Kranthi Kumar
 
0106 debugging
0106 debugging0106 debugging
0106 debuggingvkyecc1
 
Sujith ~ cross applications
Sujith ~ cross applicationsSujith ~ cross applications
Sujith ~ cross applicationsKranthi Kumar
 
table maintenance generator1
 table maintenance generator1 table maintenance generator1
table maintenance generator1Kranthi Kumar
 
Abap course chapter 3 basic concepts
Abap course   chapter 3 basic conceptsAbap course   chapter 3 basic concepts
Abap course chapter 3 basic conceptsMilind Patil
 
Chapter 09 overview of search helps1
Chapter 09 overview of search helps1Chapter 09 overview of search helps1
Chapter 09 overview of search helps1Kranthi Kumar
 

Viewers also liked (20)

Chapter 01 overview of abap dictionary1
Chapter 01 overview of abap dictionary1Chapter 01 overview of abap dictionary1
Chapter 01 overview of abap dictionary1
 
data modelling1
 data modelling1 data modelling1
data modelling1
 
Chapter 05 adding structures1
Chapter 05 adding structures1Chapter 05 adding structures1
Chapter 05 adding structures1
 
Chapter 02 abap dictionary objects1
Chapter 02 abap dictionary objects1Chapter 02 abap dictionary objects1
Chapter 02 abap dictionary objects1
 
Chapter 04 abap dictionary tables in relational databases1
Chapter 04 abap dictionary tables in relational databases1Chapter 04 abap dictionary tables in relational databases1
Chapter 04 abap dictionary tables in relational databases1
 
Chapter 06 abap repository information system1
Chapter 06 abap  repository information system1Chapter 06 abap  repository information system1
Chapter 06 abap repository information system1
 
cardinality1
cardinality1cardinality1
cardinality1
 
Ale Idoc
Ale IdocAle Idoc
Ale Idoc
 
Lecture02 abap on line
Lecture02 abap on lineLecture02 abap on line
Lecture02 abap on line
 
Chapter 07 abap dictionary changes1
Chapter 07 abap dictionary changes1Chapter 07 abap dictionary changes1
Chapter 07 abap dictionary changes1
 
Chapter 08 abap dictionary objects views1
Chapter 08 abap dictionary objects views1Chapter 08 abap dictionary objects views1
Chapter 08 abap dictionary objects views1
 
Chapter 10 online help & documentation1
Chapter 10 online help & documentation1Chapter 10 online help & documentation1
Chapter 10 online help & documentation1
 
0106 debugging
0106 debugging0106 debugging
0106 debugging
 
Sujith ~ cross applications
Sujith ~ cross applicationsSujith ~ cross applications
Sujith ~ cross applications
 
Bapi jco[1]
Bapi jco[1]Bapi jco[1]
Bapi jco[1]
 
VIEWS
VIEWSVIEWS
VIEWS
 
table maintenance generator1
 table maintenance generator1 table maintenance generator1
table maintenance generator1
 
Abap course chapter 3 basic concepts
Abap course   chapter 3 basic conceptsAbap course   chapter 3 basic concepts
Abap course chapter 3 basic concepts
 
control techniques
control techniquescontrol techniques
control techniques
 
Chapter 09 overview of search helps1
Chapter 09 overview of search helps1Chapter 09 overview of search helps1
Chapter 09 overview of search helps1
 

Similar to 05 internal tables

Sap internal
Sap   internalSap   internal
Sap internalkyashpal
 
Best SAP ABAP Training Institute with Placement in Pune | Aspire
Best SAP ABAP Training Institute with Placement in Pune | AspireBest SAP ABAP Training Institute with Placement in Pune | Aspire
Best SAP ABAP Training Institute with Placement in Pune | AspireAspire Techsoft Academy
 
Lecture06 abap on line
Lecture06 abap on lineLecture06 abap on line
Lecture06 abap on lineMilind Patil
 
Internal tables
Internal tablesInternal tables
Internal tableswaseem27
 
Sap abap-data structures and internal tables
Sap abap-data structures and internal tablesSap abap-data structures and internal tables
Sap abap-data structures and internal tablesMustafa Nadim
 
97102 abap internal_tables
97102 abap internal_tables97102 abap internal_tables
97102 abap internal_tablesAnasshare
 
List Processing in ABAP
List Processing in ABAPList Processing in ABAP
List Processing in ABAPsapdocs. info
 
Lesson 1 introduction to oracle programming
Lesson 1   introduction to oracle programmingLesson 1   introduction to oracle programming
Lesson 1 introduction to oracle programmingACLC Antipolo
 
Spreadsheet for Year 8
Spreadsheet for Year 8Spreadsheet for Year 8
Spreadsheet for Year 8qistinahJR
 
ALTER TABLE Improvements in MariaDB Server
ALTER TABLE Improvements in MariaDB ServerALTER TABLE Improvements in MariaDB Server
ALTER TABLE Improvements in MariaDB ServerMariaDB plc
 
Bca data structures linked list mrs.sowmya jyothi
Bca data structures linked list mrs.sowmya jyothiBca data structures linked list mrs.sowmya jyothi
Bca data structures linked list mrs.sowmya jyothiSowmya Jyothi
 
Intro to Excel Basics: Part II
Intro to Excel Basics: Part IIIntro to Excel Basics: Part II
Intro to Excel Basics: Part IISi Krishan
 

Similar to 05 internal tables (20)

Sap internal
Sap   internalSap   internal
Sap internal
 
Aspire it sap abap training
Aspire it   sap abap trainingAspire it   sap abap training
Aspire it sap abap training
 
Best SAP ABAP Training Institute with Placement in Pune | Aspire
Best SAP ABAP Training Institute with Placement in Pune | AspireBest SAP ABAP Training Institute with Placement in Pune | Aspire
Best SAP ABAP Training Institute with Placement in Pune | Aspire
 
Lecture06 abap on line
Lecture06 abap on lineLecture06 abap on line
Lecture06 abap on line
 
Internal tables
Internal tablesInternal tables
Internal tables
 
Sap abap-data structures and internal tables
Sap abap-data structures and internal tablesSap abap-data structures and internal tables
Sap abap-data structures and internal tables
 
Abap internal tables
Abap internal tablesAbap internal tables
Abap internal tables
 
97102 abap internal_tables
97102 abap internal_tables97102 abap internal_tables
97102 abap internal_tables
 
List Processing in ABAP
List Processing in ABAPList Processing in ABAP
List Processing in ABAP
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
Spreadsheets[1]
Spreadsheets[1]Spreadsheets[1]
Spreadsheets[1]
 
DBMS Chapter-3.ppsx
DBMS Chapter-3.ppsxDBMS Chapter-3.ppsx
DBMS Chapter-3.ppsx
 
Lesson 1 introduction to oracle programming
Lesson 1   introduction to oracle programmingLesson 1   introduction to oracle programming
Lesson 1 introduction to oracle programming
 
258lec11
258lec11258lec11
258lec11
 
Spreadsheet for Year 8
Spreadsheet for Year 8Spreadsheet for Year 8
Spreadsheet for Year 8
 
ALTER TABLE Improvements in MariaDB Server
ALTER TABLE Improvements in MariaDB ServerALTER TABLE Improvements in MariaDB Server
ALTER TABLE Improvements in MariaDB Server
 
Bca data structures linked list mrs.sowmya jyothi
Bca data structures linked list mrs.sowmya jyothiBca data structures linked list mrs.sowmya jyothi
Bca data structures linked list mrs.sowmya jyothi
 
Basic programming
Basic programmingBasic programming
Basic programming
 
Intro to Excel Basics: Part II
Intro to Excel Basics: Part IIIntro to Excel Basics: Part II
Intro to Excel Basics: Part II
 
ADVANCE ITT BY PRASAD
ADVANCE ITT BY PRASADADVANCE ITT BY PRASAD
ADVANCE ITT BY PRASAD
 

Recently uploaded

Russian Call Girl South End Park - Call 8250192130 Rs-3500 with A/C Room Cash...
Russian Call Girl South End Park - Call 8250192130 Rs-3500 with A/C Room Cash...Russian Call Girl South End Park - Call 8250192130 Rs-3500 with A/C Room Cash...
Russian Call Girl South End Park - Call 8250192130 Rs-3500 with A/C Room Cash...anamikaraghav4
 
Book Paid Sonagachi Call Girls Kolkata 𖠋 8250192130 𖠋Low Budget Full Independ...
Book Paid Sonagachi Call Girls Kolkata 𖠋 8250192130 𖠋Low Budget Full Independ...Book Paid Sonagachi Call Girls Kolkata 𖠋 8250192130 𖠋Low Budget Full Independ...
Book Paid Sonagachi Call Girls Kolkata 𖠋 8250192130 𖠋Low Budget Full Independ...noor ahmed
 
Almora call girls 📞 8617697112 At Low Cost Cash Payment Booking
Almora call girls 📞 8617697112 At Low Cost Cash Payment BookingAlmora call girls 📞 8617697112 At Low Cost Cash Payment Booking
Almora call girls 📞 8617697112 At Low Cost Cash Payment BookingNitya salvi
 
2k Shot Call girls Laxmi Nagar Delhi 9205541914
2k Shot Call girls Laxmi Nagar Delhi 92055419142k Shot Call girls Laxmi Nagar Delhi 9205541914
2k Shot Call girls Laxmi Nagar Delhi 9205541914Delhi Call girls
 
(KRITI) Pimpri Chinchwad Call Girls Just Call 7001035870 [ Cash on Delivery ]...
(KRITI) Pimpri Chinchwad Call Girls Just Call 7001035870 [ Cash on Delivery ]...(KRITI) Pimpri Chinchwad Call Girls Just Call 7001035870 [ Cash on Delivery ]...
(KRITI) Pimpri Chinchwad Call Girls Just Call 7001035870 [ Cash on Delivery ]...ranjana rawat
 
Top Rated Kolkata Call Girls Khardah ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Khardah ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...Top Rated Kolkata Call Girls Khardah ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Khardah ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...ritikasharma
 
Russian Escorts Agency In Goa 💚 9316020077 💚 Russian Call Girl Goa
Russian Escorts Agency In Goa  💚 9316020077 💚 Russian Call Girl GoaRussian Escorts Agency In Goa  💚 9316020077 💚 Russian Call Girl Goa
Russian Escorts Agency In Goa 💚 9316020077 💚 Russian Call Girl Goasexy call girls service in goa
 
Call Girls Nashik Gayatri 7001305949 Independent Escort Service Nashik
Call Girls Nashik Gayatri 7001305949 Independent Escort Service NashikCall Girls Nashik Gayatri 7001305949 Independent Escort Service Nashik
Call Girls Nashik Gayatri 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Independent Joka Escorts ✔ 8250192130 ✔ Full Night With Room Online Booking 2...
Independent Joka Escorts ✔ 8250192130 ✔ Full Night With Room Online Booking 2...Independent Joka Escorts ✔ 8250192130 ✔ Full Night With Room Online Booking 2...
Independent Joka Escorts ✔ 8250192130 ✔ Full Night With Room Online Booking 2...noor ahmed
 
Contact:- 8860008073 Call Girls in Karnal Escort Service Available at Afforda...
Contact:- 8860008073 Call Girls in Karnal Escort Service Available at Afforda...Contact:- 8860008073 Call Girls in Karnal Escort Service Available at Afforda...
Contact:- 8860008073 Call Girls in Karnal Escort Service Available at Afforda...Apsara Of India
 
↑Top Model (Kolkata) Call Girls Howrah ⟟ 8250192130 ⟟ High Class Call Girl In...
↑Top Model (Kolkata) Call Girls Howrah ⟟ 8250192130 ⟟ High Class Call Girl In...↑Top Model (Kolkata) Call Girls Howrah ⟟ 8250192130 ⟟ High Class Call Girl In...
↑Top Model (Kolkata) Call Girls Howrah ⟟ 8250192130 ⟟ High Class Call Girl In...noor ahmed
 
College Call Girls New Alipore - For 7001035870 Cheap & Best with original Ph...
College Call Girls New Alipore - For 7001035870 Cheap & Best with original Ph...College Call Girls New Alipore - For 7001035870 Cheap & Best with original Ph...
College Call Girls New Alipore - For 7001035870 Cheap & Best with original Ph...anamikaraghav4
 
VIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur Escorts
VIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur EscortsVIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur Escorts
VIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Top Rated Pune Call Girls Pimpri Chinchwad ⟟ 6297143586 ⟟ Call Me For Genuin...
Top Rated  Pune Call Girls Pimpri Chinchwad ⟟ 6297143586 ⟟ Call Me For Genuin...Top Rated  Pune Call Girls Pimpri Chinchwad ⟟ 6297143586 ⟟ Call Me For Genuin...
Top Rated Pune Call Girls Pimpri Chinchwad ⟟ 6297143586 ⟟ Call Me For Genuin...Call Girls in Nagpur High Profile
 
VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130
VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130
VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130Suhani Kapoor
 
VIP Call Girls Sonagachi - 8250192130 Escorts Service 50% Off with Cash ON De...
VIP Call Girls Sonagachi - 8250192130 Escorts Service 50% Off with Cash ON De...VIP Call Girls Sonagachi - 8250192130 Escorts Service 50% Off with Cash ON De...
VIP Call Girls Sonagachi - 8250192130 Escorts Service 50% Off with Cash ON De...anamikaraghav4
 
Call Girls Manjri Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Manjri Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Manjri Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Manjri Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 

Recently uploaded (20)

Russian Call Girl South End Park - Call 8250192130 Rs-3500 with A/C Room Cash...
Russian Call Girl South End Park - Call 8250192130 Rs-3500 with A/C Room Cash...Russian Call Girl South End Park - Call 8250192130 Rs-3500 with A/C Room Cash...
Russian Call Girl South End Park - Call 8250192130 Rs-3500 with A/C Room Cash...
 
Book Paid Sonagachi Call Girls Kolkata 𖠋 8250192130 𖠋Low Budget Full Independ...
Book Paid Sonagachi Call Girls Kolkata 𖠋 8250192130 𖠋Low Budget Full Independ...Book Paid Sonagachi Call Girls Kolkata 𖠋 8250192130 𖠋Low Budget Full Independ...
Book Paid Sonagachi Call Girls Kolkata 𖠋 8250192130 𖠋Low Budget Full Independ...
 
Call Girls New Ashok Nagar Delhi WhatsApp Number 9711199171
Call Girls New Ashok Nagar Delhi WhatsApp Number 9711199171Call Girls New Ashok Nagar Delhi WhatsApp Number 9711199171
Call Girls New Ashok Nagar Delhi WhatsApp Number 9711199171
 
Desi Bhabhi Call Girls In Goa 💃 730 02 72 001💃desi Bhabhi Escort Goa
Desi Bhabhi Call Girls  In Goa  💃 730 02 72 001💃desi Bhabhi Escort GoaDesi Bhabhi Call Girls  In Goa  💃 730 02 72 001💃desi Bhabhi Escort Goa
Desi Bhabhi Call Girls In Goa 💃 730 02 72 001💃desi Bhabhi Escort Goa
 
Almora call girls 📞 8617697112 At Low Cost Cash Payment Booking
Almora call girls 📞 8617697112 At Low Cost Cash Payment BookingAlmora call girls 📞 8617697112 At Low Cost Cash Payment Booking
Almora call girls 📞 8617697112 At Low Cost Cash Payment Booking
 
2k Shot Call girls Laxmi Nagar Delhi 9205541914
2k Shot Call girls Laxmi Nagar Delhi 92055419142k Shot Call girls Laxmi Nagar Delhi 9205541914
2k Shot Call girls Laxmi Nagar Delhi 9205541914
 
(KRITI) Pimpri Chinchwad Call Girls Just Call 7001035870 [ Cash on Delivery ]...
(KRITI) Pimpri Chinchwad Call Girls Just Call 7001035870 [ Cash on Delivery ]...(KRITI) Pimpri Chinchwad Call Girls Just Call 7001035870 [ Cash on Delivery ]...
(KRITI) Pimpri Chinchwad Call Girls Just Call 7001035870 [ Cash on Delivery ]...
 
CHEAP Call Girls in Malviya Nagar, (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in  Malviya Nagar, (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in  Malviya Nagar, (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Malviya Nagar, (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Top Rated Kolkata Call Girls Khardah ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Khardah ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...Top Rated Kolkata Call Girls Khardah ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Khardah ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
 
Russian Escorts Agency In Goa 💚 9316020077 💚 Russian Call Girl Goa
Russian Escorts Agency In Goa  💚 9316020077 💚 Russian Call Girl GoaRussian Escorts Agency In Goa  💚 9316020077 💚 Russian Call Girl Goa
Russian Escorts Agency In Goa 💚 9316020077 💚 Russian Call Girl Goa
 
Call Girls Nashik Gayatri 7001305949 Independent Escort Service Nashik
Call Girls Nashik Gayatri 7001305949 Independent Escort Service NashikCall Girls Nashik Gayatri 7001305949 Independent Escort Service Nashik
Call Girls Nashik Gayatri 7001305949 Independent Escort Service Nashik
 
Independent Joka Escorts ✔ 8250192130 ✔ Full Night With Room Online Booking 2...
Independent Joka Escorts ✔ 8250192130 ✔ Full Night With Room Online Booking 2...Independent Joka Escorts ✔ 8250192130 ✔ Full Night With Room Online Booking 2...
Independent Joka Escorts ✔ 8250192130 ✔ Full Night With Room Online Booking 2...
 
Contact:- 8860008073 Call Girls in Karnal Escort Service Available at Afforda...
Contact:- 8860008073 Call Girls in Karnal Escort Service Available at Afforda...Contact:- 8860008073 Call Girls in Karnal Escort Service Available at Afforda...
Contact:- 8860008073 Call Girls in Karnal Escort Service Available at Afforda...
 
↑Top Model (Kolkata) Call Girls Howrah ⟟ 8250192130 ⟟ High Class Call Girl In...
↑Top Model (Kolkata) Call Girls Howrah ⟟ 8250192130 ⟟ High Class Call Girl In...↑Top Model (Kolkata) Call Girls Howrah ⟟ 8250192130 ⟟ High Class Call Girl In...
↑Top Model (Kolkata) Call Girls Howrah ⟟ 8250192130 ⟟ High Class Call Girl In...
 
College Call Girls New Alipore - For 7001035870 Cheap & Best with original Ph...
College Call Girls New Alipore - For 7001035870 Cheap & Best with original Ph...College Call Girls New Alipore - For 7001035870 Cheap & Best with original Ph...
College Call Girls New Alipore - For 7001035870 Cheap & Best with original Ph...
 
VIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur Escorts
VIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur EscortsVIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur Escorts
VIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur Escorts
 
Top Rated Pune Call Girls Pimpri Chinchwad ⟟ 6297143586 ⟟ Call Me For Genuin...
Top Rated  Pune Call Girls Pimpri Chinchwad ⟟ 6297143586 ⟟ Call Me For Genuin...Top Rated  Pune Call Girls Pimpri Chinchwad ⟟ 6297143586 ⟟ Call Me For Genuin...
Top Rated Pune Call Girls Pimpri Chinchwad ⟟ 6297143586 ⟟ Call Me For Genuin...
 
VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130
VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130
VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130
 
VIP Call Girls Sonagachi - 8250192130 Escorts Service 50% Off with Cash ON De...
VIP Call Girls Sonagachi - 8250192130 Escorts Service 50% Off with Cash ON De...VIP Call Girls Sonagachi - 8250192130 Escorts Service 50% Off with Cash ON De...
VIP Call Girls Sonagachi - 8250192130 Escorts Service 50% Off with Cash ON De...
 
Call Girls Manjri Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Manjri Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Manjri Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Manjri Call Me 7737669865 Budget Friendly No Advance Booking
 

05 internal tables

  • 2. Internal Tables Objective: The following section explains : • Defining Internal Tables • Processing Internal Tables • Accessing Internal Tables • Initializing Internal Tables
  • 3. Internal Tables Internal tables are structured data types provided by ABAP/4. Internal tables cannot be accessed outside the program environment. Purpose of internal tables • Internal tables are used to reorganize the contents of database tables according to the needs of your program • Internal tables are used to perform calculations on subsets of database tables. • The number of lines in an internal table is not fixed. • Internal tables exist only during the run time of a program.
  • 4. Accessing Internal Tables •You access internal tables line by line. You must use a work area as an interface for transferring data to and from the table. •When you read data from an internal table, the contents of the addressed table line overwrite the contents of the work area.. • When you write data to an internal table, you must first enter the data in the work area from which the system can transfer the data to the internal table.
  • 5. Types of internal tables There are two kinds of internal tables in ABAP/4: ·Internal tables with header line If you create an internal table with header line, the system automatically creates a work area with the same data type as the lines of the internal table. Note : Work area has the same name as the internal table. ·Internal tables without header line Internal tables without a header line do not have a table work area which can be used implicitly you must specify a work area explicitly.
  • 6. Creating Internal Tables There are two ways by which you can create internal tables First create an internal table data type using the 'TYPES' statement and then create a data object referring that data type. Syntax : TYPES <t> <type> OCCURS <n> Eg: TYPES : BEGIN OF LINE, COLUMN1 TYPE I, COLUMN2 TYPE I, COLUMN3 TYPE I, END OF LINE. TYPES ITAB TYPE LINE OCCURS 10.
  • 7. Creating Internal Tables Create an internal table data object by referring to a structure. Syntax: DATA <f> <type> [WITH HEADER LINE] Eg: TYPES : BEGIN OF LINE, COLUMN1 TYPE I, COLUMN2 TYPE I, COLUMN3 TYPE I, END OF LINE. TYPES ITAB TYPE LINE OCCURS 10. DATA ITAB1 TYPE ITAB. DATA ITAB2 LIKE ITAB1 WITH HEADER LINE.
  • 8. Creating Internal Tables Creating Internal Tables with header line In this method an internal table is created with reference to existing structure ( another internal table or Dictionary object). Eg: DATA ITAB LIKE SFLIGHT OCCURS 10 WITH HEADER LINE.
  • 9. Creating Internal Tables Create an internal table data object directly with the 'DATA' statement. Eg: DATA : BEGIN OF ITAB OCCURS 0, COLUMN1 TYPE I, COLUMN2 TYPE I, COLUMN3 TYPE I, END OF ITAB. Note : In this method a header line with same name as the internal table is created automatically.
  • 10. Filling Internal Tables Appending Lines: To append a line to an internal table, use the APPEND statement as follows: Syntax APPEND [<wa> TO] <itab>. Eg: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE N, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. LINE-COL1 = ‘A’. LINE-COL2 = ‘1’. APPEND LINE TO TAB1.
  • 11. Filling Internal Tables Appending Lines depending on the Standard Key (COLLECT STATEMENT) To fill an internal table with lines which have unique standard keys. Syntax COLLECT [<wa> INTO] <itab> If an entry with the same key already exists(all non-numeric fields) the collect statement does not append a new line but adds the contents of the numeric fields in the work area to the contents of the numeric fields in the existing entry
  • 12. Filling Internal Tables Eg: TYPES : BEGIN OF ITAB1 OCCURS 0, COL1 TYPE C, COL2 TYPE I, END OF ITAB1. ITAB1-COL1 = ‘A’. ITAB1-COL2 = ‘1’. COLLECT TAB1. ITAB1-COL1 = ‘B’. ITAB1-COL2 = ‘2’. COLLECT TAB1. ITAB1-COL1 = ‘A’. ITAB1-COL2 = ‘1’. COLLECT TAB1. This Produces the output as follows: A 2 B 2
  • 13. Filling Internal Tables Inserting lines : To insert a new line before a line in an internal table, you use the INSERT statement as follows: Syntax INSERT [<wa> INTO] <itab> [INDEX <idx>]. Eg: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE N, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. LINE-COL1 = ‘A’. LINE-COL2 = ‘1’. INSERT LINE INTO TAB1 INDEX 2.
  • 14. Filling Internal Tables COPYING INTERNAL TABLES : To copy the entire contents of one internal table into another, use the MOVE statement. Syntax: MOVE <itab1> to <itab2> Eg: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE N, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. DATA TAB2 LIKE LINE OCCURS 10. LINE-COL1 = ‘A’. LINE-COL2 = ‘1’. APPEND LINE TO TAB1. MOVE TAB1[ ] TO TAB2.
  • 15. Filling Internal Tables Filling Internal Table from Database Table: Example TABLES SPFLI. DATA ITAB LIKE SPFLI OCCURS 10 WITH HEADER LINE. SELECT * FROM SPFLI INTO TABLE ITAB WHERE CARRID = 'LH'. LOOP AT ITAB. WRITE: / ITAB-CONNID, ITAB-CARRID. ENDLOOP. In this example, all lines from the database table SPFLI in which CARRID field contains "LH" are read into the internal table ITAB, where they can be processed further.
  • 16. Filling Internal Tables To read data component by component into the internal table. TABLES SPFLI. DATA: BEGIN OF ITAB OCCURS 0, NUMBER TYPE I VALUE 1, CITYFROM LIKE SPFLI-CITYFROM, CITYTO LIKE SPFLI-CITYTO, END OF ITAB. SELECT * FROM SPFLI WHERE CARRID = 'LH'. MOVE-CORRESPONDING SPFLI TO ITAB. APPEND ITAB. ENDSELECT. In this example, all lines from the database table SPFLI in which CARRID field contains "LH" are read into the internal table ITAB one by one, where they can be processed further.
  • 17. Reading Internal Tables To read the contents of internal tables for further processing, you can use either the LOOP or the READ statement. Reading Internal Tables Line by Line You use the the LOOP statement to read internal tables line by line.
  • 18. Reading Internal Tables LOOP AT <itab> [INTO <wa>] [WHERE <condition>]. ..... ENDLOOP. Eg: DO 3 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX * SY-INDEX. APPEND LINE TO TAB1. ENDDO. LOOP AT TAB1 WHERE COL1 > 2. WRITE : / TAB1-COL1. ENDLOOP.
  • 19. Reading Internal Tables You can select a single line by the READ statement: Syntax: READ TABLE <itab> [INTO <wa>] WITH KEY<key> [BINARY SEARCH].
  • 20. Reading Internal Tables Eg: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE N, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. DO 3 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2. APPEND LINE TO TAB1. ENDDO. READ TABLE TAB1 INTO LINE WITH KEY COL2 = 4.
  • 21. Reading Internal Tables The COMPARING addition, the specified table fields <f i > of the structured line type are compared with the corresponding fields of the work area before being transported. If the contents of the compared fields are the same, SY-SUBRC is set to 0. If the contents of the compared fields are not the same, it returns the value 2. Syntax: READ TABLE <itab> [INTO <wa>] INDEX <idx> COMPARING <fields>.
  • 22. Reading Internal Tables Eg: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE N, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. DO 3 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2. APPEND LINE TO TAB1. ENDDO. READ TABLE TAB1 INTO LINE INDEX 2 COMPARING COL1 COL2.
  • 23. Modifying Internal tables You can modify single line using MODIFY statement: Syntax : MODIFY itab [FROM wa] [INDEX idx].
  • 24. Modifying Internal tables Eg: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE N, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. DO 3 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2. APPEND LINE TO TAB1. ENDDO. LINE-COL1 = ‘A’. MODIFY TAB1 FROM LINE INDEX 2.
  • 25. Modifying Internal tables Syntax : MODIFY itab [FROM wa] [TRANSPORTING f1 ... fn [WHERE cond]].
  • 26. Modifying Internal tables Eg: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE N, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. DO 3 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2. APPEND LINE TO TAB1. ENDDO. LINE-COL1 = ‘A’. MODIFY TAB1 FROM LINE TRANSPORTING COL1 WHERE COL2 = 4.
  • 27. Deleting Internal tables To delete lines from an internal table in a loop: Syntax: DELETE <itab>. Note: The System can process this statement only within an LOOP..ENDLOOP block.
  • 28. Deleting Internal tables Eg: DO 3 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX * SY-INDEX. APPEND LINE TO TAB1. ENDDO. LOOP AT TAB1. IF TAB1-COL1 > 2. DELETE TAB1. ENDIF. ENDLOOP.
  • 29. Deleting Internal tables TO delete the lines using Index. Syntax: DELETE <itab> INDEX <idx>.
  • 30. Deleting Internal tables Eg: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE N, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. DO 3 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX * SY-INDEX. APPEND LINE TO TAB1. ENDDO. DELETE TAB1 INDEX 2.
  • 31. Deleting Internal tables TO delete the Adjacent Duplicates from the Internal Table. Syntax: DELETE ADJACENT DUPLICATE ENTRIES FROM <itab> [ COMPARING <comp>]
  • 32. Deleting Internal tables Eg: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE N, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. LINE-COL1 = ‘A’. LINE-COL2 = ‘1’. APPEND LINE TO TAB1. LINE-COL1 = ‘A’. LINE-COL2 = ‘2’. APPEND LINE TO TAB1. DELETE ADJACENT DUPLICATE ENTRIES FROM TAB1 COMPARING COL1.
  • 33. Deleting Internal tables TO delete the Adjacent Duplicates from the Internal Table. Syntax: DELETE ADJACENT DUPLICATE ENTRIES FROM <itab> [ COMPARING <comp>]
  • 34. Deleting Internal tables Eg: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE N, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. LINE-COL1 = ‘A’. LINE-COL2 = ‘2’. APPEND LINE TO TAB1. LINE-COL1 = ‘A’. LINE-COL2 = ‘2’. APPEND LINE TO TAB1. DELETE ADJACENT DUPLICATE ENTRIES FROM TAB1 COMPARING ALL FIELDS.
  • 35. Deleting Internal tables TO delete a set of selected lines from the Internal Table. Syntax: DELETE <itab> [FROM <n1>] [TO <n2>] [WHERE <condition>].
  • 36. Deleting Internal tables Eg: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE N, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. LINE-COL1 = ‘A’. LINE-COL2 = ‘1’. APPEND LINE TO TAB1. LINE-COL1 = ‘A’. LINE-COL2 = ‘2’. APPEND LINE TO TAB1. DELETE TAB1 WHERE COL2 = 2.
  • 37. Sorting Internal Table TO Sort an Internal Table . Syntax: SORT <itab> [<order>] [AS TEXT] [BY <f1> [<order>] [AS TEXT] . . <fn>[<order>] [AS TEXT] ] .
  • 38. Sorting Internal Table Eg: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE N, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. LINE-COL1 = ‘A’. LINE-COL2 = ‘2’. APPEND LINE TO TAB1. LINE-COL1 = ‘A’. LINE-COL2 = ‘1’. APPEND LINE TO TAB1. SORT TAB1 BY COL2 ASCENDING .
  • 39. Loop Processing Calculating the totals within loop…endloop. Syntax: SUM
  • 40. Loop Processing Eg. TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE I, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. DO 3 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2. APPEND LINE TO TAB1. ENDDO. LOOP AT TAB1. SUM. ENDLOOP.
  • 41. Using Control Levels This topic describes how to use control level statement blocks which process only specific values within loop…endloop. Syntax: AT <line> <statement block> ENDAT.
  • 42. Using Control Levels The line condition <line>, at which the statement block within AT-ENDAT. <Line> Meaning FIRST First line of the internal table LAST Last line of the internal table NEW <f> Beginning of a group of line with same contents in the fields <f> & in the fields of <f>. END OF <f> End of a group of line with same contents in the fields <f> & in the fields of <f>. Note: Before working with control breaks, You should sort the internal table in the same order as its columns are defined.
  • 43. Using Control Levels Hierarchy of AT-ENDAT statement. If the internal table has the columns <col1>,<col2>,… and if it is sorted by the columns as they are defined, the loop is to be programmed as follows: LOOP AT <itab>. AT FIRST. …..ENDAT. AT NEW <col1>….ENDAT. AT NEW <col2>……ENDAT. ……. <single line processing> ……... AT END OF <col2>…..ENDAT. AT END OF <col1>……ENDAT. AT LAST……ENDAT. ENDLOOP.
  • 44. Using Control Levels Example: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE I, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. LINE-COL1 = ‘A’. LINE-COL2 = ‘2’. APPEND LINE TO TAB1. LINE-COL1 = ‘B’. LINE-COL2 = ‘1’. APPEND LINE TO TAB1. LINE-COL1 = ‘A’. LINE-COL2 = ‘3’. APPEND LINE TO TAB1. LINE-COL1 = ‘C’. LINE-COL2 = ‘4’. APPEND LINE TO TAB1. SORT TAB1 BY COL1.
  • 45. Using Control Levels Cont.. LOOP AT TAB1. AT FIRST. WRITE:/ ‘HEADING’. ENDAT. AT NEW COL1. WRITE:/ TAB1-COL1. ENDAT. AT END OF COL1. SUM. WRITE:/ TAB1-COL1, TAB1-COL2. ENDAT. AT LAST. SUM. WRITE:/ TAB1-COL1, TAB1-COL2. ENDAT. ENDLOOP.
  • 46. Initializing Internal Tables To initialize an internal table with or without header line. Syntax : REFRESH <itab>. This statement resets an internal table. CLEAR <itab>. If you are working with an internal table with a header line , the clear statement clears only the table work area resetting to initial values. CLEAR <itab>[ ]. The square bracket after the name of the internal table refer to the body of the internal table.This statement also resets an internal table. FREE <itab>. You can release the memory with the FREE statement once initialized.
  • 47. Initializing Internal Tables Example: TYPES : BEGIN OF LINE, COL1 TYPE C, COL2 TYPE I, END OF LINE. DATA TAB1 LIKE LINE OCCURS 10. LINE-COL1 = ‘A’. LINE-COL2 = ‘2’. APPEND LINE TO TAB1. LINE-COL1 = ‘B’. LINE-COL2 = ‘1’. APPEND LINE TO TAB1. CLEAR TAB1. REFRESH TAB1. IF TAB1 IS INITIAL. WRITE:/ ‘TAB1 IS EMPTY’. FREE TAB1. ENDIF.