FOR ALL ENTRIES in Object Oriented Context

Dear all,
            is it possible to use FOR ALL ENTRIES for an internal table with out header line ? I Am using Objected Oriented Programming and I Am not able to create internal table with header line . Please provide your valuable inputs on this issue.
Thanks In Advance.
Sri

Hello,
Few questions:
1. Did you do an F1 on FOR ALL ENTRIES(FAE)? Does it say FAE is allowed only for tables w. header line?
2. Have you tried using FAE on an internal table w/o header line? Does it give an error?
BR,
Suhas

Similar Messages

  • Select using for all entries

    hi gurus,
    plz check my report using for all entries where i am give data in selection screen from date to date as 3.01.2007 to 4.02.2007
    my code does not provide me data between  above date to date.
    it fetch data from other date like 26.06.2006 to some other
    plz check code and give me solution for it.
    TABLES: bseg, bkpf.
    *ALV grid_data
    TYPE-POOLS: slis.
                           INTERNAL TABLES
    TYPES: BEGIN OF it_output,
           bukrs  TYPE bseg-bukrs, "Company Code
           belnr  TYPE bseg-belnr, "Accounting Document Number
           gjahr  TYPE bseg-gjahr, "Fiscal Year
           buzei  TYPE bseg-buzei, "Number of Line Item
           augdt  TYPE bseg-augdt, "Clearing Date
           shkzg  TYPE bseg-shkzg, "Debit/Credit Indicator
           dmbtr  TYPE bseg-dmbtr, "Amount in local currency
           kostl  TYPE bseg-kostl, "Cost Center
           hkont  TYPE bseg-hkont, "G/L Account
           matnr  TYPE bseg-matnr, "Material Number
           werks  TYPE bseg-werks, "Plant
           erfmg  TYPE bseg-erfmg, "Quantity in unit of entry
           blart  TYPE bkpf-blart, "Document type
           bldat  TYPE bkpf-bldat, "Document Date
           budat  TYPE bkpf-budat, "Posting Date
           monat  TYPE bkpf-monat, "Fiscal period
           cpudt  TYPE bkpf-cpudt, "Document Entry Date
           usnam  TYPE bkpf-usnam, "User name
           tcode  TYPE bkpf-tcode, "Transaction Code20
           bktxt  TYPE bkpf-bktxt, "Document Header Text
           waers  TYPE bkpf-waers, "Currency Key
           awtyp  TYPE bkpf-awtyp, "Reference procedure
           awkey  TYPE bkpf-awkey, "Object key
          END OF it_output.
    TYPES: BEGIN OF it_bkpf,
           bukrs  TYPE bkpf-bukrs,
           belnr  TYPE bkpf-belnr,
           gjahr  TYPE bkpf-gjahr,
           blart  TYPE bkpf-blart,
           bldat  TYPE bkpf-bldat,
           budat  TYPE bkpf-budat,
           monat  TYPE bkpf-monat,
           cpudt  TYPE bkpf-cpudt,
           usnam  TYPE bkpf-usnam,
           tcode  TYPE bkpf-tcode,
           bktxt  TYPE bkpf-bktxt,
           waers  TYPE bkpf-waers,
           awtyp  TYPE bkpf-awtyp,
           awkey  TYPE bkpf-awkey,
          END OF it_bkpf.
    DATA: lt_output TYPE it_output OCCURS 0 WITH HEADER LINE.
    DATA: lt_bkpf   TYPE it_bkpf OCCURS 0 WITH HEADER LINE.
                       ALV DECLARATION DATA                              *
    DATA: it_fieldcat   TYPE    slis_t_fieldcat_alv,
          it_heading    TYPE    slis_t_listheader,
          it_sort       TYPE    slis_t_sortinfo_alv,
          it_events     TYPE    slis_t_event,
          it_alv_event  TYPE    slis_alv_event,
          gv_repname    TYPE    syrepid,
          gv_save       TYPE    char1,
          is_layout     TYPE    slis_layout_alv.
                     SELECTION SCREEN                                    *
    SELECTION-SCREEN BEGIN OF BLOCK bl WITH FRAME TITLE text-011.
    SELECT-OPTIONS: s_bukrs FOR bseg-bukrs NO INTERVALS,
                    s_blart FOR bkpf-blart,
                    s_budat FOR bkpf-budat.
    SELECTION-SCREEN END OF BLOCK bl.
                     START OF SELECTION                                  *
    START-OF-SELECTION.
      PERFORM get_data.
                       End of Selection                                  *
    END-OF-SELECTION.
      PERFORM build_field_catalog.
      PERFORM eventstab.
      PERFORM display_data.
                             FORMS                                       *
    *&      Form  get_data
          Get Data
    FORM get_data .
      SELECT bukrs
             belnr
             gjahr
             buzei
             augdt
             shkzg
             dmbtr
             kostl
             hkont
             matnr
             werks
             erfmg
             INTO TABLE lt_output
             FROM bseg
           WHERE bukrs IN s_bukrs.
      IF sy-subrc = 0.
        SORT lt_output BY belnr.
        DELETE ADJACENT DUPLICATES FROM lt_output COMPARING ALL FIELDS.
      ENDIF.
      IF NOT lt_output[] IS INITIAL.
        SELECT bukrs
               belnr
               gjahr
               blart
               bldat
               budat
               monat
               cpudt
               usnam
               tcode
               bktxt
               waers
               awtyp
               awkey
           INTO TABLE lt_bkpf FROM bkpf
           FOR ALL ENTRIES IN lt_output
           WHERE bukrs = lt_output-bukrs AND
                 belnr = lt_output-belnr AND
                gjahr = lt_output-gjahr."AND
                 blart IN s_blart        AND
                 budat IN s_budat ."     AND
                blart = 'SA'     OR
                blart = 'SB'     OR
                blart = 'AB'     OR
                blart = 'ZC'.
    *sort lt_bkpf  by blart budat.
       DELETE lt_bkpf WHERE blart NOT IN s_blart AND
                            budat NOT IN s_budat.
      ENDIF.
      SORT lt_bkpf BY bukrs belnr.
    SORT lt_output[].
    DELETE ADJACENT DUPLICATES FROM lt_output COMPARING ALL FIELDS.
      LOOP AT lt_output.
        READ TABLE lt_bkpf WITH KEY bukrs = lt_output-bukrs
                                    belnr = lt_output-belnr
                                    budat = lt_output-budat
                                    BINARY SEARCH.
        IF sy-subrc = 0.
          MOVE: lt_bkpf-gjahr TO  lt_output-gjahr,
                lt_bkpf-belnr TO  lt_output-belnr,
                lt_bkpf-blart TO  lt_output-blart,
                lt_bkpf-bldat TO  lt_output-bldat,
                lt_bkpf-budat TO  lt_output-budat,
                lt_bkpf-monat TO  lt_output-monat,
                lt_bkpf-cpudt TO  lt_output-cpudt,
                lt_bkpf-usnam TO  lt_output-usnam,
                lt_bkpf-tcode TO  lt_output-tcode,
                lt_bkpf-bktxt TO  lt_output-bktxt,
                lt_bkpf-waers TO  lt_output-waers,
                lt_bkpf-awtyp TO  lt_output-awtyp,
                lt_bkpf-awkey TO  lt_output-awkey.
          MODIFY lt_output.
       ELSE.
         DELETE lt_output.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    "get_data
    thanks jayant

    Hi Jayant,
    You cannot retrieve data first from BSEG and then from BKPF.
    It is not correct and you cannot get the correct data.
    You should use BKPF which is header table first and then
    using for all entries retrieve data from BSEG.
    Use date field in the select statement condition for BKPF table retrieval and
    you don't have posting date field in BSEG.
    If you do like this, it will definitely work.
    Retrieve data from BKPF using date condition in SELECT statement.
    Then, using for all entries retrieve from BSEG.
    Reward if helpful.

  • Want to Avoid Loop for all entries with select query !!

    Hi Guru's  !
    This is my following code . I want to avoid loop  to improve the performance of program.
    data: lt_cuhd type HASHED TABLE OF /sapsll/cuhd WITH UNIQUE key guid_cuhd,
          ls_cuhd type /sapsll/cuhd.
    data: lt_comments type STANDARD TABLE OF zss_comments,
          ls_comments type zss_comments.
    data: lv_objkey type string.
    select * from /sapsll/cuhd into table lt_cuhd.
    loop at lt_cuhd  into ls_cuhd.
      CONCATENATE ls_cuhd-corder '%' into lv_objkey. " Example 'Mum%'
      select * from zss_comments into table lt_comments
                where objkey like lv_objkey
                 AND guid_cuhd = ls_cuhd-guid_cuhd
                  AND event_id <> ''.
    endloop.
    I want
    New code should be...using all entries no loop required.
      *select * from zss_comments into table lt_comments
                where objkey like lv_objkey
                 AND guid_cuhd = ls_cuhd-guid_cuhd
                  AND event_id <> ''.*

    why dont you add the object key also to  lt_cuhd and once you fetch the data to lt_cuhd loop it and add the '%'
    when looping use field symbols so that you dont have to use  modify.
    then use for all entries using lt_cuhd
    i don't you can find a better way to add the % mark apart from looping but by this way only one select query will be done for
    zss_comments
    Thanks
    Nafran

  • Joins to For All Entries

    Hi ABAP Folks,
    I am extracting a set a values from 5 different tables using FOR ALL statement and consolidating the results of each internal table to form a MASTER INTERNAL TABLE containing fields USERNAME ROLENAME ROLENAMETEXT TCODE TCODETEXT.
    BNAME UNAME->(USERNAME)
    AGR_NAME -> ROLES
    OBJECT,OBJCT->AUTHORISATION OBJ
    If the user input is a group name.
    Select BNAME CLASS From USR02 into LT_USR02 where CLASS IN S_USRGRP
    Select UNAME AGR_NAME into LT_AGR_USERS From AGR_USERS For All entries in LT_USR02 where UNAME = LT_USR02-BNAME
    Select AGR_NAME OBJECT into LT_AGR_1251 From AGR_1251 For All entries in LT_AGR_USERS where AGR_NAME = LT_AGR_USERS-AGR_NAME
    Select AGR_NAME TEXT into LT_AGR_TEXTS From AGR_TEXTS For All entries in LT_AGR_1251 where AGR_NAME = LT_AGR_1251-AGR_NAME
    Select OBJCT TCODE into LT_TSTCA From TSTCA For All entries in LT_AGR_1251 where OBJCT = LT_AGR_1251-OBJECT
    Select TCODE TEXTS into LT_TSTCT From TSTCT For All entries in LT_TSTCA where TCODE = LT_TSTCA-TCODE.
    Resultant ITAB IS User Name, User Group, User Group Texts, Transaction Codes, Transaction Code Text.
    <b>Is it better to go for a join in this case?Will joins be more efficient?Any help welcome and will be rewarded.</b>
    in case yes,Syntax for the above case will be helpful.
    Thanks in Advance.
    <b></b>

    Jayant,
    The joins are helpful when the two tables are related to each other basically VBAK and VBAP would be useful to join on document number but it is not advisable to join vbap and aufo on material number.
    In your case you can join the USER* related data and Transaction* related data via joins.
    Message was edited by: Anurag Bankley
    Message was edited by: Anurag Bankley

  • Loop -- Select, for all entries, HOW TO ?

    Hi,
    I have followoing code.
    LOOP AT table ASSIGNING  TO lt_all_roles_all_objects.
      ENDSELECT.
      ENDLOOP.
    How to tune this? I don´t understand how and where to use the for all entries command.
    And what will happen with my append?
    Can somebody explain me?
    Thanks

    Hi,
    First you need to know some of tips in abap so that you can give good shape to ur program according to performance wise.
    --Try to avoid the joins and use FOR ALL ENTRIES IN in place of joins.
    --Try to avoid the MOVE CORRESPONDING
    --Dont use the loop statements with in loop.
    -- Dont write the select statement with in loop.
    -- Better use the read statement in side loop intead of loop in side loop.
    -- Use alway BINARY SEARCH in READ statement- in this mandatory thing is u need to sorty the internal table a/c to with key conditions.
    etc.................  like this u need take care some of abap tips so that u can achieve good coding standards..
    coming to your coding.............
    declare an internal table "itab_agr_1250" which contain fields mandt, agr_name, object, and deleted .
    SELECT mandt agr_name object deleted
          from agr_1250
           into itab_agr_1250
        where agr_name = <cust_tab>-rolename
           and mandt in sp_mandt
           and deleted = ''.
    IF sy-subrc = 0.
    sort itab_agr_1250 by agr_name.
    ENDIF.
    loop at table assigning <cust_tab>.
    read table itab_agr_1250 with key agr_name = <cust_tab>-rolename
                                                                          BINARY SEARCH.
    final_Itab-field1 = itab_agr_1250-.....
    final_Itab-field2 = itab_agr_1250-.....
    final_Itab-field3 = itab_agr_1250-.....  { USE single filed assign or move statement  for each field instead of MOVE CORRESPONDING }
    append final_Itab.
    endloop.
    <b>Reward with points if useful</b>
    Regards,
    Vijay

  • Plz change code from inner join to for all entries

    REPORT      : ZSD00009                                               *
    DESCRIPTION : REPORT FOR TRACTOR ON STOCK AGING                      *
    CODED BY    : DINESH AGARWAL                                         *
    SPECS BY    : AJAY KOTHI                                             *
    START DATE  : 07TH JUNE , 2000                                       *
    CHANGED     : MANOJ SINGH 01/02/2001                                 *
    CHANGED     : YOGINDER KAURA 27TH JULY 2001                          *
    REPORT  ZMUSA_SD00009                           .
    TABLES : vbrk,vbrp,vbfa,ser01,objk,knvv,mara,mbew, t005u,
             t171t,kna1,equi,ihpa, cabn, ausp.
    DATA : BEGIN OF itab OCCURS 0,
             bzirk1 LIKE vbrk-bzirk,
             bzirk LIKE KNA1-regio, "added by dhiraj - 23.11.2007
             LAND1 LIKE KNA1-LAND1,
             kunde LIKE equi-kunde,
             vbeln LIKE vbrk-vbeln,
             fkdat LIKE vbrk-fkdat,
             matkl LIKE mara-matkl,
             sernr LIKE objk-sernr,
             equnr LIKE objk-equnr ,
             matnr LIKE vbrp-matnr,
             spart LIKE vbrp-spart,
             vbelv LIKE vbrp-vbelv,
             posnv LIKE vbrp-posnv,
             days1(1) TYPE n ,
             days2(1) TYPE n ,
             days3(1) TYPE n ,
             days4(1) TYPE n ,
             days5(1) TYPE n ,
             werks like vbrp-werks,
           END OF itab.
    DATA : BEGIN OF itab_grp OCCURS 0,
             werks like vbrp-werks,
             matkl LIKE mara-matkl,
             bzirk1 LIKE vbrk-bzirk,
             bzirk LIKE KNA1-regio, "added by dhiraj - 23.11.2007
             kunde LIKE equi-kunde,
             vbeln LIKE vbrk-vbeln,
             fkdat LIKE vbrk-fkdat,
             sernr LIKE objk-sernr,
             equnr LIKE objk-equnr ,
             matnr LIKE vbrp-matnr,
             spart LIKE vbrp-spart,
             vbelv LIKE vbrp-vbelv,
             posnv LIKE vbrp-posnv,
             days1(1) TYPE n ,
             days2(1) TYPE n ,
             days3(1) TYPE n ,
             days4(1) TYPE n ,
             days5(1) TYPE n ,
           END OF itab_grp.
    DATA : BEGIN OF dealer ,
           days1(3) TYPE p ,
           days2(3) TYPE p ,
           days3(3) TYPE p ,
           days4(3) TYPE p ,
           days5(3) TYPE p ,
           END OF dealer .
    DATA : state LIKE dealer .
    DATA : matgr LIKE dealer .
    DATA : plant LIKE dealer .
    DATA :  BEGIN OF us,
           days1(4) TYPE p ,
           days2(4) TYPE p ,
           days3(4) TYPE p ,
           days4(4) TYPE p ,
           days5(4) TYPE p ,
           END OF us .
    DATA : lin TYPE i , check_box(1) ,
           dealer_total TYPE i,state_total  TYPE i,
           matgr_total  TYPE i,plant_total  TYPE i,
           us_total TYPE i .
    DATA  vobjnr(22) .
    DATA  no_of_days TYPE i .
    DATA  flag_fkdat.
    DATA  atinn1 LIKE cabn-atinn.
    DATA  atinn LIKE cabn-atinn.
    DATA : atflv LIKE ausp-atflv.
    DATA : atflv1(8) TYPE n.
    DATA : invdate TYPE sy-datum.
    DATA  invoicenum(10) TYPE n .
    DATA : BEGIN OF it_regio OCCURS 0,
            regio LIKE kna1-regio,
           END OF it_regio.
    data : it001w like table of t001w with header line.
    TABLES  vbpa.
    SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS : werks FOR vbrp-werks,
                     vkorg FOR vbrk-vkorg,
                     vtweg FOR vbrk-vtweg,
                     spart FOR vbrp-spart.
    SELECTION-SCREEN END OF BLOCK block1 .
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-002.
    SELECT-OPTIONS : matkl FOR mara-matkl,
                     bzirk FOR vbrk-regio," changed by dhiraj - 23.11.2007
                     kunrg FOR vbrk-kunrg ,
                     fkdat FOR vbrk-fkdat.
    SELECTION-SCREEN END OF BLOCK block2 .
    SELECTION-SCREEN BEGIN OF BLOCK block3 WITH FRAME TITLE text-003.
    PARAMETERS : days1(2) TYPE p OBLIGATORY DEFAULT '90' ,
                 days2(2) TYPE p OBLIGATORY DEFAULT '90',
                 days3(2) TYPE p OBLIGATORY DEFAULT '180',
                 days4(2) TYPE p OBLIGATORY DEFAULT '270',
                 days5(2) TYPE p OBLIGATORY DEFAULT '365'.
    SELECTION-SCREEN END OF BLOCK block3 .
    SELECTION-SCREEN BEGIN OF BLOCK reptype WITH FRAME TITLE text-201 .
    PARAMETERS  : detail RADIOBUTTON GROUP rep ,
                  summary RADIOBUTTON GROUP rep ,
                  grp_summ RADIOBUTTON GROUP rep .
    SELECTION-SCREEN END OF BLOCK reptype .
    *start of code by Kalpana for Authority check for REGIO */
    AT SELECTION-SCREEN .
      SELECT regio FROM kna1 INTO TABLE it_regio
       WHERE regio IN bzirk
       AND   kunnr IN kunrg.
      CLEAR it_regio.
      LOOP AT it_regio.
        AUTHORITY-CHECK OBJECT 'Z:AO_REGIO'
                         ID 'REGIO' FIELD it_regio.
        IF sy-subrc NE 0.
          MESSAGE e173(zma) WITH  it_regio.
        ENDIF.
      ENDLOOP.
    *End of code by Kalpana for Authority check for REGIO */
      IF days1 NE days2 .
        MESSAGE e000(8i) WITH text-004  text-009  text-005.
      ELSEIF days3 LE days2 .
        MESSAGE e000(8i) WITH  text-006  text-010  text-005 .
      ELSEIF days4 LE days3 .
        MESSAGE e000(8i) WITH  text-007  text-010  text-006 .
      ELSEIF days5 LE days4 .
        MESSAGE e000(8i) WITH  text-008  text-010  text-007 .
      ENDIF .
    START-OF-SELECTION .
    select abzirk akunrg avbeln afkdat  b~matnr
            cmatkl dvbelv dposnv fsernr  f~equnr
      into corresponding fields of table itab
      from    ( ( ( ( ( vbrk as a inner join vbrp as b
                                              on avbeln = bvbeln )
                           inner join mara as c on cmatnr = bmatnr )
                           inner join vbfa as d on dvbeln = bvbeln
                                               and dposnn = bposnr )
                           inner join ser01 as e on elief_nr = dvbelv
                                                 and eposnr   = dposnv )
                           inner join objk as f on fobknr = eobknr   )
             where a~vkorg in  vkorg
             and   a~vtweg in  vtweg
             and   a~bzirk in  bzirk
             and   a~fkdat in  fkdat
             and   c~matkl in  matkl
             and   a~kunrg in  kunrg
             and   b~spart in  spart
             and   c~mtart = 'FERT'
             and   d~vbtyp_n =  'M'
             and   a~vbtyp   =  'M'
             and   a~fksto   =  ' '
             and   b~vgtyp   =  'J' .
      REFRESH itab.
      CLEAR itab .
      CLEAR cabn .
      select * from t001w into table it001w where werks in werks.
      SELECT  SINGLE  atinn INTO atinn1 FROM  cabn
             WHERE  atnam  = 'INVOICEDATE'.
    *************************modified by dhiraj - 23.11.2007*****************
    SELECT  kbzirk aatflv ekunde eequnr esernr ematnr m~matkl
             INTO CORRESPONDING FIELDS OF  itab
            FROM ( ( ( equi AS e  INNER JOIN ausp AS a
                 ON eequnr = aobjek  )
                  INNER JOIN mara AS m ON ematnr  = mmatnr )
                  INNER JOIN knvv AS k ON kkunnr  = ekunde
                                       AND kspart = mspart )
                          WHERE m~mtart = 'FERT'
                          AND   m~spart IN spart
                          AND   m~matkl IN matkl
                          AND  e~kunde <> ' '
                          AND  e~kunde IN kunrg
                          AND  k~bzirk IN  bzirk
                          and  a~atinn = atinn1
                          AND  k~vkorg = 'M001'
                          AND  k~vtweg = '90'.
      SELECT  kbzirk nregio nland1 aatflv ekunde eequnr esernr ematnr m~matkl
              INTO CORRESPONDING FIELDS OF itab
             FROM ( ( ( ( equi AS e  INNER JOIN ausp AS a
                  ON eequnr = aobjek  )
                   INNER JOIN mara AS m ON ematnr  = mmatnr )
                   INNER JOIN knvv AS k ON kkunnr  = ekunde
                                        AND kspart = mspart )
                   INNER JOIN kna1 as n ON nkunnr  = kkunnr )
                           WHERE m~mtart = 'FERT'
                           AND   m~spart IN spart
                           AND   m~matkl IN matkl
                           AND  e~kunde <> ' '
                           AND  e~kunde IN kunrg
                           AND  nregio IN bzirk "k-bzirk changed to nregio by dhiraj-23.11.2007
                          and  a~atinn = atinn1
                           AND  k~vkorg = 'F041'
                           AND  k~vtweg = '01'.
       added by krunal for plant as select-option
        clear ausp.
        select single * from cabn where atnam = 'DELIVERINGPLANT'.
        SELECT  SINGLE      * FROM  ausp
               WHERE  objek  = itab-equnr
               AND    atinn  = CABN-ATINN.
       CLEAR CABN.
        read table it001w with key werks = ausp-atwrt.
        if sy-subrc <> 0.
         continue.
        else.
          itab-werks = ausp-atwrt.
        endif.
    *end addition
        CLEAR : ausp, knvv .
        SELECT  SINGLE      * FROM  ausp
               WHERE  objek  = itab-equnr
               AND    atinn  = atinn1 .
        MOVE ausp-atflv   TO atflv1 .
        MOVE atflv1 TO invdate .
        MOVE invdate TO itab-fkdat.
        CLEAR : cabn, ausp, atinn.
        SELECT  SINGLE  atinn INTO atinn FROM  cabn
               WHERE  atnam  = 'INVOICENO' .
        SELECT SINGLE      * FROM  ausp
             WHERE  objek  = itab-equnr
             AND    atinn  = atinn.
        MOVE ausp-atflv TO invoicenum .
        MOVE invoicenum TO itab-vbeln.
        IF NOT fkdat-low IS INITIAL .
          IF invdate GE fkdat-low AND invdate LE fkdat-high .
            APPEND itab.
          ELSE.
            CONTINUE.
          ENDIF.
        ELSE.
          APPEND itab.
        ENDIF.
      ENDSELECT.
      SORT itab BY sernr matnr .
      DELETE ADJACENT DUPLICATES FROM itab COMPARING sernr matnr .
      SORT itab BY equnr .
      LOOP AT itab .
        CONCATENATE 'IE' itab-equnr INTO vobjnr .
        SELECT SINGLE * FROM ihpa  WHERE objnr = vobjnr
                                 AND   parvw = 'RE'
                                 AND   obtyp = 'IEQ'
                                 AND kzloesch EQ space. " Yogi on 27/06/2001
        IF sy-subrc EQ 0 .
          DELETE itab INDEX sy-tabix .
          CONTINUE .
        ELSE .
          no_of_days = sy-datum - itab-fkdat .
          IF no_of_days LE days1 .
            itab-days1 = 1 .
          ELSEIF no_of_days GT days2 AND no_of_days LE days3.
            itab-days2 = 1 .
          ELSEIF no_of_days GT days3 AND no_of_days LE days4.
            itab-days3 = 1 .
          ELSEIF no_of_days GT days4 AND no_of_days LE days5.
            itab-days4 = 1 .
          ELSEIF no_of_days GT days5 .
            itab-days5 = 1 .
          ENDIF .
          MODIFY itab INDEX sy-tabix .
        ENDIF .
      ENDLOOP .
    END-OF-SELECTION .
      DESCRIBE TABLE itab LINES lin .
      IF lin GT 0 .
        SORT itab BY bzirk kunde  vbeln .
        IF detail = 'X' .
          PERFORM disp_list .
        ELSEIF summary = 'X' .
          PERFORM summary_list .
        ELSEIF grp_summ = 'X' .
          PERFORM grp_summ_list .
        ENDIF.
      ELSE .
      MESSAGE i000(8i) WITH 'No Records exist as per Selection Condititon' .
      ENDIF .
    TOP-OF-PAGE .
      WRITE : / text-011 , ' - ' , sy-datum .
    *&      Form  DISP_LIST
          text
    -->  p1        text
    <--  p2        text
    FORM disp_list.
      LOOP AT itab.
    ********changes made by dhiraj - 23.11.2007********************
        AT NEW bzirk.
          SKIP .
         SELECT SINGLE * FROM t171t  WHERE bzirk = itab-bzirk
                                     AND   spras = 'E'   .
          SELECT SINGLE * FROM t005u WHERE spras = sy-langu
                                              AND BLAND = itab-bzirk AND LAND1 = ITAB-LAND1.
          PERFORM list_heading.
          FORMAT COLOR 4 INTENSIFIED ON.
          WRITE :/ 'Sales Region : ',itab-bzirk,30 t005u-BEZEI
                                        ,81 ''.
          ULINE .
        ENDAT.
        AT NEW kunde.
          SELECT SINGLE * FROM kna1 WHERE kunnr = itab-kunde .
          FORMAT COLOR 3 INTENSIFIED ON.
          WRITE :/ 'Dealer         : ',itab-kunde,30(25) kna1-name1,
                 60 'City  : ' ,kna1-ort01, 81 ''.
          ULINE .
        ENDAT.
        AT NEW fkdat .
          FORMAT COLOR OFF INTENSIFIED OFF .
          WRITE : /5 itab-vbeln,
                   20 itab-fkdat .
          CLEAR flag_fkdat .
        ENDAT .
       at new matkl .
         format color 2 intensified on.
         write :/ 'Material Group    : ',itab-matkl, 81 ''.
         skip .
       endat .
       mcnt = mcnt + 1 .
        dealer-days1 = dealer-days1 + itab-days1  .
        dealer-days2 = dealer-days2 + itab-days2  .
        dealer-days3 = dealer-days3 + itab-days3  .
        dealer-days4 = dealer-days4 + itab-days4  .
        dealer-days5 = dealer-days5 + itab-days5  .
        state-days1  = state-days1 + itab-days1  .
        state-days2  = state-days2 + itab-days2  .
        state-days3  = state-days3 + itab-days3  .
        state-days4  = state-days4 + itab-days4  .
        state-days5  = state-days5 + itab-days5  .
        IF flag_fkdat EQ 'Y'  .
          NEW-LINE .
        ENDIF .
        WRITE :    35 itab-matnr, "krunal
                   55 itab-sernr,
                   72 itab-werks, "krunal
                   83 itab-days1 ,
                   93 itab-days2 ,
                   103 itab-days3 ,
                   113 itab-days4 ,
                   123 itab-days5 .
        PERFORM get_musa_ta.
        flag_fkdat = 'Y' .
       at end of matkl .
         skip .
         format color 2 intensified on.
         write :/ 'Total For    : ',itab-matkl, ' - ' , mcnt .
         clear mcnt .
         uline  .
       endat .
        AT END OF kunde.
          dealer_total = dealer-days1 + dealer-days2 + dealer-days3
                                     + dealer-days4 + dealer-days5 .
          FORMAT COLOR 3 INTENSIFIED ON.
          WRITE :/ 'Total for  : ',itab-kunde,' - ' ,
                   79 dealer-days1 ,
                   89 dealer-days2 ,
                   99 dealer-days3 ,
                   109 dealer-days4 ,
                   119 dealer-days5 ,
                   129 dealer_total  .
          CLEAR : dealer_total , dealer .
          ULINE .
        ENDAT.
        AT END OF bzirk.
          state_total = state-days1 + state-days2 + state-days3
                                    + state-days4 + state-days5 .
          FORMAT COLOR 4 INTENSIFIED ON.
          WRITE :/ 'Total for  : ',itab-bzirk,' - ' ,
                   79 state-days1 ,
                   89 state-days2 ,
                   99 state-days3 ,
                   109 state-days4 ,
                   119 state-days5 ,
                   129 state_total  .
          CLEAR : state_total , state .
          ULINE.
        ENDAT.
      ENDLOOP.
    ENDFORM.                               " DISP_LIST
    *&      Form  LIST_HEADING
          text
    -->  p1        text
    <--  p2        text
    FORM list_heading.
      DATA : text1(7) , text2(7) , text3(7) , text4(7) , text5(7),
             text11(4) , text12(4) , text13(4) , text14(4) , text15(4) .
      text11 = days1 .
      text12 = days2 .
      text13 = days3 .
      text14 = days4 .
      text15 = days5 .
      CONCATENATE : '=<' text11 INTO text1 ,
                    '>'  text12 INTO text2 ,
                    '>'  text13 INTO text3 ,
                    '>'  text14 INTO text4 ,
                    '>'  text15 INTO text5 .
      ULINE.
      FORMAT COLOR 1 INTENSIFIED OFF.
      WRITE :/5  'Invoice No.',
              20 'Invoice Dt',
              34 'Material',
              55 'Serial No .' ,
              72 'Plant',
              79  text1 ,
              89  text2 ,
              99  text3 ,
              109  text4 ,
              119  text5 ,
              129 'Floor' ,
              139  'Total'  .
      ULINE.
    ENDFORM.                               " LIST_HEADING
    *&      Form  SUMMARY_LIST
          text
    -->  p1        text
    <--  p2        text
    FORM summary_list.
      CLEAR : us, us_total .
      LOOP AT itab.
        AT FIRST.
          SKIP .
    ******modified by dhiraj- 23.11.2007*******************************
         SELECT SINGLE * FROM t171t  WHERE bzirk = itab-bzirk
                                     AND   spras = 'E'   .
          SELECT SINGLE * FROM t005u WHERE spras = sy-langu
                                              AND BLAND = itab-bzirk AND LAND1 = ITAB-LAND1.
          PERFORM list_heading_summary.
         format color 4 intensified on.
         write :/ 'Sales District : ',itab-bzirk,30 t171t-bztxt
                                       ,81 ''.
          ULINE .
        ENDAT.
        AT NEW kunde.
          SELECT SINGLE * FROM kna1 WHERE kunnr = itab-kunde .
         format color 3 intensified on.
         write :/ 'Dealer         : ',itab-kunde,30(25) kna1-name1,
                60 'City  : ' ,kna1-ort01, 81 ''.
         uline .
        ENDAT.
        AT NEW fkdat .
         format color off intensified off .
         write : /5 itab-vbeln,
                  20 itab-fkdat .
          CLEAR flag_fkdat .
        ENDAT .
       at new matkl .
         format color 2 intensified on.
         write :/ 'Material Group    : ',itab-matkl, 81 ''.
         skip .
       endat .
       mcnt = mcnt + 1 .
        dealer-days1 = dealer-days1 + itab-days1  .
        dealer-days2 = dealer-days2 + itab-days2  .
        dealer-days3 = dealer-days3 + itab-days3  .
        dealer-days4 = dealer-days4 + itab-days4  .
        dealer-days5 = dealer-days5 + itab-days5  .
        state-days1  = state-days1 + itab-days1  .
        state-days2  = state-days2 + itab-days2  .
        state-days3  = state-days3 + itab-days3  .
        state-days4  = state-days4 + itab-days4  .
        state-days5  = state-days5 + itab-days5  .
        us-days1  = us-days1 + itab-days1  .
        us-days2  = us-days2 + itab-days2  .
        us-days3  = us-days3 + itab-days3  .
        us-days4  = us-days4 + itab-days4  .
        us-days5  = us-days5 + itab-days5  .
        IF flag_fkdat EQ 'Y'  .
          NEW-LINE .
        ENDIF .
       write :    42 itab-sernr ,
                  59 itab-days1 ,
                  69 itab-days2 ,
                  79 itab-days3 ,
                  89 itab-days4 ,
                  99 itab-days5 .
        flag_fkdat = 'Y' .
       at end of matkl .
         skip .
         format color 2 intensified on.
         write :/ 'Total For    : ',itab-matkl, ' - ' , mcnt .
         clear mcnt .
         uline  .
       endat .
        AT END OF kunde.
          dealer_total = dealer-days1 + dealer-days2 + dealer-days3
                                     + dealer-days4 + dealer-days5 .
         format color 3 intensified on.
         write :/ 'Total for  : ',itab-kunde,' - ' ,
                  57 dealer-days1 ,
                  67 dealer-days2 ,
                  77 dealer-days3 ,
                  87 dealer-days4 ,
                  97 dealer-days5 ,
                  107 dealer_total  .
          CLEAR : dealer_total , dealer .
         uline .
        ENDAT.
        AT END OF bzirk.
    **************modified by dhiraj - 23.11.2007****************
         SELECT SINGLE * FROM t171t  WHERE bzirk = itab-bzirk
                                     AND   spras = 'E'   .
          SELECT SINGLE * FROM t005u WHERE spras = sy-langu
                                              AND BLAND = itab-bzirk AND LAND1 = ITAB-LAND1.
          state_total = state-days1 + state-days2 + state-days3
                                    + state-days4 + state-days5 .
          FORMAT COLOR 4 INTENSIFIED ON.
          WRITE :/10 t171t-bztxt,   " 'Total for  : ',itab-bzirk,' - ' ,
                   57 state-days1 ,
                   67 state-days2 ,
                   77 state-days3 ,
                   87 state-days4 ,
                   97 state-days5 ,
                   107 state_total  .
          CLEAR : state_total , state .
          ULINE.
        ENDAT.
        us_total = us-days1 + us-days2 + us-days3 + us-days4 + us-days5 .
      ENDLOOP.
      SKIP 2.
      FORMAT COLOR 5 INTENSIFIED ON.
      WRITE :/10 'Total for US : ' ,
                55 us-days1 ,
                65 us-days2 ,
                75 us-days3 ,
                85 us-days4 ,
                95 us-days5 ,
                105 us_total  .
    ENDFORM.                               " SUMMARY_LIST
    *&      Form  LIST_HEADING_SUMMARY
          text
    -->  p1        text
    <--  p2        text
    FORM list_heading_summary.
      DATA : text1(7) , text2(7) , text3(7) , text4(7) , text5(7),
             text11(4) , text12(4) , text13(4) , text14(4) , text15(4) .
      text11 = days1 .
      text12 = days2 .
      text13 = days3 .
      text14 = days4 .
      text15 = days5 .
      CONCATENATE : '=<' text11 INTO text1 ,
                    '>'  text12 INTO text2 ,
                    '>'  text13 INTO text3 ,
                    '>'  text14 INTO text4 ,
                    '>'  text15 INTO text5 .
      ULINE.
      FORMAT COLOR 1 INTENSIFIED OFF.
      WRITE :/10  'State',
              57  text1 ,
              67  text2 ,
              77  text3 ,
              87  text4 ,
              97  text5 ,
              110  'Total'  .
      ULINE.
    ENDFORM.                               " LIST_HEADING_SUMMARY
    *&      Form  LIST_HEADING_SUMMARY
          text
    -->  p1        text
    <--  p2        text
    FORM list_heading_grp_summary.
      DATA : text1(7) , text2(7) , text3(7) , text4(7) , text5(7),
             text11(4) , text12(4) , text13(4) , text14(4) , text15(4) .
      text11 = days1 .
      text12 = days2 .
      text13 = days3 .
      text14 = days4 .
      text15 = days5 .
      CONCATENATE : '=<' text11 INTO text1 ,
                    '>'  text12 INTO text2 ,
                    '>'  text13 INTO text3 ,
                    '>'  text14 INTO text4 ,
                    '>'  text15 INTO text5 .
      ULINE.
      FORMAT COLOR 1 INTENSIFIED OFF.
      WRITE :/10  'Material Group',
              57  text1 ,
              67  text2 ,
              77  text3 ,
              87  text4 ,
              97  text5 ,
              110  'Total'  .
      ULINE.
    ENDFORM.                               " LIST_HEADING_GRP_SUMMARY
    *&      Form  GET_MUSA_TA
          text
    -->  p1        text
    <--  p2        text
    FORM get_musa_ta.
      CLEAR vbpa .
      SELECT SINGLE    * FROM  vbpa
             WHERE  vbeln  = itab-vbeln
             AND    parvw  =  'RE' .
          and    kunnr  = 'TA001' .
      IF sy-subrc = 0 .
        IF vbpa-kunnr = 'TA001' .
          WRITE : 129 'TA ' .
        ELSE.
          WRITE : 129 'MUSA' .
        ENDIF.
      ENDIF.
    ENDFORM.                               " GET_MUSA_TA
    *&      Form  grp_summ_list
          text
    -->  p1        text
    <--  p2        text
    FORM grp_summ_list .
      CLEAR : us, us_total .
    itab_grp[] = itab[] .
    sort itab_grp BY werks matkl.
      LOOP AT itab_grp.
        AT FIRST.
          SKIP .
          PERFORM list_heading_grp_summary.
          ULINE .
        ENDAT.
        matgr-days1  = matgr-days1 + itab_grp-days1  .
        matgr-days2  = matgr-days2 + itab_grp-days2  .
        matgr-days3  = matgr-days3 + itab_grp-days3  .
        matgr-days4  = matgr-days4 + itab_grp-days4  .
        matgr-days5  = matgr-days5 + itab_grp-days5  .
        plant-days1 = plant-days1 + matgr-days1 .
        plant-days2 = plant-days2 + matgr-days2 .
        plant-days3 = plant-days3 + matgr-days3 .
        plant-days4 = plant-days4 + matgr-days4 .
        plant-days5 = plant-days5 + matgr-days5 .
        us-days1  = us-days1 + itab_grp-days1  .
        us-days2  = us-days2 + itab_grp-days2  .
        us-days3  = us-days3 + itab_grp-days3  .
        us-days4  = us-days4 + itab_grp-days4  .
        us-days5  = us-days5 + itab_grp-days5  .
        IF flag_fkdat EQ 'Y'  .
          NEW-LINE .
        ENDIF .
       write :    42 itab-sernr ,
                  59 itab-days1 ,
                  69 itab-days2 ,
                  79 itab-days3 ,
                  89 itab-days4 ,
                  99 itab-days5 .
        flag_fkdat = 'Y' .
        AT END OF matkl.
          matgr_total = matgr-days1 + matgr-days2 + matgr-days3
                                    + matgr-days4 + matgr-days5 .
          FORMAT COLOR 4 INTENSIFIED ON.
          WRITE :/10 itab_grp-matkl,   " 'Total for  : ',itab_grp-matkl,' - ' ,
                   57 matgr-days1 ,
                   67 matgr-days2 ,
                   77 matgr-days3 ,
                   87 matgr-days4 ,
                   97 matgr-days5 ,
                   107 matgr_total  .
          CLEAR : matgr_total , matgr .
          ULINE.
        ENDAT.
        AT END OF werks.
          plant_total = plant-days1 + plant-days2 + plant-days3
                                    + plant-days4 + plant-days5 .
          FORMAT COLOR 4 INTENSIFIED ON.
          WRITE :/10 itab_grp-werks,   " 'Total for  : ',itab_grp-werks,' - ' ,
                   57 plant-days1 ,
                   67 plant-days2 ,
                   77 plant-days3 ,
                   87 plant-days4 ,
                   97 plant-days5 ,
                   107 plant_total  .
          CLEAR : plant_total , plant .
          ULINE.
        ENDAT.
        us_total = us-days1 + us-days2 + us-days3 + us-days4 + us-days5 .
      ENDLOOP.
      SKIP 2.
      FORMAT COLOR 5 INTENSIFIED ON.
      WRITE :/10 'Total  : ' ,
                55 us-days1 ,
                65 us-days2 ,
                75 us-days3 ,
                85 us-days4 ,
                95 us-days5 ,
                105 us_total  .
    ENDFORM.                    " grp_summ_list

    {SELECT OBJEK CUOBJ
      INTO CORRESPONDING FIELDS OF TABLE TAB_INOB
      FROM INOB
    WHERE OBJEK IN R_MATNR.
    SELECT ATWRT OBJEK ATINN
      INTO CORRESPONDING FIELDS OF TABLE TAB_AUSP
      FROM AUSP
       FOR ALL ENTRIES IN TAB_INOB
    WHERE OBJEK = TAB_INOB-CUOBJ.
    SELECT ATNAM
      INTO TABLE TAB_CABN
      FROM CABN
       FOR ALL ENTRIES IN TAB_INOB
    WHERE ATNAM = 'ZCURSEASON'
        OR ATNAM = 'ZCURYEAR'
       AND ATINN = TAB_AUSP-ATINN.
    after this you can gether the data into one internal table.
    Form one inter nal table it_final.
    loop at TAB_INOB.
    it_final-OBJEK = tab_inob-OBJEK.
    it_final-CUOBJ = tab_inob-CUOBJ.
    READ TABLE TAB_CABN  WITH KEY OBJEK = TAB_INOB-CUOBJ.
    IT_FINAL-ATWRT = TAB_CABN-ATWRT.
    IT_FINAL-ATINN = TAB_CABN-ATINN.
    DO SAME FOR THIRD TABLE
    AFFTER DO ALL
    APPEND IT_FINAL.
    ENDLOOP.}

  • Unable to Get the Data Using For All Entries

    Hi everybody, i am using for all entries in a program. but when i am writing a code using for all entries i am getting an error as 
    Where condition does not refers to the FOR ALL ENTRIES tables...
    SELECT KUNNR
           NAME1
           ORT01
           LAND1
       FROM KNA1 INTO TABLE ITAB1 WHERE KUNNR IN S_KUNNR.
    IF NOT ITAB1 IS INITIAL.
    SELECT VBELN
            ERDAT
            KUNNR
       FROM VBAK INTO TABLE ITAB2 FOR ALL ENTRIES IN ITAB1 WHERE KUNNR = IT_KNA1-KUNNR.
    ENDIF.
    can anybody help out in this
    regards
    hyder ali

    The correct one may be like this:
    SELECT KUNNR
    NAME1
    ORT01
    LAND1
    FROM KNA1 INTO TABLE ITAB1 WHERE KUNNR IN S_KUNNR.
    IF NOT ITAB1 IS INITIAL.
    SELECT VBELN
    ERDAT
    KUNNR
    FROM VBAK INTO TABLE ITAB2 FOR ALL ENTRIES IN ITAB1 WHERE KUNNR = ITAB1-KUNNR. "modified here
    ENDIF.
    Edited by: XuJian84 on Mar 9, 2010 4:25 AM

  • What is the usage of for all entries ?

    What is the Usage of read table  after using for all entries ?
    In the following example what exactly it is doing ?
      Usage of 'for all entries' in Select Statement
    FORM data_retrieval.
      DATA: ld_color(1) TYPE c.
      DATA: BEGIN OF T_VBAP OCCURS 0,
            VBELN  LIKE VBAP-VBELN,
            MATNR  LIKE VBAP-MATNR,
            POSNR  LIKE VBAP-POSNR,
            END OF T_VBAP.
      DATA: BEGIN OF T_VBFA OCCURS 0,
            VBELV  LIKE VBFA-VBELV,
            VBELN  LIKE VBFA-VBELN,
            VBTYP_N  LIKE VBFA-VBTYP_N,
            END OF T_VBFA.
      DATA: BEGIN OF T_VBAK OCCURS 0,
            VBELN  LIKE VBAK-VBELN,
            IHREZ  LIKE VBAK-IHREZ,
            END OF T_VBAK.
      DATA: BEGIN OF T_KNA1 OCCURS 0,
            KUNNR  LIKE KNA1-KUNNR,
            NAME1  LIKE KNA1-NAME1,
            END OF T_KNA1.
       DATA: BEGIN OF T_MAKT OCCURS 0,
            MATNR  LIKE MAKT-MATNR,
            MAKTX  LIKE MAKT-MAKTX,
            END OF T_MAKT.
      SELECT likpvbeln likplifex likpbldat likpwadat likpwadat_ist likpkodat likp~lfart
             likpkunnr likpvstel lipsposnv lipslfimg lipsvrkme lipslgmng lips~meins
             lipswerks lipslgort lipscharg lipsvbelv lipsposnr lipsmatnr
             lipsvbeln LIPSVGBEL LIPSVGPOS vbupkosta vbupwbsta vbupposnr vbup~vbeln
              VBAKIHREZ VBAKVBELN VBAP~VBELN
         INTO CORRESPONDING FIELDS OF TABLE  it_itab
        FROM ( likp
               INNER JOIN lips
               ON  lipsvbeln = likpvbeln
               INNER JOIN vbup
               ON  vbupposnr = lipsposnr
               and VBUPVBELN = LIPSVBELN )
              left outer join VBAK
              on  VBAKVBELN = LIPSVGBEL
              inner join VBAP
              on  VBAPVBELN = VBAKVBELN )
             WHERE likp~vbeln IN so_vbeln
               AND likp~lifex IN so_lifex
               AND likp~lfart IN so_lfart
               AND likp~kunnr IN so_kunnr
               AND likp~vstel IN so_vstel
               AND likp~bldat IN so_bldat
               AND likp~wadat_ist IN so_wadat
               AND vbup~kosta IN so_kosta
               AND vbup~wbsta IN so_wbsta
               AND LIPS~LFIMG NE 0.
      SELECT VBELN IHREZ INTO TABLE T_VBAK
      FROM VBAK
      FOR ALL ENTRIES IN  IT_ITAB
      WHERE VBELN = IT_ITAB-VGBEL.
    APPEND T_VBAK.
    ENDSELECT.
      SELECT VBELN MATNR POSNR INTO TABLE T_VBAP
      FROM VBAP
      FOR ALL ENTRIES IN  IT_ITAB
      WHERE VBELN = IT_ITAB-VGBEL AND
            MATNR = IT_ITAB-MATNR AND
            POSNR = IT_ITAB-VGPOS.
    APPEND T_VBAP.
    ENDSELECT.
      SELECT VBELV VBELN VBTYP_N INTO TABLE T_VBFA
      FROM VBFA
      FOR ALL ENTRIES IN  IT_ITAB
      WHERE VBELV = IT_ITAB-VBELN AND
            VBTYP_N = 'M' .
      SELECT KUNNR NAME1 INTO TABLE T_KNA1
      FROM KNA1
      FOR ALL ENTRIES IN IT_ITAB
      WHERE KUNNR = IT_ITAB-KUNNR.
    APPEND T_KNA1.
    ENDSELECT.
      SELECT MATNR MAKTX INTO TABLE T_MAKT
      FROM MAKT
      FOR ALL ENTRIES IN IT_ITAB
      WHERE MATNR = IT_ITAB-MATNR.
    APPEND T_MAKT.
    ENDSELECT.
    *Populate field with color attributes
      LOOP AT it_itab INTO wa_ITAB.
    Populate color variable with colour properties
    Char 1 = C (This is a color property)
    Char 2 = 3 (Color codes: 1 - 7)
    Char 3 = Intensified on/off ( 1 or 0 )
    Char 4 = Inverse display on/off ( 1 or 0 )
    i.e. wa_ekko-line_color = 'C410'
        REFRESH color.
        colourize 'VBELN' 0. " .
        WA_ITAB-farbe = color[].
        ld_color = ld_color + 1.
    Only 7 colours so need to reset color value
        IF ld_color = 3. "8
          ld_color = 1.
        ENDIF.
        CONCATENATE 'C' ld_color '10' INTO wa_ITAB-line_color.
        WA_ITAB-NAME1 = ''.
        WA_ITAB-MAKTX = ''.
        WA_ITAB-IHREZ = ''.
        WA_ITAB-VBELV = ''.
        READ TABLE T_KNA1 WITH KEY KUNNR = WA_ITAB-KUNNR.
        IF SY-SUBRC = 0.
           WA_ITAB-NAME1 = T_KNA1-NAME1.
        ENDIF.
        READ TABLE T_MAKT WITH KEY MATNR = WA_ITAB-MATNR.
        IF SY-SUBRC = 0.
        WA_ITAB-MAKTX = T_MAKT-MAKTX.
        ENDIF.
        READ TABLE T_VBAK WITH KEY VBELN = WA_ITAB-VGBEL.
        IF SY-SUBRC = 0.
        WA_ITAB-IHREZ = T_VBAK-IHREZ.
        ENDIF.
        READ TABLE T_VBFA WITH KEY VBELV = WA_ITAB-VBELN.
        IF SY-SUBRC = 0.
        WA_ITAB-VBELVA = T_VBFA-VBELN.
        ENDIF.
       READ TABLE T_VBAP WITH KEY VBELN = WA_ITAB-VGBEL
                                  POSNR = WA_ITAB-VGPOS
                                  MATNR = WA_ITAB-MATNR.
       IF SY-SUBRC = 0.
       WA_ITAB-IHREZ = T_VBAK-IHREZ.
       ENDIF.
    wa_ekko-line_color = 'C410'.
        MODIFY it_itab FROM wa_itab.
      ENDLOOP.
    ENDFORM. " data_retrieval

    hi Jyotirmoy,
    The explanation below can give u an idea of wat is going in ur code..
    Use of FOR ALL Entries
    Outer join can be created using this addition to the where clause in a select statement. It speeds up the performance tremendously, but the cons of using this variation are listed below
    Duplicates are automatically removed from the resulting data set. Hence care should be taken that the unique key of the detail line items should be given in the select statement.
    If the table on which the For All Entries IN clause is based is empty, all rows are selected into the destination table. Hence it is advisable to check before-hand that the first table is not empty.
    If the table on which the For All Entries IN clause is based is very large, the performance will go down instead of improving. Hence attempt should be made to keep the table size to a moderate level.
    Not Recommended
                Loop at int_cntry.
                 Select single * from zfligh into int_fligh
                 where cntry = int_cntry-cntry.
                 Append int_fligh.
                Endloop.
    Recommended
                Select * from zfligh appending table int_fligh
                For all entries in int_cntry
                Where cntry = int_cntry-cntry.
    Thankyou,
    Regards.

  • Using delete and FOR ALL ENTRIES

    Hi,
    We have a error message regarding the following code :
    Delete FROM TABLE FOR ALL ENTRIES IN lt_TABLE WHERE
    TABLE_KEY1  = LT_TABLE_KEY1
    Could we use the For All entries with "Select" ?
    For information, the error message is "Unable to interpret "FOR". Possible causes: Incorrect spelling or comma error.
    Thank you.

    Hi,
    Check the below syntax, if you want to delete from database
    DELETE FROM sflight
    WHERE  carrid = p_carrid AND
           fldate = sy-datum AND
           seatsocc = 0.
    Just a suggestion. May be from next time you can use F1 help for syntax:
    1. Place the cursor on the delete keword in your program and press F1 - You willl get all the possible syntax for delete statement
    2. Else open the transaction ABAPDOCU, Click Keyword Help, Enter the required keyword(delete in this case) and press cont.. You will get the syntax.
    Hope thsi will help you.
    Regards,
    Swarna Munukoti.

  • Performance Issue in Select Statement (For All Entries)

    Hello,
    I have a report where i have two select statement
    First Select Statement:
    Select A B C P Q R
         from T1 into Table it_t1
              where ....
    Internal Table it_t1 is populated with 359801 entries through this select statement.
    Second Select Statement:
    Select A B C X Y Z
         from T2 in it_t2 For All Entries in it_t1
              where A eq it_t1-A
                 and B eq it_t1-B
                 and C eq it_t1-C
    Now Table T2 contains more than 10 lac records and at the end of select statement it_t2 is populated with 844003 but it takes a lot of time (15 -20 min) to execute second select statement.
    Can this code be optimized?
    Also i have created respective indexes on table T1 and T2 for the fields in Where Condition.
    Regards,

    If you have completed all the steps mentioned by others, in the above thread, and still you are facing issues then,.....
    Use a Select within Select.
    First Select Statement:
    Select A B C P Q R package size 5000
         from T1 into Table it_t1
              where ....
    Second Select Statement:
    Select A B C X Y Z
         from T2 in it_t2 For All Entries in it_t1
              where A eq it_t1-A
                 and B eq it_t1-B
                 and C eq it_t1-C
    do processing........
    endselect
    This way, while using for all entries on T2, your it_t1, will have limited number of entries and thus the 2nd select will be faster.
    Thanks,
    Juwin

  • Performance issue with select query and for all entries.

    hi,
    i have a report to be performance tuned.
    the database table has around 20 million entries and 25 fields.
    so, the report fetches the distinct values of two fields using one select query.
    so, the first select query fetches around 150 entries from the table for 2 fields.
    then it applies some logic and eliminates some entries and makes entries around 80-90...
    and then it again applies the select query on the same table using for all entries applied on the internal table with 80-90 entries...
    in short,
    it accesses the same database table twice.
    so, i tried to get the database table in internal table and apply the logic on internal table and delete the unwanted entries.. but it gave me memory dump, and it wont take that huge amount of data into abap memory...
    is around 80-90 entries too much for using "for all entries"?
    the logic that is applied to eliminate the entries from internal table is too long, and hence cannot be converted into where clause to convert it into single select..
    i really cant find the way out...
    please help.

    chinmay kulkarni wrote:Chinmay,
    Even though you tried to ask the question with detailed explanation, unfortunately it is still not clear.
    It is perfectly fine to access the same database twice. If that is working for you, I don't think there is any need to change the logic. As Rob mentioned, 80 or 8000 records is not a problem in "for all entries" clause.
    >
    > so, i tried to get the database table in internal table and apply the logic on internal table and delete the unwanted entries.. but it gave me memory dump, and it wont take that huge amount of data into abap memory...
    >
    It is not clear what you tried to do here. Did you try to bring all 20 million records into an internal table? That will certainly cause the program to short dump with memory shortage.
    > the logic that is applied to eliminate the entries from internal table is too long, and hence cannot be converted into where clause to convert it into single select..
    >
    That is fine. Actually, it is better (performance wise) to do much of the work in ABAP than writing a complex WHERE clause that might bog down the database.

  • SD Flow program using For all entries.

    using simple ALV grid: I have the urgent requirement of changing the following program using 'For all entries' instead of joins and I should not use 'TABLES' -- For top-of-page I need to get dynamic fields like if I select company code in the selection screen then I need to get 'This report is base on COMPANY CODE'.
    This program is about sales flow where i shud get only those records that have ebeln in vbak, delivery, invoice.
    The original program is as follows:
    *& Report  ZSD_DOCU_FLOW                                               *
    REPORT  zsd_docu_flow  NO STANDARD PAGE HEADING                    .
    * Program     : ZCOS_SALES                                           *
    * Dev. Class  :  ZSD
    * Functional  :
    * Created on  :                                                        *
    * Project     :
    * CR Number   :
    * Transaction :  ZSDCSUT                                               *
    * Description :   * Sales document life cylce for given customer
    *                  to declaired period displaying the sales document
    *                  details ,with relevant del details and corresponding
    *                  Invocie Details
    *-----------     Tables Declaration      -----------*
    TABLES: vbak,vbap,vbfa,kna1,vbrk,vbrp,likp,lips,t001.
    TYPE-POOLS : slis.
    *-----------    Internal Tables Declaration      -----------*
    *      Internal Table for Sales Order data                   *
    DATA: BEGIN OF it_so OCCURS 0,
            vbeln LIKE vbak-vbeln,
            kunnr LIKE vbak-kunnr,
            posnr LIKE vbap-posnr,
            matnr LIKE vbap-matnr,
            kwmeng LIKE vbap-kwmeng,
            netwr LIKE vbap-netwr,
         END OF it_so.
    *      Internal Table for Delivery Order data                   *
    DATA: BEGIN OF it_del OCCURS 0,
            delnum  LIKE likp-vbeln,
            lfdat LIKE likp-lfdat,
            delitem LIKE lips-posnr,
            lfimg LIKE lips-lfimg,
          END OF it_del.
    *      Internal Table for Invoice data                          *
    DATA: BEGIN OF  it_inv OCCURS 0,
            invnum LIKE vbrk-vbeln,
            invitem LIKE vbrp-posnr,
            fkimg LIKE vbrp-fkimg,
            amount LIKE vbrp-netwr,
         END OF it_inv.
    *      Internal Table for Final data                            *
    DATA: BEGIN OF it_final OCCURS 0,
            vbeln LIKE vbak-vbeln,
            posnr LIKE vbap-posnr,
            kunnr LIKE vbak-kunnr,
            name LIKE kna1-name1,
            matnr LIKE vbap-matnr,
            kwmeng LIKE vbap-kwmeng,
            netwr LIKE vbap-netwr,
            delnum  LIKE likp-vbeln,
            lfdat LIKE likp-lfdat,
            delitem LIKE lips-posnr,
            lfimg LIKE lips-lfimg,
            invnum LIKE vbrk-vbeln,
            invitem LIKE vbrp-posnr,
            fkimg LIKE vbrp-fkimg,
            amount LIKE vbrp-netwr,
         END OF it_final.
    *-----------    Variables Declaration      -----------*
    DATA: v_name LIKE kna1-kunnr," variable for customer name
          v_delnum LIKE likp-vbeln," variable for delivery number
          v_invnum LIKE vbrk-vbeln." variable for invoce number
    DATA : ls_layout TYPE slis_layout_alv,
           it_fcat TYPE slis_t_fieldcat_alv ,
           wa_fcat TYPE slis_fieldcat_alv,
           lh TYPE slis_t_listheader,
           ls TYPE slis_listheader,
           it_events TYPE slis_t_event  ,
           ls_event TYPE slis_alv_event ,
           i_sort     TYPE slis_t_sortinfo_alv,
           w_var TYPE i.
    DATA : l_date(10).
    DATA : l_date1(20).
    DATA : l_repid LIKE trdir-name.
    l_repid = 'ZSD_DOCU_FLOW1'.
    *-----------    Select-options & parameters Declaration  ---*
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_bukrs LIKE vbak-bukrs_vf,
                 p_vkorg LIKE vbak-vkorg,
                p_vtweg LIKE vbak-vtweg,
                p_spart LIKE vbak-spart.
    SELECT-OPTIONS: s_kunnr FOR vbak-kunnr,
                    s_audat FOR vbak-audat.
    SELECTION-SCREEN END OF BLOCK b1.
    *----------- AT SELECTION-SCREEN  --------------------------*
    AT SELECTION-SCREEN.
      SELECT SINGLE * FROM  t001 INTO t001
                                WHERE bukrs = p_bukrs.
      IF sy-subrc <> 0.
        MESSAGE e000(8i) WITH 'Enter a Valid Company Code'.
      ENDIF.
      SELECT SINGLE * FROM vbak INTO vbak
                              WHERE vkorg = p_vkorg.
      IF sy-subrc <> 0.
        MESSAGE e000(8i) WITH 'Enter a Valid Sales Organization'.
      ENDIF.
      SELECT SINGLE * FROM vbak INTO vbak
                                WHERE vtweg = p_vtweg.
      IF sy-subrc <> 0.
        MESSAGE e000(8i) WITH 'Enter a Valid distribution channel'.
      ENDIF.
      SELECT SINGLE * FROM vbak INTO vbak
                                WHERE spart = p_spart.
      IF sy-subrc <> 0.
        MESSAGE e000(8i) WITH 'Enter a Valid Division'.
      ENDIF.
      SELECT SINGLE * FROM kna1 INTO kna1
                                WHERE kunnr IN s_kunnr.
      IF sy-subrc <> 0.
        MESSAGE e000(8i) WITH 'Enter a Valid Customer Number'.
      ENDIF.
    *----------- START-OF-SELECTION-----------------------------*
    START-OF-SELECTION.
      ls-typ = 'H'.
      ls-info = 'Sales Document Flow'.
      APPEND ls TO lh.
      ls-typ = 'S'.
      WRITE: sy-datum TO l_date USING EDIT MASK '__/__/____'.
      CONCATENATE 'DATE :' l_date INTO l_date1 SEPARATED BY space.
      ls-info = l_date1.
      APPEND ls TO lh.
      PERFORM field_cat.
      PERFORM t_sort_build USING i_sort.
      PERFORM get-data.
    *----------- END-OF-SELECTION-----------------------------*
    END-OF-SELECTION.
    IF it_final[] IS INITIAL.
        MESSAGE i000(8i) WITH 'No data Found'.
        EXIT.
      ENDIF.
    PERFORM print-data.
    *&      Form  get-data
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM get-data .
    *  Accesing Sales Data
      SELECT a~vbeln a~kunnr b~posnr b~matnr b~kwmeng b~netwr
       INTO CORRESPONDING FIELDS OF TABLE it_so
       FROM vbak AS a INNER JOIN vbap AS b
                             ON a~vbeln = b~vbeln
                              WHERE a~bukrs_vf = p_bukrs
                                 AND a~vkorg = p_vkorg
                                 AND  a~vtweg = p_vtweg
                                    AND a~spart = p_spart
                                     AND a~kunnr IN s_kunnr
                                          AND a~audat IN s_audat.
      LOOP AT it_so.
        SELECT SINGLE name1 FROM kna1 INTO v_name
                                         WHERE kunnr = it_so-kunnr.
        SELECT SINGLE vbeln FROM vbfa INTO v_delnum
                                          WHERE vbelv = it_so-vbeln
                                            AND  vbtyp_n = 'J'.
        IF sy-subrc = 0.
          SELECT SINGLE  vbeln FROM vbfa INTO v_invnum
                                WHERE vbelv = v_delnum
                                  AND  vbtyp_n = 'M'.
        ENDIF.
        MOVE-CORRESPONDING it_so TO it_final.
        it_final-name = v_name.
        it_final-delnum = v_delnum.
        it_final-invnum = v_invnum.
        APPEND it_final.
        CLEAR it_final.
        CLEAR v_delnum.
        CLEAR v_invnum.
      ENDLOOP.
      LOOP AT it_final.
        IF it_final-delnum NE ' '.
    * Reading Del Data.
          SELECT SINGLE  a~vbeln  a~lfdat b~posnr b~lfimg   INTO
                    (it_del-delnum, it_del-lfdat, it_del-delitem,
                     it_del-lfimg ) FROM
                        likp AS a INNER JOIN lips AS b ON a~vbeln = b~vbeln
                                   WHERE a~vbeln = it_final-delnum
                                   AND b~posnr = it_final-posnr.
          MOVE-CORRESPONDING it_del TO it_final.
          MODIFY it_final.
        ENDIF.
        IF it_final-invnum NE ' '.
    * Reading Invoice Data.
          SELECT SINGLE vbeln posnr fkimg netwr INTO
         (it_inv-invnum, it_inv-invitem, it_inv-fkimg, it_inv-amount )
                       FROM vbrp  WHERE vbeln = it_final-invnum
                                  AND   posnr = it_final-posnr.
          MOVE-CORRESPONDING it_inv TO it_final.
          MODIFY it_final.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " get-data
    *&      Form  print-data
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM print-data .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
    *     I_INTERFACE_CHECK                 = ' '
    *     I_BYPASSING_BUFFER                = ' '
    *     I_BUFFER_ACTIVE                   = ' '
         i_callback_program                = l_repid
    *     I_CALLBACK_PF_STATUS_SET          = ' '
    *     I_CALLBACK_USER_COMMAND           = ' '
         i_callback_top_of_page            = 'TOP'
    *     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
    *     I_CALLBACK_HTML_END_OF_LIST       = ' '
    *     I_STRUCTURE_NAME                  =
    *     I_BACKGROUND_ID                   = ' '
    *     I_GRID_TITLE                      =
    *     I_GRID_SETTINGS                   =
    *     IS_LAYOUT                         =
         it_fieldcat                       = it_fcat
    *     IT_EXCLUDING                      =
    *     IT_SPECIAL_GROUPS                 =
         IT_SORT                           = i_sort[]
    *     IT_FILTER                         =
    *     IS_SEL_HIDE                       =
    *     I_DEFAULT                         = 'X'
    *     I_SAVE                            = ' '
    *     IS_VARIANT                        =
    *     IT_EVENTS                         =
    *     IT_EVENT_EXIT                     =
    *     IS_PRINT                          =
    *     IS_REPREP_ID                      =
    *     I_SCREEN_START_COLUMN             = 0
    *     I_SCREEN_START_LINE               = 0
    *     I_SCREEN_END_COLUMN               = 0
    *     I_SCREEN_END_LINE                 = 0
    *     IT_ALV_GRAPHICS                   =
    *     IT_HYPERLINK                      =
    *     IT_ADD_FIELDCAT                   =
    *     IT_EXCEPT_QINFO                   =
    *     I_HTML_HEIGHT_TOP                 =
    *     I_HTML_HEIGHT_END                 =
    *   IMPORTING
    *     E_EXIT_CAUSED_BY_CALLER           =
    *     ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = it_final.
    *   EXCEPTIONS
    *     PROGRAM_ERROR                     = 1
    *     OTHERS                            = 2
    *  IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *  ENDIF.
    ENDFORM.                    " print-data
    *&      Form  field_cat
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM field_cat .
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'VBELN'.
      wa_fcat-key = 'X'.
      wa_fcat-ref_fieldname = 'VBELN'.
      wa_fcat-ref_tabname = 'VBAK'.
      wa_fcat-seltext_m = 'Sales Order NO'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'POSNR'.
      wa_fcat-ref_fieldname = 'POSNR'.
      wa_fcat-ref_tabname = 'VBAP'.
      wa_fcat-seltext_m = 'SalesItemNO'.
      wa_fcat-fix_column = 'X'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'KUNNR'.
      wa_fcat-seltext_m = 'CUSTNUM'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'NAME'.
      wa_fcat-seltext_m = 'CUSTNAME'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'MATNR'.
      wa_fcat-seltext_m = 'MATNUM'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'KWMENG'.
      wa_fcat-seltext_m = 'Sales Quantity'.
      wa_fcat-do_sum = 'X'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'NETWR'.
      wa_fcat-seltext_m = 'Value'.
      wa_fcat-do_sum = 'X'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'DELNUM'.
      wa_fcat-seltext_m = 'DeloveryNum'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'DELITEM'.
      wa_fcat-seltext_m = 'DelItemNO'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'LFDAT'.
      wa_fcat-seltext_m = 'DelDate'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'LFIMG'.
      wa_fcat-seltext_m = 'DelQuantity'.
      wa_fcat-do_sum = 'X'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'INVNUM'.
      wa_fcat-seltext_m = 'InvoiceNum'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'INVITEM'.
      wa_fcat-seltext_m = 'InvoiceItem'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'FKIMG'.
      wa_fcat-seltext_m = 'INVQuantity'.
      wa_fcat-do_sum = 'X'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_FINAL'.
      wa_fcat-fieldname = 'AMOUNT'.
      wa_fcat-seltext_m = 'INVvalue'.
      wa_fcat-do_sum = 'X'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
    ENDFORM.     " field_cat
    *&      Form  top
    *       text
    FORM t_sort_build USING l_sort TYPE slis_t_sortinfo_alv.
      DATA: ls_sort TYPE slis_sortinfo_alv.
      ls_sort-fieldname = 'VBELN'.
      ls_sort-spos      = 1.
      ls_sort-up        = 'X'.
      ls_sort-subtot    = 'X'.
      APPEND ls_sort TO l_sort.
      ls_sort-fieldname = 'KUNNR'.
      ls_sort-spos      = 2.
      ls_sort-up        = 'X'.
      APPEND ls_sort TO l_sort.
    ENDFORM.                    "t_sort_bui
    FORM top.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary       = lh
    *   I_LOGO                   =
    *   I_END_OF_LIST_GRID       =
    ENDFORM.                    "TOP
    ===========================================================================
    I have started the new program but i have trouble with the final internal table. Since i'm using For all entries I have declared internal tables for each table. My incomplete new program is as follows(not sure if the logic is correct till what I have coded):
    *& Report  Z_SDFLOW                                                    *
    REPORT  Z_SDFLOW  NO STANDARD PAGE HEADING.
    ********* TABLES TO BE USED ***********************
    **** VBAK - SALES DOCUMENT HEADER
    * VBAP - SALES ITEM
    * VBFA - SALES DOCUMENT FLOW
    * KNA1- CUSTOMER MASTER
    * VBRK - BILLING DOCUMENT HEADER
    * VBRP - BLLING DOCUMENT ITEM
    * LIKP - DELIVERY HEADER
    * LIPS - DELIVERY ITEM
    * TOO1 - COMPANY CODES
    * SLIS.
    TYPE-POOLS: SLIS.
    ** STRUCTURE DECLARATIONS ********
    **STRUCTURE FOR ENQUIRY.
    **STRUCTURE FOR QUOTATION.
    **STRUCTURE FOR SALES ORDER HEADER- VBAK.
    TYPES: BEGIN OF XT_VBAK,
    VBELN TYPE VBAK-VBELN,     "SALES DOCUMENT NUMBER
    KUNNR TYPE VBAK-KUNNR,     " SOLD-TO-PARTY
    END OF XT_VBAK.
    **STRUCTURE FOR SALES ORDER  ITEM-VBAP
    TYPES: BEGIN OF XT_VBAP,
    POSNR TYPE VBAP-POSNR,     " SALES ITEM NUMBER
    MATNR TYPE VBAP-MATNR,     " MATERIAL NUMBER
    KWMENG TYPE VBAP-KWMENG,   " CUMMULATIVE ORDER QUANTITY IN SALES UNITS
    NETWR TYPE VBAP-NETWR,     " NET VALUE OF THE ORDER ITEM
    END OF XT_VBAP.
    ** STRUCTURE FOR DELIVERY HEADER -LIKP
    TYPES: BEGIN OF XT_LIKP,
    DELVBELN TYPE LIKP-VBELN,           "DELIVERY DOCUMENT NUMBER
    LFDAT TYPE LIKP-LFDAT,           " DELIVERY DATE
    END OF XT_LIKP.
    **STRUCTURE FOR DELIVERY ITEM - LIPS
    TYPES: BEGIN OF XT_LIPS,
    DELPOSNR TYPE LIPS-POSNR,           " DELIVERY ITEM NUMBER
    LFIMG TYPE LIPS-LFIMG,           " ACTUAL QUANTITY DELIVERED
    END OF XT_LIPS.
    **STRUCTURE FOR BILLING DOCUMENT HEADER -VBRK
    TYPES: BEGIN OF XT_VBRK,
    INVVBELN TYPE VBRK-VBELN,          "BILLING DOCUMENT NUMBER
    END OF XT_VBRK.
    **STRUCTURE FOR BILLING DOCUMENT ITEM - VBRP
    TYPES: BEGIN OF XT_VBRP,
    INVPOSNR TYPE VBRP-POSNR,          "BILLING ITEM NUMBER
    FKIMG TYPE VBRP-FKIMG,          "ACTUAL INVOICED QUANTITY
    INVNETWR TYPE VBRP-NETWR,          "NET VALUE OF THE BILLING ITEM
    END OF XT_VBRP.
    **STRUCTURE FOR FINAL INTERNAL TABLE.
    TYPES: BEGIN OF XT_FINAL,
    VBELN TYPE VBAK-VBELN,
    DELVBELN TYPE LIKP-VBELN,
    INVBELN TYPE VBRK-VBELN,
    KUNNR TYPE VBAK-KUNNR,
    POSNR TYPE VBAP-POSNR,
    DELPOSNT TYPE LIPS-POSNR,
    INVPOSNR TYPE VBRP-POSNR,
    MATNR TYPE VBAP-MATNR,
    KWMENG TYPE VBAP-KWMENG,
    NETWR TYPE VBAP-NETWR,
    INVNETWR TYPE VBRP-NETWR,
    LFDAT TYPE LIKP-LFDAT,
    LFIMG TYPE LIPS-LFIMG,
    FKIMG TYPE VBRP-FKIMG,
    NAME1 TYPE KNA1-NAME1,
    END OF XT_FINAL.
    **DATA DECLARATIONS
    DATA: V_NAME1 TYPE KNA1-NAME1,  "#EC *
          V_DELVBELN TYPE LIKP-VBELN,
          V_INVVBELN TYPE VBRK-VBELN,
          V_BUKRS TYPE T001-BUKRS,    "COMPANY CODE "#EC *
          V_AUDAT TYPE VBAK-AUDAT,
          V_VKORG TYPE VBAK-VKORG,
          V_VKGRP TYPE VBAK-VKGRP,
          V_SPART TYPE VBAK-SPART.
    **INTERNAL TABLE DECLARATIONS
    DATA: IT_VBAK TYPE STANDARD TABLE OF XT_VBAK,
          WA_VBAK TYPE XT_VBAK,
          IT_VBAP TYPE STANDARD TABLE OF XT_VBAP,
          WA_VBAP TYPE XT_VBAP,
          IT_LIKP TYPE STANDARD TABLE OF XT_LIKP,
          WA_LIKP TYPE XT_LIKP,
          IT_LIPS TYPE STANDARD TABLE OF XT_LIPS,
          WA_LIPS TYPE XT_LIPS,
          IT_VBRK TYPE STANDARD TABLE OF XT_VBRK,
          WA_VBRK TYPE XT_VBRK,
          IT_VBRP TYPE STANDARD TABLE OF XT_VBRP,
          WA_VBRP TYPE XT_VBRP,
          IT_FINAL TYPE STANDARD TABLE OF XT_FINAL,
          WA_FINAL TYPE XT_FINAL.
    **ALV DECLARATIONS
    DATA: IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
          WA_FLDCAT TYPE SLIS_FIELDCAT_ALV,
          IT_LSTHDR TYPE SLIS_T_LISTHEADER,
          WA_LSTHDR TYPE SLIS_LISTHEADER,
          IT_EVENTS TYPE SLIS_T_EVENT,
          WA_EVENTS TYPE SLIS_ALV_EVENT,
          IT_SORT TYPE SLIS_T_SORTINFO_ALV,
          IT_LAYOUT TYPE SLIS_LAYOUT_ALV.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: S_BUKRS FOR V_BUKRS NO INTERVALS NO-EXTENSION,
                    S_VBELN FOR WA_VBAK-VBELN,  "SALES DOCUMENT NUMBER
                    S_KUNNR FOR WA_VBAK-KUNNR,  "SOLD-TO-PARTY
                    S_AUDAT FOR V_AUDAT,      "SALES DOCUMENT DATE
                    S_VKORG FOR V_VKORG,      "SALES ORGANISATION
                    S_VKGRP FOR V_VKGRP,      "SALES GROUP
                    S_SPART FOR V_SPART.      "DIVISION
    SELECTION-SCREEN END OF BLOCK b1.
    *****************SCREEN VALIDATION***************
    AT SELECTION-SCREEN.
    SELECT SINGLE BUKRS FROM T001 INTO V_BUKRS WHERE BUKRS IN S_BUKRS."#EC *
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER A VALID COMPANY CODE'.
    ENDIF.
    SELECT SINGLE VBELN FROM VBAK INTO
              CORRESPONDING FIELDS OF WA_VBAK WHERE VBELN IN S_VBELN.
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER VALID SALES DOCUMENT NUMBER'.
    ENDIF.
    SELECT SINGLE KUNNR FROM VBAK INTO
              CORRESPONDING FIELDS OF WA_VBAK WHERE KUNNR IN S_KUNNR. "EC *
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER A VALID CUSTOMER NUMBER'.
    ENDIF.
    SELECT SINGLE AUDAT FROM VBAK INTO V_AUDAT WHERE AUDAT IN S_AUDAT."#EC *
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER A VALID SALES DOCUMENT DATE'.
    ENDIF.
    SELECT SINGLE VKORG FROM VBAK INTO V_VKORG WHERE VKORG IN S_VKORG."#EC *
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER A VALID SALES ORGANISATION'.
    ENDIF.
    SELECT SINGLE VKGRP FROM VBAK INTO V_VKGRP WHERE VKGRP IN S_VKGRP."#EC *
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER A VALID SALES GROUP'.
    ENDIF.
    SELECT SINGLE SPART FROM VBAK INTO V_SPART WHERE SPART IN S_SPART."#EC *
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER A VALID SALES DIVISION'.
    ENDIF.
    PERFORM GET_DATA.
    *&      Form  GET_DATA
    FORM GET_DATA .
    SELECT VBELN KUNNR
            INTO TABLE IT_VBAK
            FROM VBAK
            WHERE VBELN IN S_VBELN.
    *        BUKRS_VF IN S_BUKRS AND
    *        VKORG IN S_VKORG AND
    *        VKGRP IN S_VKGRP AND
    *        SPART IN S_SPART AND
    *        KUNNR IN S_KUNNR AND
    *        AUDAT IN S_AUDAT.
    IF IT_VBAK[] IS NOT INITIAL.
    SELECT POSNR MATNR KWMENG NETWR
            INTO TABLE IT_VBAP
            FROM VBAP
            FOR ALL ENTRIES IN IT_VBAK
            WHERE VBELN = IT_VBAK-VBELN.
    ENDIF.
    IF IT_VBAK[] IS NOT INITIAL.
    SELECT VBELN LFDAT
            INTO TABLE IT_LIKP
            FROM LIKP
            FOR ALL ENTRIES IN IT_VBAK
            WHERE VBELN = IT_VBAK-VBELN.
    ENDIF.
    IF IT_VBAP[] IS NOT INITIAL.
    SELECT POSNR LFIMG
            INTO TABLE IT_LIPS
            FROM LIPS
            FOR ALL ENTRIES IN IT_VBAP
            WHERE POSNR = IT_VBAP-POSNR.
    ENDIF.
    IF IT_LIKP[] IS NOT INITIAL.
    SELECT VBELN
            INTO TABLE IT_VBRK
            FROM VBRK
            FOR ALL ENTRIES IN IT_LIKP
            WHERE VBELN = IT_LIKP-DELVBELN.
    ENDIF.
    IF IT_LIPS[] IS NOT INITIAL.
    SELECT POSNR FKIMG NETWR
            INTO TABLE IT_VBRP
            FROM VBRP
            FOR ALL ENTRIES IN IT_LIPS
            WHERE POSNR = IT_LIPS-DELPOSNR.
    ENDIF.
    ENDFORM.                    " GET_DATA
    Edited by: srk s on Jan 29, 2008 7:33 PM
    Edited by: Alvaro Tejada Galindo on Jan 29, 2008 9:49 AM

    Hi Satish,
    I have started the new program but i have trouble with the final internal table. Since i'm using For all entries, I have declared internal tables for each table. My incomplete new program is as follows(not sure if the logic is correct till what I have coded):
    *& Report  Z_SDFLOW                                                    *
    REPORT  Z_SDFLOW  NO STANDARD PAGE HEADING.
    ********* TABLES TO BE USED ***********************
    **** VBAK - SALES DOCUMENT HEADER
    * VBAP - SALES ITEM
    * VBFA - SALES DOCUMENT FLOW
    * KNA1- CUSTOMER MASTER
    * VBRK - BILLING DOCUMENT HEADER
    * VBRP - BLLING DOCUMENT ITEM
    * LIKP - DELIVERY HEADER
    * LIPS - DELIVERY ITEM
    * TOO1 - COMPANY CODES
    * SLIS.
    TYPE-POOLS: SLIS.
    ** STRUCTURE DECLARATIONS ********
    **STRUCTURE FOR ENQUIRY.
    **STRUCTURE FOR QUOTATION.
    **STRUCTURE FOR SALES ORDER HEADER- VBAK.
    TYPES: BEGIN OF XT_VBAK,
    VBELN TYPE VBAK-VBELN,     "SALES DOCUMENT NUMBER
    KUNNR TYPE VBAK-KUNNR,     " SOLD-TO-PARTY
    END OF XT_VBAK.
    **STRUCTURE FOR SALES ORDER  ITEM-VBAP
    TYPES: BEGIN OF XT_VBAP,
    POSNR TYPE VBAP-POSNR,     " SALES ITEM NUMBER
    MATNR TYPE VBAP-MATNR,     " MATERIAL NUMBER
    KWMENG TYPE VBAP-KWMENG,   " CUMMULATIVE ORDER QUANTITY IN SALES UNITS
    NETWR TYPE VBAP-NETWR,     " NET VALUE OF THE ORDER ITEM
    END OF XT_VBAP.
    ** STRUCTURE FOR DELIVERY HEADER -LIKP
    TYPES: BEGIN OF XT_LIKP,
    DELVBELN TYPE LIKP-VBELN,           "DELIVERY DOCUMENT NUMBER
    LFDAT TYPE LIKP-LFDAT,           " DELIVERY DATE
    END OF XT_LIKP.
    **STRUCTURE FOR DELIVERY ITEM - LIPS
    TYPES: BEGIN OF XT_LIPS,
    DELPOSNR TYPE LIPS-POSNR,           " DELIVERY ITEM NUMBER
    LFIMG TYPE LIPS-LFIMG,           " ACTUAL QUANTITY DELIVERED
    END OF XT_LIPS.
    **STRUCTURE FOR BILLING DOCUMENT HEADER -VBRK
    TYPES: BEGIN OF XT_VBRK,
    INVVBELN TYPE VBRK-VBELN,          "BILLING DOCUMENT NUMBER
    END OF XT_VBRK.
    **STRUCTURE FOR BILLING DOCUMENT ITEM - VBRP
    TYPES: BEGIN OF XT_VBRP,
    INVPOSNR TYPE VBRP-POSNR,          "BILLING ITEM NUMBER
    FKIMG TYPE VBRP-FKIMG,          "ACTUAL INVOICED QUANTITY
    INVNETWR TYPE VBRP-NETWR,          "NET VALUE OF THE BILLING ITEM
    END OF XT_VBRP.
    **STRUCTURE FOR FINAL INTERNAL TABLE.
    TYPES: BEGIN OF XT_FINAL,
    VBELN TYPE VBAK-VBELN,
    DELVBELN TYPE LIKP-VBELN,
    INVBELN TYPE VBRK-VBELN,
    KUNNR TYPE VBAK-KUNNR,
    POSNR TYPE VBAP-POSNR,
    DELPOSNT TYPE LIPS-POSNR,
    INVPOSNR TYPE VBRP-POSNR,
    MATNR TYPE VBAP-MATNR,
    KWMENG TYPE VBAP-KWMENG,
    NETWR TYPE VBAP-NETWR,
    INVNETWR TYPE VBRP-NETWR,
    LFDAT TYPE LIKP-LFDAT,
    LFIMG TYPE LIPS-LFIMG,
    FKIMG TYPE VBRP-FKIMG,
    NAME1 TYPE KNA1-NAME1,
    END OF XT_FINAL.
    **DATA DECLARATIONS
    DATA: V_NAME1 TYPE KNA1-NAME1,  "#EC *
          V_DELVBELN TYPE LIKP-VBELN,
          V_INVVBELN TYPE VBRK-VBELN,
          V_BUKRS TYPE T001-BUKRS,    "COMPANY CODE "#EC *
          V_AUDAT TYPE VBAK-AUDAT,
          V_VKORG TYPE VBAK-VKORG,
          V_VKGRP TYPE VBAK-VKGRP,
          V_SPART TYPE VBAK-SPART.
    **INTERNAL TABLE DECLARATIONS
    DATA: IT_VBAK TYPE STANDARD TABLE OF XT_VBAK,
          WA_VBAK TYPE XT_VBAK,
          IT_VBAP TYPE STANDARD TABLE OF XT_VBAP,
          WA_VBAP TYPE XT_VBAP,
          IT_LIKP TYPE STANDARD TABLE OF XT_LIKP,
          WA_LIKP TYPE XT_LIKP,
          IT_LIPS TYPE STANDARD TABLE OF XT_LIPS,
          WA_LIPS TYPE XT_LIPS,
          IT_VBRK TYPE STANDARD TABLE OF XT_VBRK,
          WA_VBRK TYPE XT_VBRK,
          IT_VBRP TYPE STANDARD TABLE OF XT_VBRP,
          WA_VBRP TYPE XT_VBRP,
          IT_FINAL TYPE STANDARD TABLE OF XT_FINAL,
          WA_FINAL TYPE XT_FINAL.
    **ALV DECLARATIONS
    DATA: IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
          WA_FLDCAT TYPE SLIS_FIELDCAT_ALV,
          IT_LSTHDR TYPE SLIS_T_LISTHEADER,
          WA_LSTHDR TYPE SLIS_LISTHEADER,
          IT_EVENTS TYPE SLIS_T_EVENT,
          WA_EVENTS TYPE SLIS_ALV_EVENT,
          IT_SORT TYPE SLIS_T_SORTINFO_ALV,
          IT_LAYOUT TYPE SLIS_LAYOUT_ALV.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: S_BUKRS FOR V_BUKRS NO INTERVALS NO-EXTENSION,
                    S_VBELN FOR WA_VBAK-VBELN,  "SALES DOCUMENT NUMBER
                    S_KUNNR FOR WA_VBAK-KUNNR,  "SOLD-TO-PARTY
                    S_AUDAT FOR V_AUDAT,      "SALES DOCUMENT DATE
                    S_VKORG FOR V_VKORG,      "SALES ORGANISATION
                    S_VKGRP FOR V_VKGRP,      "SALES GROUP
                    S_SPART FOR V_SPART.      "DIVISION
    SELECTION-SCREEN END OF BLOCK b1.
    *****************SCREEN VALIDATION***************
    AT SELECTION-SCREEN.
    SELECT SINGLE BUKRS FROM T001 INTO V_BUKRS WHERE BUKRS IN S_BUKRS."#EC *
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER A VALID COMPANY CODE'.
    ENDIF.
    SELECT SINGLE VBELN FROM VBAK INTO
              CORRESPONDING FIELDS OF WA_VBAK WHERE VBELN IN S_VBELN.
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER VALID SALES DOCUMENT NUMBER'.
    ENDIF.
    SELECT SINGLE KUNNR FROM VBAK INTO
              CORRESPONDING FIELDS OF WA_VBAK WHERE KUNNR IN S_KUNNR. "EC *
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER A VALID CUSTOMER NUMBER'.
    ENDIF.
    SELECT SINGLE AUDAT FROM VBAK INTO V_AUDAT WHERE AUDAT IN S_AUDAT."#EC *
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER A VALID SALES DOCUMENT DATE'.
    ENDIF.
    SELECT SINGLE VKORG FROM VBAK INTO V_VKORG WHERE VKORG IN S_VKORG."#EC *
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER A VALID SALES ORGANISATION'.
    ENDIF.
    SELECT SINGLE VKGRP FROM VBAK INTO V_VKGRP WHERE VKGRP IN S_VKGRP."#EC *
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER A VALID SALES GROUP'.
    ENDIF.
    SELECT SINGLE SPART FROM VBAK INTO V_SPART WHERE SPART IN S_SPART."#EC *
    IF SY-SUBRC <> 0.
    MESSAGE E000(Z_SD2) WITH 'ENTER A VALID SALES DIVISION'.
    ENDIF.
    PERFORM GET_DATA.
    *&      Form  GET_DATA
    FORM GET_DATA .
    SELECT VBELN KUNNR
            INTO TABLE IT_VBAK
            FROM VBAK
            WHERE VBELN IN S_VBELN.
    *        BUKRS_VF IN S_BUKRS AND
    *        VKORG IN S_VKORG AND
    *        VKGRP IN S_VKGRP AND
    *        SPART IN S_SPART AND
    *        KUNNR IN S_KUNNR AND
    *        AUDAT IN S_AUDAT.
    IF IT_VBAK[] IS NOT INITIAL.
    SELECT POSNR MATNR KWMENG NETWR
            INTO TABLE IT_VBAP
            FROM VBAP
            FOR ALL ENTRIES IN IT_VBAK
            WHERE VBELN = IT_VBAK-VBELN.
    ENDIF.
    IF IT_VBAK[] IS NOT INITIAL.
    SELECT VBELN LFDAT
            INTO TABLE IT_LIKP
            FROM LIKP
            FOR ALL ENTRIES IN IT_VBAK
            WHERE VBELN = IT_VBAK-VBELN.
    ENDIF.
    IF IT_VBAP[] IS NOT INITIAL.
    SELECT POSNR LFIMG
            INTO TABLE IT_LIPS
            FROM LIPS
            FOR ALL ENTRIES IN IT_VBAP
            WHERE POSNR = IT_VBAP-POSNR.
    ENDIF.
    IF IT_LIKP[] IS NOT INITIAL.
    SELECT VBELN
            INTO TABLE IT_VBRK
            FROM VBRK
            FOR ALL ENTRIES IN IT_LIKP
            WHERE VBELN = IT_LIKP-DELVBELN.
    ENDIF.
    IF IT_LIPS[] IS NOT INITIAL.
    SELECT POSNR FKIMG NETWR
            INTO TABLE IT_VBRP
            FROM VBRP
            FOR ALL ENTRIES IN IT_LIPS
            WHERE POSNR = IT_LIPS-DELPOSNR.
    ENDIF.
    ENDFORM.                    " GET_DATA
    Code Formatted by: Alvaro Tejada Galindo on Jan 29, 2008 9:48 AM

  • Use of for all entries in abap

    Please tell me how to use "for all entries" in linking two
    tables for retrieve informations by using corresponding fields in both the tables.plz send the codings.

    REPORT  YVCHIERSEQ                              .
    TYPE-POOLS:SLIS.
    DATA:T_VBAK TYPE STANDARD TABLE OF VBAK INITIAL SIZE 0,
         T_VBAP TYPE STANDARD TABLE OF VBAP INITIAL SIZE 0,
         W_VBAK TYPE VBAK,
         W_VBAP TYPE VBAP,
         G_VBELN TYPE VBAK-VBELN,
         W_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
         T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
         W_KEYINFO TYPE SLIS_KEYINFO_ALV.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
    SELECT-OPTIONS:S_VBELN FOR G_VBELN.
    SELECTION-SCREEN END OF BLOCK B1.
    INITIALIZATION.
    CLEAR:W_VBAK,
          W_VBAP.
    REFRESH:T_VBAK,
            T_VBAP.
    START-OF-SELECTION.
    PERFORM SUB_GET_VBAK.
    PERFORM SUB_GET_VBAP.
    PERFORM SUB_DISP_OUTPUT.
    FORM SUB_GET_VBAK.
    SELECT * FROM VBAK INTO TABLE T_VBAK WHERE VBELN IN S_VBELN.
    ENDFORM.
    FORM SUB_GET_VBAP.
    SELECT * FROM VBAP INTO TABLE T_VBAP FOR ALL ENTRIES IN T_VBAK WHERE
    VBELN = T_VBAK-VBELN.
    ENDFORM.
    FORM SUB_DISP_OUTPUT.
    W_FIELDCAT-COL_POS = 1.
    W_FIELDCAT-FIELDNAME = 'VBELN'.
    W_FIELDCAT-SELTEXT_M = 'SALESORDER'.
    W_FIELDCAT-TABNAME = 'VBAK'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-COL_POS = 2.
    W_FIELDCAT-FIELDNAME = 'ERNAM'.
    W_FIELDCAT-SELTEXT_M = 'NAME'.
    W_FIELDCAT-TABNAME = 'VBAK'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-COL_POS = 3.
    W_FIELDCAT-FIELDNAME = 'VBTYP'.
    W_FIELDCAT-SELTEXT_M = 'SD CATEGORY'.
    W_FIELDCAT-TABNAME = 'VBAK'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-COL_POS = 4.
    W_FIELDCAT-FIELDNAME = 'KUNNR'.
    W_FIELDCAT-SELTEXT_M = 'SOLD TO PARTY'.
    W_FIELDCAT-TABNAME = 'VBAK'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-COL_POS = 5.
    W_FIELDCAT-FIELDNAME = 'NETWR'.
    W_FIELDCAT-SELTEXT_M = 'NET VALUE'.
    W_FIELDCAT-TABNAME = 'VBAK'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-COL_POS = 1.
    W_FIELDCAT-FIELDNAME = 'POSNR'.
    W_FIELDCAT-SELTEXT_M = 'SALES ITEM'.
    W_FIELDCAT-TABNAME = 'VBAP'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-COL_POS = 2.
    W_FIELDCAT-FIELDNAME = 'MATNR'.
    W_FIELDCAT-SELTEXT_M = 'MATERIAL NO'.
    W_FIELDCAT-TABNAME = 'VBAP'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-COL_POS = 3.
    W_FIELDCAT-FIELDNAME = 'MATKL'.
    W_FIELDCAT-SELTEXT_M = 'MAT GROUP'.
    W_FIELDCAT-TABNAME = 'VBAP'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_FIELDCAT-COL_POS = 4.
    W_FIELDCAT-FIELDNAME = 'NETWR'.
    W_FIELDCAT-SELTEXT_M = 'NET VALUE'.
    W_FIELDCAT-TABNAME = 'VBAP'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR W_FIELDCAT.
    W_KEYINFO-HEADER01 = 'VBELN'.
    W_KEYINFO-ITEM01   = 'VBELN'.
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
      EXPORTING
      I_INTERFACE_CHECK              = ' '
        I_CALLBACK_PROGRAM             = SY-CPROG
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      IS_LAYOUT                      =
        IT_FIELDCAT                    = T_FIELDCAT
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
      IT_SORT                        =
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
      IT_EVENTS                      =
      IT_EVENT_EXIT                  =
        i_tabname_header               =   'VBAK'
        i_tabname_item                 = 'VBAP'
      I_STRUCTURE_NAME_HEADER        =
      I_STRUCTURE_NAME_ITEM          =
        is_keyinfo                     = W_KEYINFO
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
      tables
        t_outtab_header                = T_VBAK
        t_outtab_item                  = T_VBAP
    EXCEPTIONS
      PROGRAM_ERROR                  = 1
      OTHERS                         = 2
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
      ENDFORM.

  • Performance Problems with "For all Entries" and a big internal table

    We have big Performance Problems with following Statement:
    SELECT * FROM zeedmt_zmon INTO TABLE gt_zmon_help
      FOR ALL ENTRIES IN gt_zmon_help
        WHERE
        status = 'IAI200' AND
        logdat IN gs_dat AND
        ztrack = gt_zmon_help-ztrack.
    In the internal table gt_zmon_help are over 1000000 entries.
    Anyone an Idea how to improve the Performance?
    Thank you!

    >
    Matthias Weisensel wrote:
    > We have big Performance Problems with following Statement:
    >
    >  
    SELECT * FROM zeedmt_zmon INTO TABLE gt_zmon_help
    >   FOR ALL ENTRIES IN gt_zmon_help
    >     WHERE
    >     status = 'IAI200' AND
    >     logdat IN gs_dat AND
    >     ztrack = gt_zmon_help-ztrack.
    >
    > In the internal table gt_zmon_help are over 1000000 entries.
    > Anyone an Idea how to improve the Performance?
    >
    > Thank you!
    You can't expect miracles.  With over a million entries in your itab any select is going to take a bit of time. Do you really need all these records in the itab?  How many records is the select bringing back?  I'm assuming that you have got and are using indexes on your ZEEDMT_ZMON table. 
    In this situation, I'd first of all try to think of another way of running the query and restricting the amount of data, but if this were not possible I'd just run it in the background and accept that it is going to take a long time.

  • How to use single buffered table with FOR ALL ENTRIES KEYWORD

    Hai,
    I'm Using TJ02T Database table, It is single buffered table but at the same time I want to use FOR ALL ENTRIES KEYWORD , Please Help me.
    Regards,
    S.Janani

    Hi,
    FOR ALL ENTRIES will not depend on the buffering nature of the table. The single buffered table will only only buffer one record into memory. You can still use the statement to query the values, but it may have performance problems if the data volume is high since the records are not completely buffered into memory, the time will spent in getting data from DB.
    Thanks..
    Preetham S

