SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
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.

Contenu connexe

Tendances

Sap Abap Reports
Sap Abap ReportsSap Abap Reports
Sap Abap Reportsvbpc
 
0104 abap dictionary
0104 abap dictionary0104 abap dictionary
0104 abap dictionaryvkyecc1
 
Sap abap interview questions
Sap abap interview questionsSap abap interview questions
Sap abap interview questionskssr99
 
Smartforms interview questions with answers
Smartforms interview questions with answersSmartforms interview questions with answers
Smartforms interview questions with answersUttam Agrawal
 
Line item dimension and high cardinality dimension
Line item dimension and high cardinality dimensionLine item dimension and high cardinality dimension
Line item dimension and high cardinality dimensionPraveen Kumar
 
Ab1011 module pool programming
Ab1011   module pool programmingAb1011   module pool programming
Ab1011 module pool programmingSatheesh Kanna
 
Using infoset query %2c sap query and quick viewer
Using infoset query %2c sap query and quick viewerUsing infoset query %2c sap query and quick viewer
Using infoset query %2c sap query and quick viewerShailendra Surana
 
Edit idoc , reprocess and test idoc
Edit idoc , reprocess and test idocEdit idoc , reprocess and test idoc
Edit idoc , reprocess and test idoclakshmi rajkumar
 
SAP IDoc Overview and Outbound IDoc.pptx
SAP IDoc Overview and Outbound IDoc.pptxSAP IDoc Overview and Outbound IDoc.pptx
SAP IDoc Overview and Outbound IDoc.pptxAshwaniKumar207236
 
ABAP Programming Overview
ABAP Programming OverviewABAP Programming Overview
ABAP Programming Overviewsapdocs. info
 
HR ABAP Technical Overview | http://sapdocs.info/
HR ABAP Technical Overview | http://sapdocs.info/HR ABAP Technical Overview | http://sapdocs.info/
HR ABAP Technical Overview | http://sapdocs.info/sapdocs. info
 

Tendances (20)

SAP Adobe forms
SAP Adobe formsSAP Adobe forms
SAP Adobe forms
 
SAP ABAP data dictionary
SAP ABAP data dictionarySAP ABAP data dictionary
SAP ABAP data dictionary
 
SAP ALE Idoc
SAP ALE IdocSAP ALE Idoc
SAP ALE Idoc
 
Abap reports
Abap reportsAbap reports
Abap reports
 
Module pool programming
Module pool programmingModule pool programming
Module pool programming
 
Sap Abap Reports
Sap Abap ReportsSap Abap Reports
Sap Abap Reports
 
Sap scripts
Sap scriptsSap scripts
Sap scripts
 
0104 abap dictionary
0104 abap dictionary0104 abap dictionary
0104 abap dictionary
 
Sap abap interview questions
Sap abap interview questionsSap abap interview questions
Sap abap interview questions
 
Smartforms interview questions with answers
Smartforms interview questions with answersSmartforms interview questions with answers
Smartforms interview questions with answers
 
Ale IDOC
Ale IDOCAle IDOC
Ale IDOC
 
Alv theory
Alv theoryAlv theory
Alv theory
 
Line item dimension and high cardinality dimension
Line item dimension and high cardinality dimensionLine item dimension and high cardinality dimension
Line item dimension and high cardinality dimension
 
Ab1011 module pool programming
Ab1011   module pool programmingAb1011   module pool programming
Ab1011 module pool programming
 
Using infoset query %2c sap query and quick viewer
Using infoset query %2c sap query and quick viewerUsing infoset query %2c sap query and quick viewer
Using infoset query %2c sap query and quick viewer
 
Edit idoc , reprocess and test idoc
Edit idoc , reprocess and test idocEdit idoc , reprocess and test idoc
Edit idoc , reprocess and test idoc
 
