Delete Adjacent Records in DTP execuetion

Hi ,
I just want to delete adjacent records while loading DTP ,since Start routine logic was incorporated.
Adjacent Records are not getting deleted because of the comparison takes place in different data packages.
Pls. let me know if u have some idea..
Thanks
MohammeD.
Edited by: mohammed marika on Feb 1, 2011 12:08 PM

you need to use semantic groups in the dtp .
flag the fields that you use in the deletion
you can achieve this by activating the error handling
as such you'll make sure all the records with the same key are in the same package.
the deletion should work then

Similar Messages

  • Delete adjusent rec while DTP

    I just want to delete adjacent records while loading DTP, since the "Start routine" logic was incorporated.
    Adjacent Records are not getting deleted because of the comparison takes place in different data packages.Pls let me know how to handle this issue....

    Hi,
    Select the fields you are using to compare the records in the 'Semantic Groups' of the DTP. This will make the records with same keys fall in the same data package.
    You might have to make the DTP error handling - Valid records Update, Reporting Possible (Request Green) to enable the 'semantic groups '.
    Best Wishes,
    Mayank
    Edited by: mayank_s on Feb 14, 2011 2:10 PM

  • Sort before delete adjacent

    Hi,
    I have a requirement for delete adjacent records,
    DELETE ADJACENT DUPLICATES FROM IT_OPSALES COMPARING BUKRS ENAME NAME1 BSTKD VBELN AUDAT POSNR MATNR .
    Is it mandatory to sort internal table before delete adjacent ??
    regards
    Mark

    hi
    let us we have an table with following record in itab1
    F1  F2  F3  F4
    a    b     c    d
    c    x    y     z
    a    b    d     e
    c    x    y     h
    now here if i apply
    DELETE ADJACENT DUPLICATES FROM ITAB1 COMPARING F1 F2  .
    here no record wil be deleteted
    but if u sort the itab1
    and then apply
    DELETE ADJACENT DUPLICATES FROM ITAB1 COMPARING F1 F2  .
    u have only two record 
    spo it is always recomended to apply sort defore delete adjacent
    Cheers
    Snehi

  • Unable to delete double records from internal table

    Hi all,
    The internal table is like this
    begin of ta_itab1 occurs 0,
          mark type c,
          cnt_hedg type c,
          kunnr like vbak-kunnr,
          vbeln like vbak-vbeln,
          posnr like vbap-posnr,
          matnr like vbap-matnr,
          kwmeng like vbap-kwmeng,
          h_kwmeng like vbap-kwmeng,
          spart like vbap-spart,
          werks like vbap-werks,
          component like bom_item_api01-component,
          comp_qty like bom_item_api01-comp_qty,
          comp_qty1 like bom_item_api01-comp_qty,
          base_quan like stko_api02-base_quan,
          comp_unit like bom_item_api01-comp_unit,
          base_unit like bom_item_api01-comp_unit,
          bukrs_vf like vbak-bukrs_vf,
          end of ta_itab1.
    and used the sytax:
    sort ta_itab6 by kunnr vbeln.
    DELETE ADJACENT DUPLICATES FROM ta_itab6 comparing COMP_QTY COMP_QTY1.
    but Im unable to delete duplicate record .
    Thank You.
    anu

    Hi ,
    You need to use the fields in sort statement on whichyiu wnat to perform Delete Adjacent duplicates..
    sort ta_itab6 by kunnr vbeln COMP_QTY COMP_QTY1.
    DELETE ADJACENT DUPLICATES FROM ta_itab6 comparing COMP_QTY COMP_QTY1.

  • Problem after deleting the records........

    Hi Folks,
    Kindly help me with this report.
    At one point I am deleting the itfinal internal table w.r.t
    to HKONT.Before deleting I am having all the values for
    LIFNR and AWKey,but once deleting(as mentioned earlier) I
    am not getting these two values.The same Awkey is getting repeated
    again and again.
    Where I am going wrong.
    REPORT  zf14 no standard page heading line-size 134.                                    .
    TABLES: bkpf,bseg,lfa1,t001.
    type-pools:slis.
    TYPES : BEGIN OF x_bkpf,
             bukrs TYPE bkpf-bukrs,           " Company Code
             belnr TYPE bkpf-belnr,           " Document Number
             gjahr TYPE bkpf-gjahr,           " Fiscal year
             awkey TYPE bkpf-awkey,           " Object Key
             bldat TYPE bkpf-bldat,
             budat TYPE bkpf-budat,
             END OF x_bkpf.
    TYPES : BEGIN OF x_bseg,
             bukrs TYPE bseg-bukrs,           " Company Code
             belnr TYPE bseg-belnr,           " Document Number
             gjahr TYPE bseg-gjahr,           " Fiscal Year
             koart TYPE bseg-koart,
             hkont TYPE bseg-hkont,           " G/L Account
             ebeln TYPE bseg-ebeln,           " Purchasing Document
             lifnr TYPE bseg-lifnr,           " Vendor Code
             name1 type lfa1-name1,
             ort01 type lfa1-ort01,
            END OF x_bseg.
    TYPES : BEGIN OF x_bseg1,
             bukrs TYPE bseg-bukrs,           " Company Code
             belnr TYPE bsak-belnr,           " Document Number
             gjahr TYPE bsak-gjahr,           " Fiscal Year
             hkont TYPE bseg-hkont,           " G/L Account
             ebeln TYPE bseg-ebeln,           " Purchasing Document
             lifnr TYPE bseg-lifnr,           " Vendor Code
             wrbtr TYPE bseg-wrbtr,           " Amt.in Doc.Curr
            END OF x_bseg1.
    types:begin of x_ven,
          name1 type lfa1-name1,
          ort01 type lfa1-ort01,
          end of x_ven.
    TYPES : BEGIN OF x_final,
             bukrs TYPE bkpf-bukrs,           " Company Code
             belnr TYPE bkpf-belnr,           " Document Number
             gjahr TYPE bkpf-gjahr,           " Fiscal year
             blart TYPE bkpf-blart,           " Document Type
             awkey TYPE bkpf-awkey,           " Object Key
             bldat TYPE bkpf-bldat,
             budat TYPE bkpf-budat,
             mwskz TYPE bseg-mwskz,
             qsskz TYPE bseg-qsskz,
             wrbtr TYPE bseg-wrbtr,           " Amount in Doc Curr
             werks TYPE bseg-werks,           " Recv Facility Code
             hkont TYPE bseg-hkont,           " G/L Account
             ebeln TYPE bseg-ebeln,           " Purchasing Document
             ebeln1 type bseg-ebeln,
             lifnr TYPE bseg-lifnr,           " Vendor Code
             lifnr1 type bseg-lifnr,
             dmbtr TYPE bseg-dmbtr,
             wrtbr type bseg-wrbtr,
             vbill type bseg-wrbtr,
             tdsamt type c,
             tdsrate(4),
             shkzg TYPE bseg-shkzg,
             name1 TYPE lfa1-name1,           "vendor Name
             ort01 TYPE lfa1-ort01,           "City
             j_1icstno TYPE  j_1imovend-j_1icstno, "CST
             j_1ilstno  TYPE  j_1imovend-j_1ilstno ,"LST
          END OF x_final.
    DATA : it_bkpf   TYPE TABLE OF x_bkpf WITH HEADER LINE .
    DATA : it_bseg   TYPE TABLE OF x_bseg WITH HEADER LINE .
    DATA : it_bseg1   TYPE TABLE OF x_bseg1 WITH HEADER LINE .
    DATA : itfinal TYPE TABLE OF x_final WITH HEADER LINE.
    DATA : month_names LIKE t247 OCCURS 0 WITH HEADER LINE.
    DATA :i(2),             "month
          y TYPE int4,      "year
          c(4),
          v_bill LIKE bseg-dmbtr. " bill value
    DATA :  pos TYPE sy-tabix,
            month(99),
            month1(99).
    data:sl_no(3) value 0.
    *Alv
    DATA:itfieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
    DATA:itrepid TYPE sy-repid.
    itrepid = sy-repid.
    DATA:itevent TYPE slis_t_event.
    DATA:itlistheader TYPE slis_t_listheader.
    DATA:walistheader LIKE LINE OF itlistheader.
    DATA:itlayout TYPE slis_layout_alv.
    DATA:top TYPE slis_formname.
    DATA:itsort TYPE slis_t_sortinfo_alv WITH HEADER LINE.
    DATA:itprintparams TYPE slis_print_alv.
    DATA:itvariant TYPE disvariant.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS     : p_bukrs LIKE t001-bukrs OBLIGATORY. "Company code
    SELECT-OPTIONS : s_lifnr FOR lfa1-lifnr, "Vendor name
                     s_budat for sy-datum  obligatory,            "bkpf-budat OBLIGATORY,     "Date
                     s_gjahr FOR bseg-gjahr NO-DISPLAY.
    SELECTION-SCREEN END  OF BLOCK b1.
    AT SELECTION-SCREEN.
      SELECT SINGLE bukrs
                   INTO t001-bukrs
                   FROM t001
                   WHERE bukrs = p_bukrs.
      IF sy-subrc <> 0.
        MESSAGE e000(z_ma) WITH 'Invalid Company Code'.
      ENDIF.
      IF NOT s_lifnr[] IS INITIAL.
        SELECT SINGLE lifnr
                      INTO lfa1-lifnr
                      FROM lfa1
                      WHERE lifnr IN s_lifnr.
        IF  sy-subrc <> 0.
          MESSAGE e000(z_ma) WITH 'Invalid Vendor'.
        ENDIF.
      ENDIF.
    START-OF-SELECTION.
    *13
    if s_budat is not initial.
      if s_budat-high is not initial.
          while s_budat-low le s_budat-high.
                i = s_budat+7(2).
                if i > 3.
                    s_gjahr = s_budat+3(4).
                    append s_gjahr.
                else.
                    c = s_budat+3(4).
                    S_GJAHR = C - 1.
                    append  s_gjahr.
                endif.
                s_budat-low = s_budat-low + 1.
          endwhile.
       else.
          i = s_budat+7(2).
          if i > 3.
            s_gjahr = s_budat+3(4).
            append s_gjahr.
          else.
            c = s_budat+3(4).
            S_GJAHR = C - 1.
            append  s_gjahr.
         endif.
       endif.
    endif.
    *13
    SELECT bukrs belnr gjahr awkey bldat budat
               INTO TABLE it_bkpf
               FROM bkpf
               WHERE bukrs = p_bukrs
               AND   budat IN s_budat
               and   gjahr = s_gjahr. "13
      IF NOT it_bkpf[] IS INITIAL.
      SELECT bukrs belnr dmbtr wrbtr hkont ebeln lifnr
                   FROM  bseg
                   INTO CORRESPONDING FIELDS OF TABLE it_bseg
                   FOR   ALL ENTRIES IN it_bkpf
                   WHERE bukrs = it_bkpf-bukrs
                   and   belnr = it_bkpf-belnr
                   AND   gjahr = s_gjahr                            "13-it_bkpf-gjahr
                   AND   koart = 'K'.
      ENDIF.
    IF NOT it_bseg[] IS INITIAL.
    SELECT belnr gjahr dmbtr wrbtr hkont ebeln lifnr
                      FROM  bseg
                      INTO CORRESPONDING FIELDS OF TABLE it_bseg1
                      FOR   ALL ENTRIES IN it_bkpf
                      WHERE bukrs = it_bkpf-bukrs                    "13it_bkpf-bukrs
                      AND   belnr = it_bkpf-belnr                    "13it_bkpf-belnr
                      AND   gjahr = s_gjahr.                         "13-it_bkpf-gjahr.
      ENDIF.
    LOOP AT it_bkpf.
    MOVE-CORRESPONDING it_bkpf TO itfinal.
    APPEND itfinal.
    ENDLOOP.
    LOOP AT it_bseg.
    MOVE-CORRESPONDING it_bseg TO itfinal.
    append itfinal.
    select single name1 ort01 from lfa1 into (itfinal-name1 , itfinal-ort01) where lifnr = it_bseg-lifnr.
    select single  j_1icstno  j_1ilstno into (itfinal-j_1icstno , itfinal-j_1ilstno) from j_1imovend
        where lifnr = it_bseg-lifnr.
    ENDLOOP.
    LOOP AT it_bseg1.
    MOVE-CORRESPONDING it_bseg1 TO itfinal.
    APPEND itfinal.
    ENDLOOP.
    loop at it_bseg1.
    itfinal-ebeln1 = it_bseg1-ebeln.
    append itfinal.
    endloop.
    *Deleting the records from ITFINAL w.r.t HKONT.
    <b>LOOP AT itfinal.
    IF itfinal-hkont  NE   '0020106230' AND
       itfinal-hkont  NE    '0020106330'.
    DELETE itfinal.
    endif.
    clear itfinal.
    ENDLOOP.</b>
    *Caluculating Bill Value
    loop at itfinal.
    if itfinal-hkont =     '0020106230'.
    itfinal-tdsrate = '2%'.
    itfinal-vbill = itfinal-wrbtr * 100 / 2.
    modify itfinal.
    elseif itfinal-hkont = '0020106330'.
    itfinal-tdsrate = '4%'.
    itfinal-vbill = itfinal-wrbtr * 100 / 4.
    modify itfinal.
    endif.
    endloop.
    sort itfinal by belnr.
    delete adjacent duplicates from itfinal comparing belnr.
    format reset.
    format color col_normal.
    LOOP AT itfinal.
    sl_no = sl_no + 1.
    write:/ sy-vline,
             2  sl_no,
             7  sy-vline,
             10 itfinal-ebeln1,
             21 sy-vline,
             23 itfinal-awkey,
             44 sy-vline,
             45 itfinal-bldat,
             57 sy-vline,
             60 itfinal-vbill,
             75 sy-vline,
             76 itfinal-tdsrate,
             85 sy-vline,
             89 itfinal-wrbtr,
             106 sy-vline,
             109 itfinal-belnr,
             121 sy-vline,
             124 itfinal-budat,
             134 sy-vline.
    ENDLOOP.
    write:/ sy-uline.
    top-of-page.
    data : name1(60).
    data : month_text(127),
            string(99).
      call function 'MONTH_NAMES_GET'
       exporting
         language                    = sy-langu
    IMPORTING
      RETURN_CODE                 =
        tables
          month_names                 = month_names[]
       exceptions
         month_names_not_found       = 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.
      format reset.
      format color col_positive.
      if not s_budat-low is initial .
        read table month_names with key mnr =  s_budat-low+4(2).
        if sy-subrc = 0.
          month = month_names-ltx.
          string = 'Details of TDS (2% / 4%) On Works Contract Deducted'.
          concatenate string  'for the  Month of'  month into month_text
          separated by space.
          write :/ month_text.
          skip 1.
        endif.
      endif.
      concatenate itfinal-name1 ',' itfinal-ort01
                       into name1 separated by space.
      write :/ 'Vendor Code           :', itfinal-lifnr.
      write :/ 'Vendor Name and City  :', name1.
      skip 1.
      write :/ 'TNGST Registration No :', itfinal-j_1ilstno,
             / 'CST Registration No   :', itfinal-j_1icstno.
      skip 1.
    Display the coloumn headings
      format reset.
      format color col_heading.
      write :/ sy-uline.
      write:/ sy-vline,
             2  'Sl_no',
             7 sy-vline,
             10 'P.O. No',
             21 sy-vline,
             22 'Invoice No',
             44 sy-vline,
             45 'Inv Date',
             57 sy-vline,
             60 'Bill value',
             75 sy-vline,
             76 'TDS Rate',
             85 sy-vline,
             89 'TDS Amount' ,
             106 sy-vline,
             108 'Doc.No.',
             121 sy-vline,
             125 'Pos Date',
             134 sy-vline,
      sy-uline.
    K.Kiran.

    Kiran,
    I am pasting code here and i am sure that the code should work now
    REPORT zf14 no standard page heading line-size 134. .
    TABLES: bkpf,bseg,lfa1,t001.
    type-pools:slis.
    TYPES : BEGIN OF x_bkpf,
    bukrs TYPE bkpf-bukrs, " Company Code
    belnr TYPE bkpf-belnr, " Document Number
    gjahr TYPE bkpf-gjahr, " Fiscal year
    awkey TYPE bkpf-awkey, " Object Key
    bldat TYPE bkpf-bldat,
    budat TYPE bkpf-budat,
    END OF x_bkpf.
    TYPES : BEGIN OF x_bseg,
    bukrs TYPE bseg-bukrs, " Company Code
    belnr TYPE bseg-belnr, " Document Number
    gjahr TYPE bseg-gjahr, " Fiscal Year
    koart TYPE bseg-koart,
    hkont TYPE bseg-hkont, " G/L Account
    ebeln TYPE bseg-ebeln, " Purchasing Document
    lifnr TYPE bseg-lifnr, " Vendor Code
    name1 type lfa1-name1,
    ort01 type lfa1-ort01,
    END OF x_bseg.
    TYPES : BEGIN OF x_bseg1,
    bukrs TYPE bseg-bukrs, " Company Code
    belnr TYPE bsak-belnr, " Document Number
    gjahr TYPE bsak-gjahr, " Fiscal Year
    hkont TYPE bseg-hkont, " G/L Account
    ebeln TYPE bseg-ebeln, " Purchasing Document
    lifnr TYPE bseg-lifnr, " Vendor Code
    wrbtr TYPE bseg-wrbtr, " Amt.in Doc.Curr
    END OF x_bseg1.
    types:begin of x_ven,
    name1 type lfa1-name1,
    ort01 type lfa1-ort01,
    end of x_ven.
    TYPES : BEGIN OF x_final,
    bukrs TYPE bkpf-bukrs, " Company Code
    belnr TYPE bkpf-belnr, " Document Number
    gjahr TYPE bkpf-gjahr, " Fiscal year
    blart TYPE bkpf-blart, " Document Type
    awkey TYPE bkpf-awkey, " Object Key
    bldat TYPE bkpf-bldat,
    budat TYPE bkpf-budat,
    mwskz TYPE bseg-mwskz,
    qsskz TYPE bseg-qsskz,
    wrbtr TYPE bseg-wrbtr, " Amount in Doc Curr
    werks TYPE bseg-werks, " Recv Facility Code
    hkont TYPE bseg-hkont, " G/L Account
    ebeln TYPE bseg-ebeln, " Purchasing Document
    ebeln1 type bseg-ebeln,
    lifnr TYPE bseg-lifnr, " Vendor Code
    lifnr1 type bseg-lifnr,
    dmbtr TYPE bseg-dmbtr,
    wrtbr type bseg-wrbtr,
    vbill type bseg-wrbtr,
    tdsamt type c,
    tdsrate(4),
    shkzg TYPE bseg-shkzg,
    name1 TYPE lfa1-name1, "vendor Name
    ort01 TYPE lfa1-ort01, "City
    j_1icstno TYPE j_1imovend-j_1icstno, "CST
    j_1ilstno TYPE j_1imovend-j_1ilstno ,"LST
    END OF x_final.
    DATA : it_bkpf TYPE TABLE OF x_bkpf WITH HEADER LINE .
    DATA : it_bseg TYPE TABLE OF x_bseg WITH HEADER LINE .
    DATA : it_bseg1 TYPE TABLE OF x_bseg1 WITH HEADER LINE .
    DATA : itfinal TYPE TABLE OF x_final WITH HEADER LINE.
    DATA : month_names LIKE t247 OCCURS 0 WITH HEADER LINE.
    DATA :i(2), "month
    y TYPE int4, "year
    c(4),
    v_bill LIKE bseg-dmbtr. " bill value
    DATA : pos TYPE sy-tabix,
    month(99),
    month1(99).
    data:sl_no(3) value 0.
    *Alv
    DATA:itfieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
    DATA:itrepid TYPE sy-repid.
    itrepid = sy-repid.
    DATA:itevent TYPE slis_t_event.
    DATA:itlistheader TYPE slis_t_listheader.
    DATA:walistheader LIKE LINE OF itlistheader.
    DATA:itlayout TYPE slis_layout_alv.
    DATA:top TYPE slis_formname.
    DATA:itsort TYPE slis_t_sortinfo_alv WITH HEADER LINE.
    DATA:itprintparams TYPE slis_print_alv.
    DATA:itvariant TYPE disvariant.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS : p_bukrs LIKE t001-bukrs OBLIGATORY. "Company code
    SELECT-OPTIONS : s_lifnr FOR lfa1-lifnr, "Vendor name
    s_budat for sy-datum obligatory, "bkpf-budat OBLIGATORY, "Date
    s_gjahr FOR bseg-gjahr NO-DISPLAY.
    SELECTION-SCREEN END OF BLOCK b1.
    AT SELECTION-SCREEN.
    SELECT SINGLE bukrs
    INTO t001-bukrs
    FROM t001
    WHERE bukrs = p_bukrs.
    IF sy-subrc <> 0.
    MESSAGE e000(z_ma) WITH 'Invalid Company Code'.
    ENDIF.
    IF NOT s_lifnr[] IS INITIAL.
    SELECT SINGLE lifnr
    INTO lfa1-lifnr
    FROM lfa1
    WHERE lifnr IN s_lifnr.
    IF sy-subrc <> 0.
    MESSAGE e000(z_ma) WITH 'Invalid Vendor'.
    ENDIF.
    ENDIF.
    START-OF-SELECTION.
    *13
    if s_budat is not initial.
    if s_budat-high is not initial.
    while s_budat-low le s_budat-high.
    i = s_budat+7(2).
    if i > 3.
    s_gjahr = s_budat+3(4).
    append s_gjahr.
    else.
    c = s_budat+3(4).
    S_GJAHR = C - 1.
    append s_gjahr.
    endif.
    s_budat-low = s_budat-low + 1.
    endwhile.
    else.
    i = s_budat+7(2).
    if i > 3.
    s_gjahr = s_budat+3(4).
    append s_gjahr.
    else.
    c = s_budat+3(4).
    S_GJAHR = C - 1.
    append s_gjahr.
    endif.
    endif.
    endif.
    *13
    SELECT bukrs belnr gjahr awkey bldat budat
    INTO TABLE it_bkpf
    FROM bkpf
    WHERE bukrs = p_bukrs
    AND budat IN s_budat
    and gjahr = s_gjahr. "13
    IF NOT it_bkpf[] IS INITIAL.
    SELECT bukrs belnr dmbtr wrbtr hkont ebeln lifnr
    FROM bseg
    INTO CORRESPONDING FIELDS OF TABLE it_bseg
    FOR ALL ENTRIES IN it_bkpf
    WHERE bukrs = it_bkpf-bukrs
    and belnr = it_bkpf-belnr
    AND gjahr = s_gjahr "13-it_bkpf-gjahr
    AND koart = 'K'.
    ENDIF.
    IF NOT it_bseg[] IS INITIAL.
    SELECT belnr gjahr dmbtr wrbtr hkont ebeln lifnr
    FROM bseg
    INTO CORRESPONDING FIELDS OF TABLE it_bseg1
    FOR ALL ENTRIES IN it_bkpf
    WHERE bukrs = it_bkpf-bukrs "13it_bkpf-bukrs
    AND belnr = it_bkpf-belnr "13it_bkpf-belnr
    AND gjahr = s_gjahr. "13-it_bkpf-gjahr.
    ENDIF.
    LOOP AT it_bkpf.
    MOVE-CORRESPONDING it_bkpf TO itfinal.
    APPEND itfinal.
    ENDLOOP.
    LOOP AT it_bseg.
    MOVE-CORRESPONDING it_bseg TO itfinal.
    append itfinal.
    select single name1 ort01 from lfa1 into (itfinal-name1 , itfinal-ort01) where lifnr = it_bseg-lifnr.
    select single j_1icstno j_1ilstno into (itfinal-j_1icstno , itfinal-j_1ilstno) from j_1imovend
    where lifnr = it_bseg-lifnr.
    ENDLOOP.
    LOOP AT it_bseg1.
    MOVE-CORRESPONDING it_bseg1 TO itfinal.
    APPEND itfinal.
    ENDLOOP.
    loop at it_bseg1.
    itfinal-ebeln1 = it_bseg1-ebeln.
    append itfinal.
    endloop.
    *Deleting the records from ITFINAL w.r.t HKONT.
    LOOP AT itfinal.
    IF itfinal-hkont NE '0020106230' AND
    itfinal-hkont NE '0020106330'.
    DELETE itfinal.
    clear itfinal.
    continue.
    else.
    clear itfinal.
    endif.
    ENDLOOP.
    *Caluculating Bill Value
    loop at itfinal.
    if itfinal-hkont = '0020106230'.
    itfinal-tdsrate = '2%'.
    itfinal-vbill = itfinal-wrbtr * 100 / 2.
    modify itfinal.
    elseif itfinal-hkont = '0020106330'.
    itfinal-tdsrate = '4%'.
    itfinal-vbill = itfinal-wrbtr * 100 / 4.
    modify itfinal.
    endif.
    endloop.
    sort itfinal by belnr.
    delete adjacent duplicates from itfinal comparing belnr.
    format reset.
    format color col_normal.
    LOOP AT itfinal.
    sl_no = sl_no + 1.
    write:/ sy-vline,
    2 sl_no,
    7 sy-vline,
    10 itfinal-ebeln1,
    21 sy-vline,
    23 itfinal-awkey,
    44 sy-vline,
    45 itfinal-bldat,
    57 sy-vline,
    60 itfinal-vbill,
    75 sy-vline,
    76 itfinal-tdsrate,
    85 sy-vline,
    89 itfinal-wrbtr,
    106 sy-vline,
    109 itfinal-belnr,
    121 sy-vline,
    124 itfinal-budat,
    134 sy-vline.
    ENDLOOP.
    write:/ sy-uline.
    top-of-page.
    data : name1(60).
    data : month_text(127),
    string(99).
    call function 'MONTH_NAMES_GET'
    exporting
    language = sy-langu
    IMPORTING
    RETURN_CODE =
    tables
    month_names = month_names[]
    exceptions
    month_names_not_found = 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.
    format reset.
    format color col_positive.
    if not s_budat-low is initial .
    read table month_names with key mnr = s_budat-low+4(2).
    if sy-subrc = 0.
    month = month_names-ltx.
    string = 'Details of TDS (2% / 4%) On Works Contract Deducted'.
    concatenate string 'for the Month of' month into month_text
    separated by space.
    write :/ month_text.
    skip 1.
    endif.
    endif.
    concatenate itfinal-name1 ',' itfinal-ort01
    into name1 separated by space.
    write :/ 'Vendor Code :', itfinal-lifnr.
    write :/ 'Vendor Name and City :', name1.
    skip 1.
    write :/ 'TNGST Registration No :', itfinal-j_1ilstno,
    / 'CST Registration No :', itfinal-j_1icstno.
    skip 1.
    Display the coloumn headings
    format reset.
    format color col_heading.
    write :/ sy-uline.
    write:/ sy-vline,
    2 'Sl_no',
    7 sy-vline,
    10 'P.O. No',
    21 sy-vline,
    22 'Invoice No',
    44 sy-vline,
    45 'Inv Date',
    57 sy-vline,
    60 'Bill value',
    75 sy-vline,
    76 'TDS Rate',
    85 sy-vline,
    89 'TDS Amount' ,
    106 sy-vline,
    108 'Doc.No.',
    121 sy-vline,
    125 'Pos Date',
    134 sy-vline,
    sy-uline.
    Thanks
    seshu

  • Delete adjacent duplicates how to use in the below select statement

    hi i have a problem
    i am suing the below select statement
    SELECT    a~extno
              a~guid_lclic       " for next select
              e~ctsim
              e~ctsex
    *revised spec 3rd
              f~guid_pobj
              f~amnt_flt
              f~amcur
              f~guid_mobj
              e~srvll     "pk
              e~ctsty     "PK
              e~lgreg  "PK
      INTO TABLE gt_sagmeld
      FROM /SAPSLL/LCLIC  as a
      INNER JOIN /sapsll/tlegsv as e on elgreg = algreg
      inner join /sapsll/legcon as f on fguid_lclic = aguid_lclic   " for ccngn1 selection
      inner join /sapsll/corcts as g on gguid_pobj = fguid_pobj
                               where   a~extno in s_extno.
      sort gt_sagmeld by guid_lclic lgreg ctsty srvll GUID_POBJ GUID_MOBJ.
      delete adjacent duplicates from gt_sagmeld comparing guid_lclic lgreg ctsty srvll GUID_POBJ GUID_MOBJ .
    now i am confused how to use delete adjacent dupliacate and on which fields
    as first table /sal../lclic primary key is guid_lclic
    and it is joined to table
    legcon by guid_lclci ( not a primary key here)
    legcon primary key is guid_legcon
    and table 3 legsv by lgreg (pk here)
    table 3 has tow more primary key srvll and ctsty also
    NOW MY QUESTIO IS TAHT IS I USE ABOVE DELETE ADJACENT STATMENT IT FETCHES 20 LAKH RECORDS
    I WANT TO REDUCE IS LET ME KNOW ON WHAT fields i need to use delete adjacen duplicates
    or use comparing all fields?
    regards
    Arora

    hi sudha
    if u see my select statement is contains four Primary keys
    srvll
    lgreg
    ctsty
    guid_lclic
    but the next table connected to this table legcon is by guid_pobj and anothe table by guid_mobj
    and if i take this gt_sagmeld to another temp table and i find abt 10 lakh uniques guid_pobj
    similary 6 lakh guid_mobj so the next slect is hanpering because of this
    not COMING TO OUR POINT IF I SORT ONLY BY OUR PRIMARY KEYS NOT TAKING INTO ACCOUNT TEH GUID_POBJ AND GUID_MOBJ
    THE ENTRIES ARE VERY LESS BUT IF I TAKE INOT ACCCOUNT IN GT_SAGMELD THE ENTRIES ARE ABT 20 LAKH
    SO I AM NOT SURE WHETHER TO TAKNE GUID_POBJ AND GUID_MOBJ INOT ACCOUNT FOR DELECTING ADJACENT DUPLICATES?
    HENCE THE QUESTION OF ON WHICH FIRLD DELETE OR COMPARING ALL FIELDS I USE?

  • Delete adjacent duplicates

    hi,
      SORT itab ASCENDING BY xxx.
      DELETE ADJACENT DUPLICATES FROM itab COMPARING xx.
    1)can i do in a loop as i need to throw in error file for those repeated record.
    2)the itab without header record is ok rite? our standard is not to use occurs but to define another working area. our standard is loop itab into wa
    thanks

    Hi,
    You can solve your prob using below code:
    DATA: ind(1), p_val like itab-field1.
    SORT itab ASCENDING field1.
    LOOP AT itab INTO wa_itab.
    CLEAR: p_val, ind.
    ON CHANGE OF field1.
    p_val = itab-field1.
    ind = 'X'.
    ENDON.
    IF itab-field1 = p_val AND NOT ind IS INITIAL.
    DELETE itab INDEX sy-tabix.
    ENDIF.
    ENDLOOP.
    Thanks.

  • Problem using DELETE ADJACENT DUPLICATES with dynamic table

    Hello All,
       In my program i have to delete duplicate records from dynamic table.
    I tried using  DELETE ADJACENT DUPLICATES FROM <DYN_TABLE> COMPARING <fieldname1> <fieldname2> but it fails in syntax check, then i tried like below:
      DATA string type string.
      string = '<fieldname1> <fieldname2>.........'.
      DELETE ADJACENT DUPLICATES FROM <DYN_TABLE> COMPARING (string).
    It also got failed at runtime.
    Please suggest how can i achieve this....
    Regards
    Munish Garg

    Hi,
    this code is worked truly.
    You can try this.
    Regards.
    DATA itab LIKE STANDARD TABLE OF mard.
    SELECT * FROM mard INTO TABLE itab UP TO 100 ROWS.
    * You define max number of the field that you need
    data : cmp01  TYPE string,
    cmp02 TYPE string,
    cmp03 TYPE string,
    cmp04 TYPE string,
    cmp05 TYPE string.
    * You fill the fields that you need, others is clear.
    cmp01  = 'MATNR'.
    cmp02 = 'WERKS'.
    CLEAR : cmp03,cmp04,cmp05.
    SORT itab BY (cmp01) (cmp02) (cmp03) (cmp04) (cmp05).
    DELETE ADJACENT DUPLICATES FROM itab COMPARING (cmp01) (cmp02) (cmp03)
    (cmp04) (cmp05).

  • Extract - Delete Adjacent Duplicates

    Hi Experts,
    As in internal tables is it possible to delete adjacent duplicate records from an extract ?
    Thanks in advance.
    Ramesh.

    Hi,
    Deleting Adjacent Duplicate Entries
    To delete adjacent duplicate entries use the following statement:
    DELETE ADJACENT DUPLICATE ENTRIES FROM <itab>
    [COMPARING <f1> <f2> ...
    |ALL FIELDS].
    The system deletes all adjacent duplicate entries from the internal table <itab>. Entries are duplicate if they fulfill one of the following compare criteria:
      Without the COMPARING addition, the contents of the key fields of the table must be identical in both lines.
      If you use the addition COMPARING <f1> <f2> ... the contents of the specified fields <f1> <f2> ... must be identical in both lines. You can also specify a field <fi> dynamically as
    the contents of a field <ni> in the form (<ni>). If <ni> is empty when the statement is executed, it is ignored. You can restrict the search to partial fields by specifying offset and length.
      If you use the addition COMPARING ALL FIELDS the contents of all fields of both lines must be identical.
    You can use this statement to delete all duplicate entries from an internal table if the table is sorted by the specified compare criterion.
    If at least one line is deleted, the system sets SY-SUBRC to 0, otherwise to 4.
    Ex.
    DATA OFF TYPE I.
    DATA: BEGIN OF LINE,
    COL1 TYPE I,
    COL2 TYPE C,
    END OF LINE.
    DATA ITAB LIKE STANDARD TABLE OF LINE
    WITH NON-UNIQUE KEY COL2.
    LINE-COL1 = 1. LINE-COL2 = 'A'. APPEND LINE TO ITAB.
    LINE-COL1 = 1. LINE-COL2 = 'A'. APPEND LINE TO ITAB.
    LINE-COL1 = 1. LINE-COL2 = 'B'. APPEND LINE TO ITAB.
    LINE-COL1 = 2. LINE-COL2 = 'B'. APPEND LINE TO ITAB.
    LINE-COL1 = 3. LINE-COL2 = 'B'. APPEND LINE TO ITAB.
    LINE-COL1 = 4. LINE-COL2 = 'B'. APPEND LINE TO ITAB.
    LINE-COL1 = 5. LINE-COL2 = 'A'. APPEND LINE TO ITAB.
    OFF = 0. PERFORM LIST.
    DELETE ADJACENT DUPLICATES FROM ITAB COMPARING ALL FIELDS.
    OFF = 14. PERFORM LIST.
    DELETE ADJACENT DUPLICATES FROM ITAB COMPARING COL1.
    OFF = 28. PERFORM LIST.
    DELETE ADJACENT DUPLICATES FROM ITAB.
    OFF = 42. PERFORM LIST.
    FORM LIST.
    SKIP TO LINE 3.
    LOOP AT ITAB INTO LINE.
    WRITE: AT /OFF LINE-COL1, LINE-COL2.
    ENDLOOP.
    ENDFORM.
    Regards,
    Bhaskar

  • Regarding SELECT FOR ALL ENTRIES AND DELETE ADJACENT DUPLICATES

    Hi,
    i got few doubts.....
        1) Is it necessary to DELETE ADJACENT DUPLICATES when we perform a SELECT FOR ALL ENTRIES ? because for all entries itself eliminates the duplicate entries?
       2) Wat Sy-subrc returns after a SELECT FOR ALL ENTRIES statement?
       I found some code where these are used
               SORT ITAB[] BY NEWKO[].
              DELETE ADJACENT DUPLICATES FORM ITAB[].
      SELECT buknr
                   kunnr
    FORM KNB1
        into table ITAB_KNB1
      FOR ALL ENTRIES IN ITAB
        where kunnr eq itab-newko.
    Regards.
    Maehsh.

    Hi Mahesh,
    To be more specific, first you should delete "adjacent duplicates" using the sorting key ( here : NEWKO ), if Itab contains other fields.
    SORT ITAB[] BY NEWKO[].
    DELETE ADJACENT DUPLICATES FORM ITAB COMPARING NEWKO.
    You can delete or not the duplicates, but, you must know that if you don't delete them in the Itab, you will retrieve them in the ITAB_KNB1.
    Concerning the return code, it works like for the "SELECT"  ( 0 = entries found / 4 = no entrie found )
    => One more thing, it's better check :
    Check not ITab[] is initial
    because, if the Itab is empty, you'll retrieve all the record of KNB1 !
    Hope this helps,
    Erwan.
    Message was edited by:
            Erwan LE BRUN

  • Deleting duplicate records

    Hi,
    Can I know is there any way to delete the duplicate recors in the internal table?
    The code i'm using seem not working.Thanks.
    SELECT *
      INTO CORRESPONDING FIELDS
        OF TABLE  i_pa0009
         FROM pa0001 INNER JOIN pa0009
        ON pa0001pernr = pa0009pernr
        WHERE bukrs IN s_ccode AND
         bankn NE ''.
    DELETE ADJACENT DUPLICATES FROM i_pa0009 COMPARING ALL FIELDS .
    or
    How can I move the company code to the i_PA0009 table with all i_PA0009 data?
    SELECT bukrs pernr INTO TABLE i_tmp
      FROM pa0001
      WHERE bukrs IN s_ccode.
      IF NOT i_tmp[] IS INITIAL.
        DELETE ADJACENT DUPLICATES FROM i_comp.
        SELECT * INTO CORRESPONDING FIELDS OF TABLE i_pa0009
        FROM pa0009
        FOR ALL ENTRIES IN i_tmp
        WHERE pernr EQ i_tmp-pernr AND
            bankn NE ''.
    endif.

    Hi,
    Yes, I would like to delete duplicate records in i_PA0009.
    But It seem it not successful to delete all as I saw there's still remain duplicate records during the debugging.
    Below here is the code i tried.
    SELECT *
       INTO CORRESPONDING FIELDS
         OF TABLE  i_p0009
         FROM pa0001 INNER JOIN pa0009
         ON pa0001pernr = pa0009pernr
         WHERE bukrs IN s_ccode AND
         bankn NE space.
      SORT i_p0009 BY pernr.
      DELETE ADJACENT DUPLICATES FROM i_p0009 COMPARING pernr endda begda.
    Second approach.  Could anyone advise on below how i can move the bukrs from i_tmp to the i_PA0009 table with the i_PA0009 data as well.
    SELECT bukrs pernr INTO TABLE i_tmp
    FROM pa0001
    WHERE bukrs IN s_ccode.
    IF NOT i_tmp[] IS INITIAL.
    DELETE ADJACENT DUPLICATES FROM i_comp.
    SELECT * INTO CORRESPONDING FIELDS OF TABLE i_pa0009
    FROM pa0009
    FOR ALL ENTRIES IN i_tmp
    WHERE pernr EQ i_tmp-pernr AND
    bankn NE space.
    endif.
    Edited by: Blue Sky on Feb 27, 2009 11:23 AM

  • Probelm with DELETE ADJACENT DUPLICATES

    Hi Guys!
    Here's the scenario, I have this syntax in my report..
    delete adjacent duplicates from it_itab comparing matkl sptag+0(6)
    The values inside the it_tab is as follows..
    20080301|01010402
    20080301|02024301
    20080305|01010402
    20080310|01010402
    when I debug it, and used the syntax delete adjacent duplicates from it_itab comparing matkl sptag+0(6),
    the output will be like this....
    20080301|01010402
    20080301|02024301
    20080305|01010402
    I dont know why this output showed up. I'm expecting do have this output
    20080301|01010402
    20080301|02024301
    Could someone explain why this happened? Is there a problem or loop hole in delete adjacent duplicate?
    Please help! thanks so much!
    Regards,
    Mackoy

    hi
    do this:
    sort it_itab by matkl sptag.
    delete adjacent....
    delete adjacent will always look for the adjacent entries, and if a dupliacte is found then it deletes the 2nd records.
    for ex , u have,
    var1
    123
    123
    124
    125
    123
    in this case....2nd record is deleted and the output will be
    123
    124
    125
    123 . if it was sorted by var1 and then delete adjacent duplicates was used then it will have unique records.
    regards,
    madhumitha

  • DELETE ADJACENT DUPLICATES FROM itab

    Hi Frends, can any one explain me about
    <b>DELETE ADJACENT DUPLICATES FROM itab</b>
    and can any one give me sample program using the above statement.
    full points will be given for good example
    Thanks and Regards
    Vijaya

    i am sending 2 programs to  u:
    DESCRIPTION: INTERACTIVE REPORT FOR SALES DOCUMENT
    *FOR PRINTING SALES DOCUMENT HEADER, SALES DOCUMENT DETAILS, PARTNER
                 DETAILS, SCHEDULE LINE DATA.
             D A T A D E C L A R A T I O N S                             *
    INCLUDE z8vg_isro1.
    INITIALIZATION.
      v_chkbox = ' '.
      v_chkbox1 = ''.
                   S T A R T  O F  S E L E C T I O N                     *
      SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-028.
      SELECT-OPTIONS: s_vbeln FOR i_vbak-vbeln.
      "FOR RANGE OF VALUES.
      SELECTION-SCREEN END  OF  BLOCK bl1.
      A T  S E L E C T I O N  S C R E E N ( V A L I D A T I O N S )      *
    AT SELECTION-SCREEN.
    Check if record exists or not.
      PERFORM  zf_validations.
                   S T A R T  O F  S E L E C T I O N                     *
    START-OF-SELECTION.
    *this is event blocks which is  executed when the user chooses the
    *corresponding function key
      REFRESH i_ucomm.
      CLEAR i_ucomm.
      i_ucomm-ucomm = 'G002'.                               " schdl data
      APPEND i_ucomm.
      SET PF-STATUS 'MENU2' EXCLUDING i_ucomm.
      " MENU BAR STATUS.
    *populating sales order header data , item data , partner data ,
    *schedule data
      PERFORM  zf_select_headerdata.
    AT USER-COMMAND.
    "This event is executed whenever the user presses a menu option 'execute
      "' in the list
      CASE sy-ucomm.
        WHEN 'EX01'.                            "Cancel
          LEAVE PROGRAM.
        WHEN 'GO01'.                            "for item data
          vflag = '0'.
          REFRESH i_ucomm.
          CLEAR i_ucomm.
          i_ucomm-ucomm = 'GO01'.                " item data
          APPEND i_ucomm.
          SET PF-STATUS 'MENU2' EXCLUDING i_ucomm .
          PERFORM zf_select_details.
        WHEN 'G002'.                            "for schedule data .
          REFRESH i_ucomm.
          CLEAR i_ucomm.
          i_ucomm-ucomm = 'G000'.
          APPEND i_ucomm.
          APPEND 'GO01' TO i_ucomm.
          APPEND 'G002' TO i_ucomm.
          SET PF-STATUS 'MENU2' EXCLUDING i_ucomm .
          PERFORM zf_scheduledata .
        WHEN 'G000'.
          "function code for displaying partner details.
          REFRESH i_ucomm.
          CLEAR i_ucomm.
          i_ucomm-ucomm = 'G000'.
          APPEND i_ucomm.
          APPEND 'GO01' TO i_ucomm.
          APPEND 'G002' TO i_ucomm.
          SET PF-STATUS 'MENU2' EXCLUDING i_ucomm .
          IF vflag = '1'.
            PERFORM zf_partnerdetails.
            " FOR PARTNER DETAILS OF HEADER
          ELSE.
            PERFORM zf_partnerdetails1.
            " FOR PARTNER DETAILS OF SALES ORDER ITEMS .
          ENDIF.
        WHEN 'BACK'.
          LEAVE PROGRAM.
      ENDCASE.
    *&      FORM TOP_OF_PAGE
    TOP-OF-PAGE DURING LINE-SELECTION.
    printing header for secondary list of report.
      PERFORM zf_tols.
    TOP-OF-PAGE.
    printing hearder for basic list of report
      PERFORM zf_top.
    *&      Form  VALIDATIONS
          subroutine to check whether record exists or not
    -->  p1        text
    <--  p2        text
    FORM zf_validations .
      SELECT  SINGLE vbeln  FROM vbak
                     INTO  i_vbak-vbeln
                           WHERE vbeln IN s_vbeln.
      EXIT.
    CHECK IF THE RECORD EXISTS OR NOT.
      IF sy-subrc <> 0.
        MESSAGE e001.
      ENDIF.
    ENDFORM.                    " VALIDATIONS
    *&      Form  SELECT_HEADERDATA
    subroutine for populating header data and other details.
    -->  p1        text
    <--  p2        text
    FORM zf_select_headerdata .
    *refreshing all the internal tables.
      CLEAR i_vbak.
      REFRESH i_vbak.
      CLEAR i_vbap.
      REFRESH i_vbap.
      CLEAR i_vbpa.
      REFRESH i_vbpa.
      CLEAR i_vbep.
      REFRESH i_vbep.
    *populating sales order header data , item data , partner data ,
    *schedule data
      SELECT vbeln
             erdat
             vkorg
             FROM vbak
            INTO TABLE i_vbak
                  WHERE vbeln IN s_vbeln.
      IF NOT i_vbak[] IS INITIAL.
        SELECT vbeln
               posnr
               matnr FROM vbap
               INTO TABLE i_vbap
               FOR ALL ENTRIES IN i_vbak
               WHERE vbeln = i_vbak-vbeln.
      ENDIF.
      IF sy-subrc <> 0.
        MESSAGE e004.
      ENDIF.
      SORT i_vbap BY vbeln posnr.
      " SORTING TABLE WITH KEY FIELDS .
      REFRESH i_mat.
      CLEAR i_mat.
    fetching of unique material numbers  corresponding sales orderno.
      LOOP AT i_vbap.
        i_mat-matnr = i_vbap-matnr.
        APPEND i_mat.
      ENDLOOP.
      SORT i_mat BY matnr.                      " sorting of material nos.
      IF sy-SUBRC = 0.
    deleting duplicate entries from table
      DELETE ADJACENT DUPLICATES  FROM i_mat
                               COMPARING matnr.
    *endif.
      REFRESH i_mat1.
      CLEAR i_mat1.
    populating material no and dscription .
      SELECT matnr
             maktx FROM makt
                    INTO TABLE i_mat1
                    FOR ALL ENTRIES IN i_mat
                    WHERE matnr = i_mat-matnr.
      SELECT  vbeln
              posnr
              parvw
              kunnr
              FROM vbpa
              INTO TABLE i_vbpa
              FOR ALL ENTRIES IN i_vbap
              WHERE vbeln = i_vbap-vbeln .
      SORT i_vbap BY vbeln posnr.
      REFRESH i_tvbpa.
      REFRESH i_tpartf.
      CLEAR i_tpartf.
    *FOR FETCHING UNIQUE PARTNER FUNCTIONS
      LOOP AT i_vbpa.
        i_tpartf-parvw = i_vbpa-parvw.
        APPEND i_tpartf.
      ENDLOOP.
      SORT i_tpartf BY parvw.
      DELETE ADJACENT DUPLICATES  FROM i_tpartf
                                COMPARING parvw.
      SELECT spras
             parvw
             vtext
             FROM tpart
             INTO TABLE i_tvbpa
             FOR ALL ENTRIES IN i_tpartf
             WHERE parvw = i_tpartf-parvw AND spras = sy-langu.
      IF NOT i_vbap[] IS INITIAL.
        SELECT vbeln
               posnr
               etenr
               ettyp
               lfrel
               edatu
               FROM  vbep
               INTO TABLE i_vbep
               FOR ALL ENTRIES IN i_vbap
               WHERE vbeln = i_vbap-vbeln.
      ENDIF.
      SORT i_vbap BY vbeln posnr.
    to fetch data from internal table to print report
      LOOP AT  i_vbak.
        WRITE:/1 sy-vline,10   v_chkbox AS CHECKBOX, i_vbak-vbeln,28
        sy-vline,
                30 i_vbak-erdat,48 sy-vline,
                50 i_vbak-vkorg, 132 sy-vline.
      ENDLOOP.
      ULINE.
    ENDFORM.                    " SELECT_HEADERDATA
    *&      Form  ZF_SELECT_DETAILS
         SUBROUTINE  FOR DISPLAYING SELECTED ITEM DETAILS DATA
    -->  p1        text
    <--  p2        text
    FORM zf_select_details .
      vflag = 0.
      WRITE:/1 sy-vline,10 text-006 COLOR 3,28 sy-vline,
            30 text-007 COLOR 3, 48 sy-vline,
            50 text-008 COLOR 3, 68 sy-vline,
            70 text-022 COLOR 3, 132 sy-vline.
      ULINE.
      CLEAR i_selvbap.
      CLEAR i_final.
      REFRESH i_selvbap.
      REFRESH i_final.
      CLEAR i_mat1.
      vnline = 7.
      DO.
        READ LINE vnline FIELD VALUE i_vbak-vbeln v_chkbox.
        " READING LINES FROM BASIC LIST.
        IF sy-subrc <> 0. " no lines read.
          EXIT.
        ENDIF.
        IF v_chkbox = 'X'.
          " checking of selected items from basic list.
    *alpha conversion function - During conversion from the external to the
    *internal format, the system checks to see
    *if input is purely nummeric or not ,if not all spaces to the left of
    *the value are filled with zeroes ('0').
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = i_vbak-vbeln
            IMPORTING
              output = i_selvbap-vbeln.
          APPEND i_selvbap.
          " appending values from header line to body.
          flag = flag + 1.
          " TO CHECK VALUE OF CHECKBOX.
          CLEAR i_vbak.
          " clearing of header line after appending.
        ENDIF.
        vnline = vnline + 1.
      ENDDO.
      IF flag <> 0.
        CLEAR i_final.
        CHECK NOT i_selvbap[] IS INITIAL.
        LOOP AT i_selvbap.
          LOOP AT i_vbap WHERE vbeln = i_selvbap-vbeln.
            READ TABLE i_mat1 WITH KEY matnr = i_vbap-matnr BINARY SEARCH.
         IF sy-subrc = 0.
            i_final-vbeln = i_vbap-vbeln.
            i_final-posnr = i_vbap-posnr.
            i_final-matnr = i_vbap-matnr.
            i_final-maktx = i_mat1-maktx.
            APPEND i_final.
            CLEAR i_mat1.
         ENDIF.
          ENDLOOP.
          CLEAR i_selvbap.
          CLEAR i_vbap.
          CLEAR i_final.
        ENDLOOP.
      ENDIF.
      IF flag = 0.
        MESSAGE e005.
      ENDIF.
    to fetch data from internal table to print report
      LOOP AT i_final.
       WRITE:/1 sy-vline,10 v_chkbox1 AS CHECKBOX,i_final-vbeln,28 sy-vline
             30 i_final-posnr, 48 sy-vline,
             50 i_final-matnr, 68 sy-vline,
             70 i_final-maktx,
             132 sy-vline.
      ENDLOOP.
      ULINE.
    ENDFORM.                    " ZF_SELECT_DETAILS
    *&      Form  ZF_TOLS
          text
    -->  p1        text
    <--  p2        text
    FORM zf_tols .
    *printing header of secondary list
      ULINE.
      WRITE:/10 text-023,20 text-001 COLOR 4, 45 text-019 COLOR 4.
      WRITE: 80 text-024,90  sy-datum .
      WRITE:/10 text-025,20 text-027,80 text-026,90  sy-pagno.
      WRITE:/.
      ULINE.
    ENDFORM.                    " ZF_TOLS
    *&      Form  ZF_TOP
          text
    -->  p1        text
    <--  p2        text
    FORM zf_top .
    *printing header of basic list
      ULINE.
      WRITE:/10 text-023,20 text-001 COLOR 4 ,45 text-002 COLOR 4.
      WRITE: 80 text-024, 90  sy-datum.
      WRITE:/10 text-025,20 text-027,80 text-026,90  sy-pagno.
      ULINE.
      WRITE:/1 sy-vline, 10 text-003  COLOR 3 ,28 sy-vline,
            30 text-004 COLOR 3 ,48 sy-vline,
            50 text-005 COLOR 3 ,132 sy-vline.
      ULINE.
    ENDFORM.                    " ZF_TOP
    *&      Form  ZF_PARTNERDETAILS
         SUBROUTINE  FOR DISPLAYING SELECTED PARTNER DETAILS DATA
    -->  p1        text
    <--  p2        text
    FORM zf_partnerdetails .
      IF vflag = 1.
        WRITE:/1 sy-vline,10 text-016 COLOR 3,28 sy-vline,
             30 text-017 COLOR 3,48 sy-vline,
               30 text-018 COLOR 3,48 sy-vline,
               70 text-021 COLOR 3, 132 sy-vline.
        ULINE.
        CLEAR i_selvbpa.
        REFRESH i_selvbpa.
        " clearing work area and body of internal tables
        REFRESH i_finalpd.
        vnline = 7.
        DO.
          CLEAR i_selvbpa.
          READ LINE vnline FIELD VALUE i_vbak-vbeln v_chkbox.
          " READING LINES FROM BASIC LIST.
          IF sy-subrc <> 0.
            " NO LINES READ
            EXIT.
          ENDIF.
          IF v_chkbox = 'X'.
            " if any value is selected
    *converts any number into a string fill with zeroes, with the number at
    *the extreme right.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                input  = i_vbak-vbeln
              IMPORTING
                output = i_selvbpa-vbeln.
            APPEND i_selvbpa.
            CLEAR i_vbak.
            flag = flag + 1.
          ENDIF.
          vnline = vnline + 1.
        ENDDO.
        IF flag <> 0.
          CHECK NOT i_selvbpa[] IS INITIAL.
          LOOP AT i_selvbpa.
            LOOP AT i_vbpa WHERE vbeln = i_selvbpa-vbeln.
             READ TABLE i_tvbpa WITH KEY parvw = i_vbpa-parvw BINARY SEARCH
         IF sy-subrc = 0..
              i_finalpd-vbeln = i_vbpa-vbeln.
              i_finalpd-posnr = i_vbpa-posnr.
              i_finalpd-parvw = i_vbpa-parvw.
              i_finalpd-vtext = i_tvbpa-vtext.
              APPEND i_finalpd.
              CLEAR i_tvbpa.
         ENDIF.
            ENDLOOP.
          ENDLOOP.
        ENDIF.
        IF flag = 0.
          MESSAGE e005.
        ENDIF.
        LOOP AT i_finalpd.
          WRITE:/1 sy-vline,10 i_finalpd-vbeln, 28 sy-vline,
              30 i_finalpd-posnr, 48 SY-VLINE,
                 30 i_finalpd-parvw, 48 sy-vline,
                 70 i_finalpd-vtext, 132 sy-vline.
        ENDLOOP.
        ULINE.
      ENDIF.
    ENDFORM.                    " ZF_PARTNERDETAILS
    *&      Form  ZF_SCHEDULEDATA
         SUBROUTINE  FOR DISPLAYING SELECTED ITEM  SCHEDULE  DATA
    -->  p1        text
    <--  p2        text
    FORM zf_scheduledata .
      vflag = 0.
      WRITE:/1 sy-vline,10 text-009 COLOR 3,18 sy-vline,
            20 text-011 COLOR 3,38 sy-vline,
            40 text-012 COLOR 3,58 sy-vline,
            60 text-013 COLOR 3,78 sy-vline,
            80 text-020 COLOR 3,98 sy-vline,
           100 text-015 COLOR 3,132 sy-vline.
      ULINE.
      CLEAR i_selvbep.
      REFRESH i_selvbep.
      vnline1 = 5.
      CLEAR flag.
      CLEAR i_final.
      REFRESH i_finalsd.
      DO.
        READ LINE vnline1 FIELD VALUE i_final-vbeln v_chkbox1 i_final-posnr
        .       " READING LINES FROM BASIC LIST.
        IF sy-subrc <> 0.
          EXIT.
        ENDIF.
        IF v_chkbox1 = 'X'.
    *converts any number into a string fill with zeroes, with the number at
    *the extreme right
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = i_final-vbeln
            IMPORTING
              output = i_selvbep-vbeln.
          i_selvbep-posnr = i_final-posnr.
          APPEND i_selvbep.
          CLEAR i_final.
          flag = flag + 1.
        ENDIF.
        vnline1 = vnline1 + 1.
      ENDDO.
      IF flag <> 0.
        CHECK NOT i_selvbep[] IS INITIAL.
        LOOP AT i_selvbep.
          LOOP AT i_vbep WHERE vbeln = i_selvbep-vbeln AND posnr =
          i_selvbep-posnr.
            i_finalsd-vbeln = i_vbep-vbeln.
            i_finalsd-posnr = i_vbep-posnr.
            i_finalsd-etenr = i_vbep-etenr.
            i_finalsd-ettyp = i_vbep-ettyp.
            i_finalsd-lfrel = i_vbep-lfrel.
            i_finalsd-edatu = i_vbep-edatu.
            APPEND i_finalsd.
            CLEAR i_selvbep.
            CLEAR i_vbep.
            CLEAR i_finalsd.
          ENDLOOP.
        ENDLOOP.
      ENDIF.
      IF flag = 0.
        MESSAGE e005.
      ENDIF.
      LOOP AT i_finalsd.
        WRITE:/1 sy-vline,10 i_finalsd-vbeln,18 sy-vline,
              20 i_finalsd-posnr, 38 sy-vline,
              40 i_finalsd-etenr, 58 sy-vline,
              60 i_finalsd-ettyp, 78 sy-vline,
              80 i_finalsd-lfrel, 98 sy-vline,
             100 i_finalsd-edatu,132 sy-vline.
        CLEAR i_finalsd.
      ENDLOOP.
      ULINE.
    ENDFORM.                    " ZF_SCHEDULEDATA
    *&      Form  ZF_PARTNERDETAILS1
          text
    -->  p1        text
    <--  p2        text
    FORM zf_partnerdetails1 .
      vflag = 1.
      WRITE:/1 sy-vline,10 text-016 COLOR 3,18 sy-vline,
              20 text-017 COLOR 3,38 sy-vline,
              40 text-018 COLOR 3,58 sy-vline,
              60 text-021 COLOR 3,78 sy-vline,
              132 sy-vline.
      ULINE.
      CLEAR i_selvbpa1.
      REFRESH i_selvbpa1.
      REFRESH i_finalpd1.
      vnline1 = 7.
      DO.
       CLEAR I_SELVBEP.
        READ LINE vnline1 FIELD VALUE i_final-vbeln v_chkbox1 i_final-posnr
        .       " READING LINES FROM BASIC LIST.
        IF sy-subrc <> 0.
          EXIT.
        ENDIF.
        IF v_chkbox1 = 'X'.
    *converts any number into a string fill with zeroes, with the number at
    *the extreme right
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = i_final-vbeln
            IMPORTING
              output = i_selvbpa1-vbeln.
          i_selvbpa1-posnr = i_final-posnr.
          APPEND i_selvbpa1.
          CLEAR i_final.
          flag = flag + 1.
        ENDIF.
        vnline1 = vnline1 + 1.
      ENDDO.
      IF flag <> 0.
        CLEAR i_vbpa.
        CLEAR i_finalpd1.
        CHECK NOT i_selvbpa1[] IS INITIAL.
        LOOP AT i_selvbpa1.
          LOOP AT i_vbpa WHERE vbeln = i_selvbpa1-vbeln.
            CLEAR i_finalpd1.
         IF sy-subrc = 0.
            i_finalpd1-vbeln = i_vbpa-vbeln.
            IF i_vbpa-posnr = 0 OR i_vbpa-posnr = ''.
              i_finalpd1-parvw1 = 'NO DATA EXISTS'.
            ELSE.
              i_finalpd1-posnr = i_vbpa-posnr.
              i_finalpd1-parvw = i_vbpa-parvw.
              i_finalpd1-vtext = i_vbpa-vtext.
              i_finalpd1-kunnr = i_vbpa-kunnr.
            ENDIF.
            APPEND i_finalpd1.
            IF i_finalpd1-vbeln = i_selvbpa1-vbeln.
              EXIT.
            ENDIF.
            CLEAR i_vbpa.
            CLEAR i_finalpd1.
          ENDIF.
          ENDLOOP.
        ENDLOOP.
      ENDIF.
      IF flag = 0.
        MESSAGE e005.
      ENDIF.
    fetching data from internal table for printing.
      LOOP AT i_finalpd1.
        WRITE:/1 sy-vline,10 i_finalpd1-vbeln,18 sy-vline,
             20 I_FINALPD1-POSNR, 38 SY-VLINE,
               40 i_finalpd1-parvw1,
             58 SY-VLINE,
               60 i_finalpd1-vtext,
             78 SY-VLINE,
               80 i_finalpd1-kunnr,
              132 sy-vline.
      ENDLOOP.
      ULINE.
    ENDFORM.                    " ZF_PARTNERDETAILS1
    2nd is :-
    REPORT  Z8NB_SHA10_1
            NO STANDARD PAGE HEADING
            LINE-COUNT 30
            LINE-SIZE 170
            MESSAGE-ID Z8NBSHADOW.
                  T A B L E    D E C L A R A T I O N                     *
    TABLES : LIKP. " Delivery Header.
                  T Y P E      D E C L A R A T I O N                     *
    **-- Type decleration for Delivery Header
    TYPES : BEGIN OF T_LIKP,
              VBELN LIKE LIKP-VBELN,    " Delivery Number
              ERDAT LIKE LIKP-ERDAT,    " Date on which record was craeted
              KUNNR LIKE LIKP-KUNNR,    " Sold-to-party
              KUNAG LIKE LIKP-KUNAG,    " Ship-to-party
              TRMTYP LIKE LIKP-TRMTYP,  " Means of transport
            END OF T_LIKP.
    **-- Type decleration for Delivery Items
    TYPES : BEGIN OF T_LIPS,
              VBELN LIKE LIPS-VBELN,    " Delivery Number
              POSNR LIKE LIPS-POSNR,    " Delivery Item Number
              MATNR LIKE LIPS-MATNR,    " Material Number
              LFIMG LIKE LIPS-LFIMG ,   " DELIVERED QTY
              MEINS LIKE LIPS-MEINS,    " Unit of Measurement
              BRGEW LIKE LIPS-BRGEW,    " Gross Weight
              GEWEI LIKE LIPS-GEWEI,    " Weight Unit
              VOLUM LIKE LIPS-VOLUM,    " Volumn
              VOLEH LIKE LIPS-VOLEH,    " Volumn Unit
            END OF T_LIPS.
    **-- Type decleration for Customer Details
    TYPES : BEGIN OF T_KNA1,
              KUNNR LIKE KNA1-KUNNR,    " Customer Number
              NAME1 LIKE KNA1-NAME1,                            " Name1
              NAME2 LIKE KNA1-NAME2,                            " Name2
              STRAS LIKE KNA1-STRAS,    " House/ Street Number
              REGIO LIKE KNA1-REGIO,    " Region
              ORT01 LIKE KNA1-ORT01,    " City
              LAND1 LIKE KNA1-LAND1,    " Country Key
              TELF1 LIKE KNA1-TELF1,    " First Telephone Number
           END OF T_KNA1.
    **-- Type decleration for Partner Function
    TYPES : BEGIN OF T_KNVP,
            KUNNR LIKE KNVP-KUNNR,      " Customer Number
            PARVW LIKE KNVP-PARVW,      " Partner Function
            KUNN2 LIKE KNVP-KUNN2,      " Cust no of business partner
            END OF T_KNVP.
    **-- Type decleration for Shipment Header
    TYPES : BEGIN OF T_VTTK,
            TKNUM LIKE VTTK-TKNUM,      " Shipment Number
            TNDR_CRNM LIKE VTTK-TNDR_CRNM,   " Carrier
            END OF T_VTTK.
    **-- Type decleration for Shipment Item
    TYPES : BEGIN OF T_VTTP,
            TKNUM LIKE VTTP-TKNUM,      " Shipment Number
            VBELN LIKE VTTP-VBELN,      " Order Number
            END OF T_VTTP.
    **-- Type decleration for Material Description
    TYPES : BEGIN OF T_MAKT,
            MATNR LIKE MAKT-MATNR,      " Material Number
            MAKTX LIKE MAKT-MAKTX,      " Material Description
            END OF T_MAKT.
    **-- Type decleration for Final table containing all item details
    TYPES : BEGIN OF T_FINAL,
            VBELN LIKE LIPS-VBELN,    " Delivery Number
            POSNR LIKE LIPS-POSNR,    " Delivery Item Number
            MATNR LIKE LIPS-MATNR,    " Material Number
            LFIMG LIKE LIPS-LFIMG ,   " DELIVERED QTY
            MEINS LIKE LIPS-MEINS,    " Unit of Measurement
            BRGEW LIKE LIPS-BRGEW,    " Gross Weight
            GEWEI LIKE LIPS-GEWEI,    " Weight Unit
            VOLUM LIKE LIPS-VOLUM,    " Volumn
            VOLEH LIKE LIPS-VOLEH,    " Volumn Unit
            MAKTX LIKE MAKT-MAKTX,    " Material Description
            END OF T_FINAL.
             C O N S T A N T     D E C E L E R A T I O N                 *
    CONSTANTS: C_RE(4) TYPE C VALUE 'RE',  "Bill-to-party
               C_EQ(4) TYPE C VALUE 'EQ',  "Equal To
               C_I(2) TYPE C VALUE 'I'.    "Inclusion
             V A R I A B L E     D E C E L E R A T I O N                 *
    DATA : V_SUM TYPE LIPS-LFIMG,       "For calculating total of Quantity.
           V_SUM_FINAL TYPE LIPS-LFIMG, "For displaying total
           V_DESC TYPE C LENGTH 20.     "Storing Description
              I N T E R N A L      D E C L A R A T I O N                 *
    **-- Internal table for delivery header data
    DATA: IT_LIKP TYPE STANDARD TABLE OF T_LIKP WITH HEADER LINE,
    **-- Internal table for delivery item data
          IT_LIPS TYPE STANDARD TABLE OF T_LIPS WITH HEADER LINE,
    **-- Internal table for bill-to-party details
          IT_KNA1 TYPE STANDARD TABLE OF T_KNA1 WITH HEADER LINE,
    **-- Internal table to store partner function data
          IT_KVNP TYPE STANDARD TABLE OF T_KNVP WITH HEADER LINE,
    **-- Internal table for shipment header data
          IT_VTTK TYPE STANDARD TABLE OF T_VTTK WITH HEADER LINE,
    **-- Internal table for shipmant item data
          IT_VTTP TYPE STANDARD TABLE OF T_VTTP WITH HEADER LINE,
    **-- Internal table for material description
          IT_MAKT TYPE STANDARD TABLE OF T_MAKT WITH HEADER LINE,
    **-- Internal table for final item details
          IT_FINAL TYPE STANDARD TABLE OF T_FINAL WITH HEADER LINE,
    **-- Temporary internal table for Shipment Item
          IT_VTTP_TEMP TYPE STANDARD TABLE OF T_VTTP WITH HEADER LINE,
    **-- Temporary internal table for delivery item
          IT_LIPS_TEMP TYPE STANDARD TABLE OF T_LIPS WITH HEADER LINE,
    **-- Temporary internal table for delivery header
          IT_LIKP_TEMP TYPE STANDARD TABLE OF T_LIKP WITH HEADER LINE.
    **-- Ranges for Inquiry/Quotation
    RANGES R_CUSTOMER FOR KNA1-KUNNR.
                  S E L C T I O N       S C R E E N                      *
    **-- Selection screen containing Delivery no as the obligatory field
    SELECTION-SCREEN BEGIN OF BLOCK CHARLY WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS : S_VBELN FOR LIKP-VBELN OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK CHARLY.
                         I N I T I A L I Z A T I O N                     *
    INITIALIZATION.
    **-- Clear all internal tables
      CLEAR : IT_LIKP,
              IT_LIPS,
              IT_KNA1,
              IT_KVNP,
              IT_VTTK,
              IT_VTTP,
              IT_MAKT,
              IT_FINAL,
              IT_VTTP_TEMP,
              R_CUSTOMER,
              V_SUM,
              V_SUM_FINAL,
              V_DESC.
    **-- Refresh all internal tables
      REFRESH : IT_LIKP,
                IT_LIPS,
                IT_KNA1,
                IT_KVNP,
                IT_VTTK,
                IT_VTTP,
                IT_MAKT,
                IT_FINAL,
                IT_VTTP_TEMP,
                R_CUSTOMER.
      A T  S E L E C T I O N  S C R E E N ( V A L I D A T I O N S )      *
    AT SELECTION-SCREEN.
    **-- Check the sales order number exists in the database table or not
      SELECT SINGLE VBELN
                    FROM LIKP
                    INTO IT_LIKP
                    WHERE VBELN IN S_VBELN.
    **-- If no single data selected display error message.
      IF SY-SUBRC <> 0.
        MESSAGE E000.
      ENDIF.
                   S T A R T    O F    S E L E C T I O N                 *
    START-OF-SELECTION.
    **-- Fetch data from the transprant tables into the internal tables
      PERFORM GET_DATA.
    **-- Final table for complete item data
      PERFORM FINAL_DATA.
                   E N D    O F    S E L E C T I O N                     *
    END-OF-SELECTION.
    **-- Display of Delivery Note
      PERFORM DISPLAY_DATA.
    *&      Form  GET_DATA
          text
    FORM GET_DATA .
    **-- Fetch data from Delivery Header Table ( LIKP )
      SELECT VBELN
             ERDAT
             KUNNR
             KUNAG
             TRMTYP
             FROM LIKP
             INTO TABLE IT_LIKP
             WHERE VBELN IN S_VBELN
             ORDER BY VBELN.
    **-- Check SY_SUBRC.
      IF SY-SUBRC <> 0 .
      ENDIF.
    **-- If record is present in IT_LIKP internal table then fetch data from
    **-- Delivery Item table (LIPS)
      IF  NOT IT_LIKP[] IS INITIAL.
        SELECT VBELN
               POSNR
               MATNR
               LFIMG
               MEINS
               BRGEW
               GEWEI
               VOLUM
               VOLEH
               FROM LIPS
               INTO TABLE IT_LIPS
               FOR ALL ENTRIES IN IT_LIKP
               WHERE VBELN = IT_LIKP-VBELN.
    **-- If record found, sort the internal table on delivery no and item no
        IF SY-SUBRC = 0.
          SORT IT_LIPS BY VBELN POSNR.
        ENDIF.
      ENDIF.
    **-- If record present in IT_LIPS internal table then fetch data from
    **-- Shipment Item Table where delivery number is same
      IF NOT IT_LIPS[] IS INITIAL.
        SELECT TKNUM
               VBELN
               FROM VTTP
               INTO TABLE IT_VTTP
               FOR ALL ENTRIES IN IT_LIPS
               WHERE VBELN = IT_LIPS-VBELN.
    **-- If record found, sort the internal table on shipment no
        IF SY-SUBRC = 0.
          SORT IT_VTTP BY TKNUM.
        ENDIF.
      ENDIF.
    **-- Move records in IT_LIPS to an temporary  internal table for
    **-- removing the duplicate entries of material number.
      IT_LIPS_TEMP[] = IT_LIPS[].
      SORT IT_LIPS_TEMP BY MATNR.
      DELETE ADJACENT DUPLICATES FROM IT_LIPS_TEMP
                                 COMPARING MATNR.
      IF NOT IT_LIPS_TEMP[] IS INITIAL.
    **-- Fetch Material description from MAKT for all materials in
    **-- IT_LIPS_TEMP
        SELECT MATNR
             MAKTX
             INTO TABLE IT_MAKT
             FROM MAKT FOR ALL ENTRIES IN IT_LIPS_TEMP
             WHERE MATNR = IT_LIPS_TEMP-MATNR.
    **-- If record found, sort the internal table on Matreial No.
        IF SY-SUBRC = 0.
          SORT IT_MAKT BY MATNR.
        ENDIF.
      ENDIF.
    **-- Transfer data in shipment item internal table to a temporary
    **-- internal table to delete duplicate entries of shipment number.
      IT_VTTP_TEMP[] = IT_VTTP[].
      SORT IT_VTTP_TEMP BY TKNUM.
      DELETE ADJACENT DUPLICATES FROM IT_VTTP_TEMP
                                 COMPARING TKNUM.
    **-- If record found in IT_VTTP_TEMP then fetch shipment no and carrier
    **--from Shipment Header Table(VTTK).
      IF NOT IT_VTTP_TEMP[] IS INITIAL.
        SELECT TKNUM
               TNDR_CRNM
               FROM VTTK
               INTO TABLE IT_VTTK
               FOR ALL ENTRIES IN IT_VTTP_TEMP
               WHERE TKNUM = IT_VTTP_TEMP-TKNUM.
    **-- If record found, sort the internal table on shipment no
        IF SY-SUBRC = 0.
          SORT IT_VTTK BY TKNUM.
        ENDIF.
      ENDIF.
    **-- Move the data of IT_LIKP to an internal table to remove the
    **-- duplicate entries of sold-to-party number.
      IT_LIKP_TEMP[] = IT_LIKP[].
      SORT IT_LIKP_TEMP BY KUNAG.
      DELETE ADJACENT DUPLICATES FROM IT_LIKP_TEMP
                             

  • How to delete PSA records for test

    Dear Consultants,
    There ars  some  records  in  PSA, now in order to test ETL  I  want to  delete  a part  of records  from  PSA.
    For example ,there are  100  records in PSA,  I  want to  delete  30  records  from  PSA.
    But  i  can  not  delete  records  from PSA.
    Please give me some proposals and methods  to  delete  records  from  PSA.
    Thanks a lot & Best Regards
    Ricky

    Hello,
    Why not delete the request and load again with restricted InfoPackage? Or use DTP with restriction for further loading.
    If you really want to do this, first get the technical name of the PSA, say it's /BIC/B00000111.
    Then create an InfoPackage, and set a selection field as type 6(abap routine), double click it and key in the following statement:
    delete from /BIC/B00000111 where fielda = 'AA' and REQUEST = 'REQU_XXXXX'.
    Then test run the InfoPackage. Wait for a while and corresponding records will be deleted.
    Regards,
    Frank

  • How to use 'DELETE ADJACENT DUPLICATES FROM' for deleting as some field

    How to use 'DELETE ADJACENT DUPLICATES FROM' for deleting as some field
    eg:
    I have a inner table ,it contains a field named ast_guid,now,I search ten records,contains some duplicate records in the field of ast_guid.but I can not delete the duplicate records as ast_guid.

    If the type of  inner table is standard table,  you should sort the inner table  by the fields before user 'DELETE ADJACENT DUPLICATES  ', and use COMPARING addtion.
    Edited by: Justin on Jun 28, 2009 9:48 AM