Maybe you are looking for

  • Settlement of WBS to the Fixed Asset in another company code

    Hi Friends, I have another problem with WBS elements and fixed assets. I used WBS elements to create a AUC by AUC settlement in company code A. Then I put a second settlement rule with settlement type "FUL" in WBS element and settle AUC to a deprecia

  • Win 8.1 drivers

    Hello! I was wondering if a magic HP angel would like to tell me what drivers I can download for these two Base system devices? I am working on an HP Probook 4730s running Windows 8.1 Professional. Please let me know if there are any other details I

  • Any word on a replacement for mavericks

    I'm wondering if anyone has heard any word about a replacement for Mavericks. Even after this long using it I still think it is a really poor os. If it were not such a chore I woud revert back to Mountain lion or Snow Leopard. 

  • More FlexMotion installer BUGS!!!!

    I found out some more information about the bugs in the FlexMotion Installer. It seems if I log into an account with admin privilages, then everything runs ok. If I log into another account (without admin privilages), like say THE PRODUCTION ACCOUNT,

  • Strange numbers in TV Programmes view

    Since updating iTunes to version 11.1.3.8 yesterday, some strange numbers and letters  have appeared in the Programmes view of TV programs in iTunes. The numbers appear on the left hand side by each episode of any given TV series. It happens to all o