SAP IDoc Overview and Outbound IDoc.pptx
SAP IDoc Overview and Outbound IDoc.pptxSAP IDoc Overview and Outbound IDoc.pptx
SAP IDoc Overview and Outbound IDoc.pptx
 
ABAP Programming Overview
ABAP Programming OverviewABAP Programming Overview
ABAP Programming Overview
 
HR ABAP Technical Overview | http://sapdocs.info/
HR ABAP Technical Overview | http://sapdocs.info/HR ABAP Technical Overview | http://sapdocs.info/
HR ABAP Technical Overview | http://sapdocs.info/
 
CDS Views.pptx
CDS Views.pptxCDS Views.pptx
CDS Views.pptx
 

En vedette

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
 
Chapter 03 foreign key relationships1
Chapter 03 foreign key relationships1Chapter 03 foreign key relationships1
Chapter 03 foreign key relationships1Kranthi Kumar
 
table maintenance generator1
 table maintenance generator1 table maintenance generator1
table maintenance generator1Kranthi Kumar
 
Abap function module help
Abap function module helpAbap function module help
Abap function module helpKranthi 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
 

En vedette (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
 
Chapter 03 foreign key relationships1
Chapter 03 foreign key relationships1Chapter 03 foreign key relationships1
Chapter 03 foreign key relationships1
 
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 function module help
Abap function module helpAbap function module help
Abap function module help
 
Abap course chapter 3 basic concepts
Abap course   chapter 3 basic conceptsAbap course   chapter 3 basic concepts
Abap course chapter 3 basic concepts
 

Similaire à 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
 
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
 
Data structure lecture 5
Data structure lecture 5Data structure lecture 5
Data structure lecture 5Kumar
 

Similaire à 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
 
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
 
Data structure lecture 5
Data structure lecture 5Data structure lecture 5
Data structure lecture 5
 

Dernier

Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...call girls kolkata
 
Hire 💕 8617370543 Auraiya Call Girls Service Call Girls Agency
Hire 💕 8617370543 Auraiya Call Girls Service Call Girls AgencyHire 💕 8617370543 Auraiya Call Girls Service Call Girls Agency
Hire 💕 8617370543 Auraiya Call Girls Service Call Girls AgencyNitya salvi
 
Deira Call girl 0506129535 Independent Call girl in Deira
Deira Call girl 0506129535  Independent Call girl in DeiraDeira Call girl 0506129535  Independent Call girl in Deira
Deira Call girl 0506129535 Independent Call girl in DeiraMonica Sydney
 
Hire 💕 8617370543 Kushinagar Call Girls Service Call Girls Agency
Hire 💕 8617370543 Kushinagar Call Girls Service Call Girls AgencyHire 💕 8617370543 Kushinagar Call Girls Service Call Girls Agency
Hire 💕 8617370543 Kushinagar Call Girls Service Call Girls AgencyNitya salvi
 
Call 8617370543 Sangli Call girls with real photos and phone numbers
Call 8617370543 Sangli Call girls with real photos and phone numbersCall 8617370543 Sangli Call girls with real photos and phone numbers
Call 8617370543 Sangli Call girls with real photos and phone numbersNitya salvi
 
Call girls Service in Deira 0507330913 Deira Call girls
Call girls Service in Deira 0507330913 Deira Call girlsCall girls Service in Deira 0507330913 Deira Call girls
Call girls Service in Deira 0507330913 Deira Call girlsMonica Sydney
 
Bhubaneswar🌹Patia ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswar ESCORT S...
Bhubaneswar🌹Patia ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswar ESCORT S...Bhubaneswar🌹Patia ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswar ESCORT S...
Bhubaneswar🌹Patia ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswar ESCORT S...Call Girls Mumbai
 
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...call girls kolkata
 
Bhubaneswar🌹Call Girls Kalpana Mesuem ❤Komal 9777949614 💟 Full Trusted CALL ...
Bhubaneswar🌹Call Girls Kalpana Mesuem  ❤Komal 9777949614 💟 Full Trusted CALL ...Bhubaneswar🌹Call Girls Kalpana Mesuem  ❤Komal 9777949614 💟 Full Trusted CALL ...
Bhubaneswar🌹Call Girls Kalpana Mesuem ❤Komal 9777949614 💟 Full Trusted CALL ...Call Girls Mumbai
 
Dubai Call girls Service 0524076003 Call girls in Dubai
Dubai Call girls Service 0524076003 Call girls in DubaiDubai Call girls Service 0524076003 Call girls in Dubai
Dubai Call girls Service 0524076003 Call girls in DubaiMonica Sydney
 
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls AgencyHire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls AgencyNitya salvi
 
Call Girls In Gorakhpur Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Gorakhpur Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...Call Girls In Gorakhpur Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Gorakhpur Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...Nitya salvi
 
High Profile Escort in Dubai 0524076003 Dubai Escorts
High Profile Escort in Dubai 0524076003 Dubai EscortsHigh Profile Escort in Dubai 0524076003 Dubai Escorts
High Profile Escort in Dubai 0524076003 Dubai EscortsMonica Sydney
 
Satara call girl 8617370543♥️ call girls in satara escort service
Satara call girl 8617370543♥️ call girls in satara escort serviceSatara call girl 8617370543♥️ call girls in satara escort service
Satara call girl 8617370543♥️ call girls in satara escort serviceNitya salvi
 
Just Call Vip call girls Palghar Escorts ☎️8617370543 Two shot with one girl ...
Just Call Vip call girls Palghar Escorts ☎️8617370543 Two shot with one girl ...Just Call Vip call girls Palghar Escorts ☎️8617370543 Two shot with one girl ...
Just Call Vip call girls Palghar Escorts ☎️8617370543 Two shot with one girl ...Nitya salvi
 
Deira call girls 0507330913 Call girls in Deira
Deira call girls 0507330913  Call girls in DeiraDeira call girls 0507330913  Call girls in Deira
Deira call girls 0507330913 Call girls in DeiraMonica Sydney
 
Pakistani Call girls in Ajman 0505086370 Ajman Call girls
Pakistani Call girls in Ajman 0505086370 Ajman Call girlsPakistani Call girls in Ajman 0505086370 Ajman Call girls
Pakistani Call girls in Ajman 0505086370 Ajman Call girlsMonica Sydney
 
Deira Call girls Service 0507330913 Call girls in Deira
Deira Call girls Service 0507330913  Call girls in DeiraDeira Call girls Service 0507330913  Call girls in Deira
Deira Call girls Service 0507330913 Call girls in DeiraMonica Sydney
 
Call Girls Moradabad Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Moradabad Just Call 8617370543 Top Class Call Girl Service AvailableCall Girls Moradabad Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Moradabad Just Call 8617370543 Top Class Call Girl Service AvailableNitya salvi
 

Dernier (20)

Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
 
Hire 💕 8617370543 Auraiya Call Girls Service Call Girls Agency
Hire 💕 8617370543 Auraiya Call Girls Service Call Girls AgencyHire 💕 8617370543 Auraiya Call Girls Service Call Girls Agency
Hire 💕 8617370543 Auraiya Call Girls Service Call Girls Agency
 
Vip Models Escorts in Lahore 03068178123
Vip Models Escorts in Lahore 03068178123Vip Models Escorts in Lahore 03068178123
Vip Models Escorts in Lahore 03068178123
 
Deira Call girl 0506129535 Independent Call girl in Deira
Deira Call girl 0506129535  Independent Call girl in DeiraDeira Call girl 0506129535  Independent Call girl in Deira
Deira Call girl 0506129535 Independent Call girl in Deira
 
Hire 💕 8617370543 Kushinagar Call Girls Service Call Girls Agency
Hire 💕 8617370543 Kushinagar Call Girls Service Call Girls AgencyHire 💕 8617370543 Kushinagar Call Girls Service Call Girls Agency
Hire 💕 8617370543 Kushinagar Call Girls Service Call Girls Agency
 
Call 8617370543 Sangli Call girls with real photos and phone numbers
Call 8617370543 Sangli Call girls with real photos and phone numbersCall 8617370543 Sangli Call girls with real photos and phone numbers
Call 8617370543 Sangli Call girls with real photos and phone numbers
 
Call girls Service in Deira 0507330913 Deira Call girls
Call girls Service in Deira 0507330913 Deira Call girlsCall girls Service in Deira 0507330913 Deira Call girls
Call girls Service in Deira 0507330913 Deira Call girls
 
Bhubaneswar🌹Patia ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswar ESCORT S...
Bhubaneswar🌹Patia ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswar ESCORT S...Bhubaneswar🌹Patia ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswar ESCORT S...
Bhubaneswar🌹Patia ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswar ESCORT S...
 
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
 
Bhubaneswar🌹Call Girls Kalpana Mesuem ❤Komal 9777949614 💟 Full Trusted CALL ...
Bhubaneswar🌹Call Girls Kalpana Mesuem  ❤Komal 9777949614 💟 Full Trusted CALL ...Bhubaneswar🌹Call Girls Kalpana Mesuem  ❤Komal 9777949614 💟 Full Trusted CALL ...
Bhubaneswar🌹Call Girls Kalpana Mesuem ❤Komal 9777949614 💟 Full Trusted CALL ...
 
Dubai Call girls Service 0524076003 Call girls in Dubai
Dubai Call girls Service 0524076003 Call girls in DubaiDubai Call girls Service 0524076003 Call girls in Dubai
Dubai Call girls Service 0524076003 Call girls in Dubai
 
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls AgencyHire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
 
Call Girls In Gorakhpur Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Gorakhpur Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...Call Girls In Gorakhpur Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Gorakhpur Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
 
High Profile Escort in Dubai 0524076003 Dubai Escorts
High Profile Escort in Dubai 0524076003 Dubai EscortsHigh Profile Escort in Dubai 0524076003 Dubai Escorts
High Profile Escort in Dubai 0524076003 Dubai Escorts
 
Satara call girl 8617370543♥️ call girls in satara escort service
Satara call girl 8617370543♥️ call girls in satara escort serviceSatara call girl 8617370543♥️ call girls in satara escort service
Satara call girl 8617370543♥️ call girls in satara escort service
 
Just Call Vip call girls Palghar Escorts ☎️8617370543 Two shot with one girl ...
Just Call Vip call girls Palghar Escorts ☎️8617370543 Two shot with one girl ...Just Call Vip call girls Palghar Escorts ☎️8617370543 Two shot with one girl ...
Just Call Vip call girls Palghar Escorts ☎️8617370543 Two shot with one girl ...
 
Deira call girls 0507330913 Call girls in Deira
Deira call girls 0507330913  Call girls in DeiraDeira call girls 0507330913  Call girls in Deira
Deira call girls 0507330913 Call girls in Deira
 
Pakistani Call girls in Ajman 0505086370 Ajman Call girls
Pakistani Call girls in Ajman 0505086370 Ajman Call girlsPakistani Call girls in Ajman 0505086370 Ajman Call girls
Pakistani Call girls in Ajman 0505086370 Ajman Call girls
 
Deira Call girls Service 0507330913 Call girls in Deira
Deira Call girls Service 0507330913  Call girls in DeiraDeira Call girls Service 0507330913  Call girls in Deira
Deira Call girls Service 0507330913 Call girls in Deira
 
Call Girls Moradabad Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Moradabad Just Call 8617370543 Top Class Call Girl Service AvailableCall Girls Moradabad Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Moradabad Just Call 8617370543 Top Class Call Girl Service Available
 

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.