Maybe you are looking for

  • Need to print multiple sections in a group

    We have print customer invoices. Along with each invoice, we have to send 1.     A Cover Letter that is always one page 2.     Terms and conditions. This could be between 1 to 3 pages Our requirement is to have separate page numbering for each of the

  • Icloud says my apple id is good but not an icloud account?

    I have an apple id/account but icloud says it is apple id but not an icloud account...?

  • Exporting Crystal Report in PDF

    Post Author: amumahajan CA Forum: Exporting Hello guys, I'm trying to export a .rpt file into PDF. The exporting works fine without any problem. However, there is only one problem. Report has a time-based chart and the date format i want to show is d

  • How can I stop Safari from opening 99 tabs automatically

    When I first start up Safari - it automatically opens a huge number of tabs (the drop down menu on a tab right click shows an option to bookmark 99 tabs - and there are more tabs opened than I care to count). They appear to all be existing bookmarks;

  • Error while alter the table

    Hi Please let me know reasons for this below error Error starting at line 32 in command: ALTER TABLE DEVELOPMENT.BRANDING_STRINGS ADD CONSTRAINT frk_strings_brandingsdetails FOREIGN KEY (CUSTOMIZATION_ID) REFERENCES BRANDING_DETAILS (CUSTOMIZATION_ID