ME21n Multiple line items

Hi all,
I wana pass multiple line items thru bdc me21n....can any1 please help me .if u guys have some code can mail me at [email protected] will be rewarded.
my code below is not working for passing multiple items.
report y1_po_test
       no standard page heading line-size 255.
tables: mara,
        lfa1,
        eina,
        eine,
        eban,
        zdrgsah, zdrgsap,
        zdrgsup,
        t100,
        ekko,
        a004, zprice_grpsal, mvke.
*Internal Table to get the input Data
data: begin of i_input occurs 0,
        matnr like ekpo-matnr,
        asqty like ekpo-menge,
        ebeln like ekpo-ebeln,
        posnr(5),
       posnr like zdrgsap-posnr,
        invno like zdrgsap-invno,
        invdt like zdrgsah-invdt,
        netpr like zdrgsap-netpr,
        cntno like zdrgsap-cntno,
        shcnm like zdrgsah-shcnm,
        apcno like zdrgsap-apcno,
        spcno like zdrgsap-spcno,
        werks like ekpo-werks,
        lgort like ekpo-lgort,
        matkl like ekpo-matkl,
        pack(10),
        mvgr2 like mvke-mvgr2,
       dpric type p decimals 6 ,
       gpric type p decimals 6,
        end of i_input.
data: begin of i_inputxt occurs 0,
        matnr(18) ,
        asqty(13) ,
        ebeln(10) ,
        posnr(6)  ,
        invno(10) ,
        invdt(8)  ,
        netpr(11) ,
        cntno(11) ,
        shcnm(10) ,
        werks(4) ,
        lgort(4) ,
        matkl(9) ,
        pack(10),
        end of i_inputxt.
data: begin of i_error occurs 0,
        prnum like eban-banfn,
        pritm like eban-bnfpo,
        inmat like mara-matnr,
        prmat like mara-matnr,
        asqty like zdrgsap-asqty,
        prqty like eban-menge,
        remak(100),
       remark(255) type c,
      end of i_error.
data : begin of i_error1 occurs 0,
        prnum like eban-banfn,
        pritm like eban-bnfpo,
        asqty like zdrgsap-asqty,
        prqty like eban-menge,
        remak(100),
        end of i_error1.
data : begin of i_zsap occurs 0,
       ebeln like zdrgsap-ebeln,
       posnr(5),
       menge like zdrgsap-menge,
       asqty like zdrgsap-asqty,
       end of i_zsap.
data : v_ebeln like eket-ebeln.
data : begin of i_a004 occurs 0,
       matnr like a004-matnr,
       knumh like a004-knumh,
       kbetr like konp-kbetr,
       end of i_a004,
       i_a0041 like i_a004 occurs 0 with header line.
data : begin of i_konp occurs 0,
       knumh like konp-knumh,
       kbetr like konp-kbetr,
      konwa like konp-konwa,
       end of i_konp.
data : begin of i_konp1 occurs 0,
       knumh like konp-knumh,
       kbetr like konp-kbetr,
       konwa like konp-konwa,
       end of i_konp1.
data : begin of i_netpr occurs 0,
       ebeln like eket-ebeln,
       ebelp like eket-ebelp,
       matnr like ekpo-matnr,
       menge like ekpo-menge,
       netpr like ekpo-netpr,
      kbetr like konp-kbetr,
       end of i_netpr.
data : begin of i_grpsal occurs 0,
       pcode like zprice_grpsal-pcode,
       fact like zprice_grpsal-fact,
       wfact like zprice_grpsal-wfact,
       end of i_grpsal.
data : begin of i_domsal occurs 0,
       pcode like zprice_grpsal-pcode,
       fact like zprice_grpsal-fact,
       wfact like zprice_grpsal-wfact,
       end of i_domsal.
data : begin of i_zsap1 occurs 0,
       ebeln like zdrgsap-ebeln,
       posnr(5),
       asqty like zdrgsap-asqty,
       end of i_zsap1.
data: begin of bdcdata occurs 0.
        include structure bdcdata.       " Batch input: New table field
data: end of bdcdata.
      messages of call transaction
data:   messtab like bdcmsgcoll occurs 0 with header line.
data: i_mara type mara occurs 0 with header line,
      i_eina like eina occurs 0 with header line,
      i_eine like eine occurs 0 with header line.
data : begin of i_inferr occurs 0,
       matnr like eina-matnr,
       infnr like eina-infnr,
       werks like eine-werks,
       end of i_inferr.
data : begin of i_inferrc occurs 0,
       matnr like eina-matnr,
       end of i_inferrc.
*Data declaration.
data: v_file     type string,           " Variable for uploading file
      v_item(5)  type c,             " Line item number
      v_itno(2)  type n,
      p_wkurs like zdrgkurs-wkurs,
      v_matnr(20)    type c,
      v_menge(20)    type c,
      v_banfn(20)    type c,
      v_bnfpo(20)    type c,
      v_bednr(20)    type c,
      v_werks(20),
      p_lifnr(10) ,
      v_flag,
      p_lifnrtxt(10),
      p_wkurstxt(9),
      p_bsartxt(4),
      v_posnr(5), n type i,
      v_quant(13),
      v_asqty(13),
      v_prqty(13),
      v_apcno(6),
      v_spcno(4),
      v_itm(11),
      v_cnt type i,
      v_cntno(4),
      v_pack(10),
      v_order(15),
      v_lifnr(10),
      v_invdt like sy-datum,
      v_waers like ekko-waers,
      v_podat like ekko-bedat,
      v_docdt1 like sy-datum,
      v_docdt(10),
      v_fnam(132).
data : begin of i_test occurs 0,
       bnfpo like eban-bnfpo,
       matnr like eban-matnr,
       menge like eban-menge,
       bsmng like eban-bsmng,
       end of i_test.
data : begin of i_mvke occurs 0,
       matnr like mvke-matnr,
       mvgr2 like mvke-mvgr2,
       end of i_mvke.
data : begin of i_invno,
       ebeln like ekko-ebeln,
       angnr like ekko-angnr,
       end of i_invno.
data : i_final like zinvdiff occurs 0 with header line.
Constants
constants : c_pd01 like eine-werks value 'PD01'.
*Selection Screen Declarations
selection-screen begin of block b1 with frame title text-010.
parameters: p_invno like zdrgsah-invno obligatory,
            p_bsart like ekko-bsart obligatory.
selection-screen end of block b1.
start-of-selection.
To Upload the data into Internal table.
  perform f_upload_data.
To Validate the input data.
  perform f_check_data.
if i_error[] is not initial or i_error1[] is not initial.
To display the error message
   perform f_display_errors.
else.
To create PO
  perform f_process_session.
endif.
  perform f_check_calc_price.
  perform f_display_data.
perform f_update_zinvdiff.
*&      Form  f_get_filename
      text
form f_get_filename.
endform.                                 " F_get_filename
*&      Form  f_upload_data
form f_upload_data .
  select matwa as matnr asqty ebeln posnr b~invno invdt netpr cntno
    shcnm apcno spcno into table i_input
         from zdrgsah as a join zdrgsap as b on
         a~invno = b~invno
         where b~invno eq p_invno.
  select ebeln
         posnr
         menge
         asqty
         from zdrgsap into table i_zsap
         where invno = p_invno.
  loop at i_zsap.
    concatenate i_zsap-posnr(4) '0' into v_posnr.
    i_zsap1-ebeln = i_zsap-ebeln.
    i_zsap1-posnr = v_posnr.
    i_zsap1-asqty = i_zsap-asqty.
    collect i_zsap1.
    clear i_zsap1.
  endloop.
  delete adjacent duplicates  from i_zsap comparing posnr menge .
delete adjacent duplicates  from i_input comparing ebeln  posnr.
  loop at i_input.
   p_werks = i_input-werks.
    v_invdt = i_input-invdt.
    call function 'CONVERT_DATE_FORMAT'
      exporting
        i_date      = v_invdt
      importing
        e_calc_date = v_invdt.
    if i_input-apcno is initial.
      v_apcno = '0000'.
    else.
      v_apcno = i_input-apcno.
    endif.
    if i_input-spcno is initial.
      v_spcno = '0000'.
    else.
      v_spcno = i_input-spcno.
    endif.
    if i_input-cntno is initial.
      i_input-cntno = '0000'.
    endif.
    concatenate v_apcno v_spcno into i_input-pack.
   concatenate v_pack v_cntno into v_order separated by '-'.
   i_input-order = v_order.
    clear : v_itm, v_cnt, v_cntno, v_pack, v_apcno, v_spcno, v_order.
    concatenate i_input-posnr(4) '0' into v_posnr.
    select single lifnr into p_lifnr from zdrgsup
   where shcnm = i_input-shcnm.
    v_lifnr = p_lifnr.
    if sy-subrc <> 0.
      message e000(zcnc) with text-002.
    endif.
    select single * from eban
       where banfn eq i_input-ebeln
       and   bnfpo eq v_posnr.
    if sy-subrc eq 0.
      move eban-werks to i_input-werks.
      move eban-lgort to i_input-lgort.
      move eban-matkl to i_input-matkl.
      move eban-bnfpo to i_test-bnfpo.
      move eban-matnr to i_test-matnr.
      move eban-menge to i_test-menge.
      move eban-bsmng to i_test-bsmng.
      modify i_input.
      if not i_input-matnr eq i_test-matnr.
        move i_input-ebeln to i_error-prnum.
        move v_posnr to i_error-pritm.
        move i_input-matnr to i_error-inmat.
        move eban-matnr to i_error-prmat.
        i_error-remak = 'Material does not match'.
        append i_error.
        clear i_error.
      endif.
      v_quant = i_test-menge - i_test-bsmng.
      read table i_zsap1 with key ebeln = i_input-ebeln posnr = v_posnr.
      if not i_zsap1-asqty <= v_quant.
        move i_input-ebeln to i_error1-prnum.
        move i_zsap1-posnr to i_error1-pritm.
        move i_zsap1-asqty to i_error1-asqty.
       move eban-menge to i_error1-prqty.
        move v_quant to i_error1-prqty.
        i_error1-remak = 'Material Quantity does not match'.
        append i_error1.
        clear i_error1.
      endif.
      select single matnr infnr from eina
           into corresponding fields of i_eina
           where matnr eq i_input-matnr
           and lifnr eq p_lifnr.
      if sy-subrc = 0.
        append i_eina.
        check not i_eina[] is initial.
        select single * from eine
               into  i_eine
               where infnr eq i_eina-infnr
               and werks eq eban-werks.
        if sy-subrc <> 0.
          move i_input-matnr to i_inferr-matnr.
          move i_eina-infnr to i_inferr-infnr.
          move eban-werks to i_inferr-werks.
          append i_inferr.
          clear i_inferr.
        endif.
      else.
        move i_input-matnr to i_inferrc-matnr.
        append i_inferrc.
        clear i_inferrc.
      endif.
      clear : i_eina, i_eine.
      clear :  i_zsap, i_zsap1,  i_input,  v_posnr,
              v_quant, i_test.
    endif.
  endloop.
  delete adjacent duplicates from i_error1 comparing prnum pritm.
  perform chk_info_rec.
endform.                    " f_upload_data
*&      Form  f_check_data
form f_check_data .
  if not i_input[] is initial.
    select * from mara
    into table i_mara
    for all entries in i_input
    where matnr eq i_input-matnr.
  endif.
  loop at i_mara.
    read table i_input with key matnr = i_mara-matnr.
    if sy-subrc <> 0.
      write : 'Following Part Numbers are not found in MARA'.
      write : / i_input-matnr.
    endif.
  endloop.
  if i_mara[] is initial.
    loop at i_input.
      format color col_heading intensified off.
      write : 'Following Part Numbers are not found in MARA'.
      format color col_normal intensified off.
      write : / i_input-matnr.
    endloop.
  endif.
  select single wkurs into p_wkurs from zdrgkurs
    where invno = p_invno.
  if sy-subrc ne 0.
    message e000(zcnc) with text-s11.
  endif.
  call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
    exporting
      input  = p_lifnr
    importing
      output = p_lifnr.
  p_lifnrtxt = p_lifnr.
  p_wkurstxt = p_wkurs.
  p_bsartxt = p_bsart.
  loop at i_input.
    move-corresponding i_input to i_inputxt.
    append i_inputxt.
  endloop.
  select single ebeln
                angnr from ekko
                into i_invno
                where angnr = p_invno.
  if sy-subrc = 0.
    perform display_err.
  endif.
endform.                    " f_check_data
*&      Form  f_process_session
      text
form f_process_session.
  v_docdt1 = sy-datum.
  write v_docdt1 to v_docdt using edit mask '__.__.____'.
  perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=MEDOCTYPE'.
  perform bdc_field       using 'BDC_CURSOR'
                                'MEPO_TOPLINE-BSART'.
  perform bdc_field       using 'MEPO_TOPLINE-BSART'
                                 p_bsartxt.
  perform bdc_field       using 'DYN_6000-LIST'
                              '                                      1'.
  perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
  perform bdc_field       using 'BDC_OKCODE'
                                '/00'.
  perform bdc_field       using 'MEPO_TOPLINE-SUPERFIELD'
                                 p_lifnrtxt.
  perform bdc_field       using 'BDC_CURSOR'
                                'MEPO1222-BUKRS'.
  perform bdc_field       using 'MEPO1222-EKORG'
                                'SBAP'.
  perform bdc_field       using 'MEPO1222-EKGRP'
                                'PG1'.
  perform bdc_field       using 'MEPO1222-BUKRS'
                                'SBA'.
  perform bdc_field       using 'DYN_6000-LIST'
                              '                                      1'.
  perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=TABHDT2'.
  perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
  perform bdc_field       using 'BDC_OKCODE'
                                '/00'.
  perform bdc_field       using 'MEPO_TOPLINE-BSART'
                                 p_bsartxt.
  perform bdc_field       using 'MEPO_TOPLINE-SUPERFIELD'
                                 p_lifnrtxt.
********************conditions***************************************
  perform bdc_field       using 'BDC_CURSOR'
                                'KOMV-KSCHL(08)'.
  perform bdc_field       using 'KOMV-KSCHL(07)'
                                 'zot1'.
  perform bdc_field       using 'KOMV-KSCHL(08)'
                                'zinc'.
  perform bdc_field       using 'KOMV-KSCHL(09)'
                                'ziv1'.
  perform bdc_field       using 'DYN_6000-LIST'
                              '                                      1'.
  perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=V69A_KOAN'.
  perform bdc_field       using 'BDC_CURSOR'
                                'KOMV-KSCHL(01)'.
  perform bdc_field       using 'DYN_6000-LIST'
                              '                                      1'.
  perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
  perform bdc_field       using 'BDC_OKCODE'
                                '/00'.
  perform bdc_field       using 'KOMV-KSCHL(02)'
                                'zca1'.
  perform bdc_field       using 'KOMV-KSCHL(03)'
                                'zfa1'.
  perform bdc_field       using 'DYN_6000-LIST'
                              '                                      1'.
  perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=TABHDT7'.
  perform bdc_field       using 'BDC_CURSOR'
                                'KOMV-KSCHL(09)'.
  perform bdc_field       using 'DYN_6000-LIST'
                              '                                      1'.
  perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
  perform bdc_field       using 'BDC_OKCODE'
                                '/00'.
  perform bdc_field       using 'BDC_CURSOR'
                                'MEPO1229-IHRAN'.
  perform bdc_field       using 'MEPO1229-ANGNR'
                                 p_invno.
  perform bdc_field       using 'MEPO1229-IHRAN'
                                 v_invdt.
  perform bdc_field       using 'DYN_6000-LIST'
                              '                                      1'.
  perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=MEV4001BUTTON'.
  perform bdc_field       using 'BDC_CURSOR'
                                'MEPO1229-IHRAN'.
  perform bdc_field       using 'DYN_6000-LIST'
                              '                                      1'.
  perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=MEV4000BUTTON'.
  perform bdc_field       using 'BDC_CURSOR'
                                'MEPO1229-IHRAN'.
  perform bdc_field       using 'DYN_6000-LIST'
                              '                                      1'.
loop at i_inputxt.
   concatenate i_inputxt-posnr(4) '0' into v_posnr.
   concatenate 'MEPO1211-EMATN(' v_itno ')' into v_matnr.
   concatenate 'MEPO1211-MENGE(' v_itno ')' into v_menge.
   concatenate 'MEPO1211-BANFN(' v_itno ')' into v_banfn.
   concatenate 'MEPO1211-BNFPO(' v_itno ')' into v_bnfpo.
   concatenate 'MEPO1211-BEDNR(' v_itno ')' into v_bednr.
   concatenate 'MEPO1211-WERKS(' v_itno ')' into v_werks.
   v_item = v_item + 10.
   endif.
   v_itno = v_itno + 1.
   perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
   perform bdc_field       using 'BDC_OKCODE'
                                 '/00'.
   perform bdc_field       using 'BDC_CURSOR'
                                  v_matnr.
   perform bdc_field       using  v_matnr "'MEPO1211-EMATN(01)'
                                  i_inputxt-matnr.
   perform bdc_field       using  v_menge "'MEPO1211-MENGE(01)'
                                  i_inputxt-asqty.
   perform bdc_field       using  v_banfn "'MEPO1211-BANFN(01)'
                                  i_inputxt-ebeln.
   perform bdc_field       using  v_bnfpo "'MEPO1211-BNFPO(01)'
                                  i_inputxt-posnr.
   perform bdc_field       using 'DYN_6000-LIST'
                                  v_itno.
  loop at i_inputxt .
    v_itno = sy-tabix.
    clear v_fnam.
    concatenate 'MEPO1211-EMATN('  v_itno ')' into v_fnam.
    perform bdc_field       using v_fnam
                                  i_inputxt-matnr.
    clear v_fnam.
    concatenate 'MEPO1211-MENGE('  v_itno ')' into v_fnam.
    perform bdc_field       using v_fnam
                                       i_inputxt-asqty.
    clear v_fnam.
    concatenate 'MEPO1211-BANFN('  v_itno ')' into v_fnam.
    perform bdc_field       using v_fnam
                                       i_inputxt-ebeln.
    clear v_fnam.
    concatenate 'MEPO1211-BNFPO('  v_itno ')' into v_fnam.
    perform bdc_field       using v_fnam
                                       i_inputxt-posnr.
    perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
    perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
  endloop.
loop at i_inputxt from 6.
   v_itno = sy-tabix.
   clear v_fnam.
   concatenate 'MEPO1211-EMATN('  v_itno ')' into v_fnam.
   perform bdc_field       using v_fnam
                                 i_inputxt-matnr.
   clear v_fnam.
   concatenate 'MEPO1211-MENGE('  v_itno ')' into v_fnam.
   perform bdc_field       using v_fnam
                                      i_inputxt-asqty.
   clear v_fnam.
   concatenate 'MEPO1211-BANFN('  v_itno ')' into v_fnam.
   perform bdc_field       using v_fnam
                                      i_inputxt-ebeln.
   clear v_fnam.
   concatenate 'MEPO1211-BNFPO('  v_itno ')' into v_fnam.
   perform bdc_field       using v_fnam
                                      i_inputxt-posnr.
   perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
   perform bdc_field       using 'BDC_OKCODE'
                                     '/00'.
endloop.
perform bdc_field       using 'BDC_CURSOR'
                               'MEPO1320-SLFDT(01)'.
perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
perform bdc_field       using 'BDC_OKCODE'
                               '=TABHDT2'.
perform bdc_field       using 'DYN_6000-LIST'
                           '                                      2'.
perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
perform bdc_field       using 'BDC_OKCODE'
                               '=V69A_KOAK'.
perform bdc_field       using 'BDC_CURSOR'
                               'KOMV-KBETR(05)'.
perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
perform bdc_field       using 'BDC_OKCODE'
                               '=MECHECKDOC'.
perform bdc_field       using 'BDC_CURSOR'
                               'KOMV-KSCHL(01)'.
perform bdc_dynpro      using 'SAPMSSY0' '0120'.
perform bdc_field       using 'BDC_CURSOR'
                               '04/03'.
perform bdc_field       using 'BDC_OKCODE'
                               '=&ONT'.
perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
perform bdc_field       using 'BDC_OKCODE'
                               '=MEV4000BUTTON'.
perform bdc_field       using 'BDC_CURSOR'
                               'MEPO_TOPLINE-BSART'.
perform bdc_field       using 'DYN_6000-LIST'
                           '                                      2'.
perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
perform bdc_field       using 'BDC_OKCODE'
                               '/00'.
perform bdc_field       using 'BDC_CURSOR'
                               'KOMV-KBETR(08)'.
perform bdc_field       using 'KOMV-KBETR(03)'
                               '             .54'.
perform bdc_field       using 'KOMV-KBETR(08)'
                               '             .54'.
perform bdc_dynpro      using 'SAPLMEGUI' '0014'.
perform bdc_field       using 'BDC_OKCODE'
                               '=MESAVE'.
perform bdc_field       using 'BDC_CURSOR'
                               'MEPO1211-NETPR(01)'.
  perform bdc_transaction using 'ME21N'.
endform.                    "f_process_session
*&      Form  bdc_transaction
      text
     -->P_0464   text
form bdc_transaction  using    tcode.
  data: l_mstring(480).
  data: l_subrc like sy-subrc.
  data: v_mode type c.
  v_mode = 'A'.
  refresh messtab.
  call transaction tcode using bdcdata
                   mode  v_mode
                   update 'S'
                   messages into messtab.
  l_subrc = sy-subrc.
     WRITE: / 'CALL_TRANSACTION',
              TCODE,
              'returncode:'(I05),
              L_SUBRC,
              'RECORD:',
              SY-INDEX.
  loop at messtab.
    select single * from t100 where sprsl = messtab-msgspra
                              and   arbgb = messtab-msgid
                              and   msgnr = messtab-msgnr.
    if sy-subrc = 0.
      l_mstring = t100-text.
      if l_mstring cs '&1'.
        replace '&1' with messtab-msgv1 into l_mstring.
        replace '&2' with messtab-msgv2 into l_mstring.
        replace '&3' with messtab-msgv3 into l_mstring.
        replace '&4' with messtab-msgv4 into l_mstring.
      else.
        replace '&' with messtab-msgv1 into l_mstring.
        replace '&' with messtab-msgv2 into l_mstring.
        replace '&' with messtab-msgv3 into l_mstring.
        replace '&' with messtab-msgv4 into l_mstring.
      endif.
      condense l_mstring.
      if messtab-msgtyp eq 'E' or messtab-msgtyp eq 'W'.
        write: / messtab-msgtyp, l_mstring(250).
      endif.
      search  l_mstring for 'SEA'.
      if sy-subrc = 0.
        write: / messtab-msgtyp, l_mstring(250).
      endif.
    else.
      write: / messtab.
    endif.
  endloop.
endform.                    " bdc_transaction
       Start new screen                                              *
form bdc_dynpro using program dynpro.
  clear bdcdata.
  bdcdata-program  = program.
  bdcdata-dynpro   = dynpro.
  bdcdata-dynbegin = 'X'.
  append bdcdata.
endform.                    "BDC_DYNPRO
       Insert field                                                  *
form bdc_field using fnam fval.
  if fval <> space.
    clear bdcdata.
    bdcdata-fnam = fnam.
    bdcdata-fval = fval.
    append bdcdata.
  endif.
endform.                    "BDC_FIELD
*&      Form  f_display_errors
form f_display_errors .
  if i_error[] is not initial.
    format color col_heading intensified off.
    uline .
    write :/ 'PR No     ',
            (10) 'Item No',
            (20) 'PR Part No',
            (30) 'Invoiced Part No',
            (60) 'Remark'.
    uline .
    loop at i_error.
      perform f_display_color.
      write :/ i_error-prnum,
              (10) i_error-pritm ,
              (20) i_error-prmat,
              (30) i_error-inmat,
              (60) i_error-remak.
      clear i_error.
    endloop.
  endif.
  if i_error1[] is not initial.
    format color col_heading intensified off.
    uline .
    write :/ 'PR No     ',
            (10) 'Item No',
            (20) 'PR Quantity',
            (30) 'Invoiced Quantity',
            (60) 'Remark'.
    uline .
    loop at i_error1.
      perform f_display_color.
      if not i_error1-asqty is initial.
        v_asqty = i_error1-asqty .
        v_prqty = i_error1-prqty.
        write :/ i_error1-prnum,
            (10) i_error1-pritm ,
            (20) v_prqty,
            (30) v_asqty,
            (60) i_error1-remak.
        clear : v_asqty, v_prqty.
      endif.
      clear i_error1.
    endloop.
  endif.
endform.                    " f_display_errors
*&      Form  f_display_color
form f_display_color .
  if v_flag = 0.
    format color col_normal intensified on.
    v_flag = 1.
  elseif v_flag = 1.
    format color col_normal intensified off.
    v_flag = 0.
  endif.
endform.                    " f_display_color
*&      Form  display_err
      text
-->  p1        text
<--  p2        text
form display_err .
  format color col_heading intensified off.
write (120) text-006.
  uline .
  write : 'PR No     ',
          (15) 'Invoice No',
          (30) 'Remark'.
  uline.
  format color col_negative intensified off.
  write :/ i_invno-ebeln,
      (15) p_invno ,
      (30) 'Invoice Already Exists'.
endform.                    " display_err
*&      Form  f_check_calc_price
      text
-->  p1        text
<--  p2        text
form f_check_calc_price .
  data : d_pric type p decimals 6 ,
         g_pric type p decimals 6,
         v_exch type p decimals 4 value '0.1049'.
  select single ebeln
                waers
                bedat
                from ekko into  (v_ebeln , v_waers , v_podat)
                where angnr eq p_invno.
  loop at i_input.
    concatenate i_input-posnr(4) '0' into v_posnr.
    select single p~ebeln
           p~ebelp
           matnr
           p~menge
           netpr
           into  i_netpr
           from eket as t inner join ekpo as p
           on t~ebeln eq p~ebeln
           and t~ebelp eq p~ebelp
           where t~ebeln eq v_ebeln
           and   t~banfn eq i_input-ebeln
           and   t~bnfpo eq v_posnr.
    if v_waers eq 'JPY'.
      i_netpr-netpr = i_netpr-netpr * 100.
    endif.
    if not i_input-netpr eq i_netpr-netpr.
      append i_netpr.
      clear : i_input, i_netpr, v_posnr.
    else.
      clear : i_input, i_netpr, v_posnr.
    endif.
  endloop.
  delete adjacent duplicates from i_netpr comparing ebeln ebelp matnr.
   modify zinvdiff from table i_final.
  if i_netpr[] is not initial.
    select matnr
           knumh
           from a004
           into table i_a004
           for all entries in i_netpr
           where matnr = i_netpr-matnr
           and kschl = 'ZPR0'
           and vkorg = 'SBAP'
           and vtweg = 'DD'
           and ( datab <= sy-datum and  datbi => sy-datum ).
    select  matnr
            knumh
            from a004
            into table i_a0041
            for all entries in i_netpr
            where matnr = i_netpr-matnr
            and kschl = 'ZPR0'
            and vkorg = 'EXPT'
            and vtweg = 'BR'
            and ( datab <= sy-datum and  datbi => sy-datum ).
    select matnr mvgr2 from mvke
           into  corresponding fields of table i_mvke
           for all entries in i_netpr
           where matnr = i_netpr-matnr
           and vkorg = 'SBAP'
           and vtweg = 'DD'.
    if i_a004[] is not initial.
      select  knumh
              kbetr
              from konp
              into table i_konp
              for all entries in i_a004
              where knumh =  i_a004-knumh.
      loop at i_a004.
        read table i_konp with key knumh = i_a004-knumh.
        i_konp-kbetr =  i_konp-kbetr / 10.
        move i_konp-kbetr to i_a004-kbetr.
        modify i_a004.
        clear : i_konp, i_a004.
      endloop.
    endif.
    if i_a0041[] is not initial.
      select  knumh
              kbetr
              from  konp
              into table i_konp1
              for all entries in i_a0041
              where knumh = i_a0041-knumh.
      loop at i_a0041.
        read table i_konp1 with key knumh = i_a0041-knumh.
        move i_konp1-kbetr to i_a0041-kbetr.
        modify i_a0041.
        clear : i_konp1, i_a0041.
      endloop.
    endif.
    if i_mvke[] is not initial.
      select pcode
             fact
             wfact
             into table i_domsal
             from zprice_grpsal
             for all entries in i_mvke
             where pcode = i_mvke-mvgr2
             and vkorg = 'SBAP'
             and vtweg = 'DD'
             and lifnr = v_lifnr.
      select pcode
             fact
             wfact
             into table i_grpsal
             from zprice_grpsal
             for all entries in i_mvke
             where pcode = i_mvke-mvgr2
             and vkorg = 'EXPT'
             and vtweg = 'BR'
             and lifnr = v_lifnr.
    endif.
    loop at i_input .
      read table i_mvke with key matnr = i_input-matnr.
      if sy-subrc = 0.
        move i_mvke-mvgr2 to i_input-mvgr2.
      endif.
      read table i_domsal with key pcode = i_input-mvgr2.
      if sy-subrc = 0.
        d_pric =  i_domsal-fact / i_domsal-wfact.
        i_input-dpric = i_input-netpr * d_pric * ( 112 / 100 ).
      endif.
      read table i_grpsal with key pcode = i_input-mvgr2.
      if sy-subrc = 0.
        g_pric =  i_grpsal-fact * i_grpsal-wfact.
        i_input-gpric = ( i_input-netpr * ( 112 / 100 ) ) / g_pric .
      endif.
      modify i_input.
      clear i_input.
      clear d_pric.
      clear g_pric.
    endloop.
  endif.
endform.                    " f_check_price
*&      Form  f_display_data
      text
-->  p1        text
<--  p2        text
form f_display_data .
  loop at i_netpr.
    move i_netpr-ebeln to i_final-ebeln.
    move i_netpr-ebelp to i_final-ebelp.
    move i_netpr-matnr to i_final-matnr.
    move i_netpr-netpr to i_final-poprc.
    move i_netpr-menge to i_final-asqty.
    move p_invno to i_final-invoice.
    append i_final.
    clear i_final.
  endloop.
  loop at i_final.
    move v_podat to i_final-podat.
    read table i_input with key matnr = i_final-matnr.
    move i_input-netpr to i_final-invpr.
    move i_input-dpric to i_final-dcalclp.

Dear Santosh,
I haven't gone through your piece of code.
But I can suggest a way out, while handling multiple line-items.
The following code sample elucidate the use of multiple line-items. This is just an example for your understanding.
FORM BDC_OPERATION .
  DATA:  LV_ARBPL(15)    TYPE  C,
             LV_ROWNO(2)     TYPE  N.
  LOOP  AT  IT_TABDATA  INTO  WA_TABDATA.
    CLEAR:  LV_ARBPL
    LV_ROWNO  =  SY-TABIX.  
    CONCATENATE  'PLPOD-ARBPL'    '('  LV_ROWNO  ')'  INTO  LV_ARBPL.
    PERFORM  BDC_DYNPRO  USING  'SAPLCPDI'          '1400'.
    PERFORM  BDC_FIELD       USING  'BDC_CURSOR'   LV_ARBPL.
    PERFORM  BDC_FIELD       USING  'BDC_OKCODE'   '=PICK'.
    PERFORM  BDC_FIELD       USING  LV_ARBPL          WA_TABDATA-ARBPL.
  ENDLOOP.
ENDFORM.                    " BDC_OPERATION
Regards,
Abir
Please don't forget to award points  *

Similar Messages

  • How to Restrict Single Delivery Date for PO with Multiple Line Items

    Dear Experts,
    How to Restrict Single Delivery Date for PO with Multiple Line Items.
    System needs to through Error Message if User Inputs Different Delivery Dates for PO with Multiple Line Items in ME21N Tcode.
    Can we achive this by Some Enhancement in SAP or Not ???
    If so how to do it.
    Any Inputs is highly appreciated.
    Thanks and Regards,
    Selvakumar. M

    Hi Selvakumar,
    we can resrict the PO to have a single delivery date in all the line items by means of giving a error message or overwiting the delivery date keyed/determined in the line item.
    You can use the BADI -> ME_PROCESS_PO_CUST. In which you need to implement the method PROCESS_SCHEDULE.
    (for technical aid - This method will be called for each and every PO line item, From the imporing parameter im_schedule we can get all the details of current PO line, even we can change the data in the current PO line. )
    Regards,
    Madhu.

  • Service procurement for the free texts ( Multiple line items in PO)

    In the service procurement for the free texts ( Multiple line items in PO)referring to the same  Contract we are cretaing the POs
    thro ME59 ( Program RM06BB20)  an unusual error message appears as under:
    "_Material/Service group STGOP2 does not exist"_This Material group is unavailable in T023 as well.
    We checked the same issue by recreating with the exact data in the Test environment and everything works OK
    We are working on the R3 version 470...
    Any body faced such an issue ?
    Any clues pls?
    Regards,
    Nagarajan

    Hello,
    We have faced another issue of the same nature while a PO is being created using the tcode ME21N for service free text items referring a PR ( Service item has no Contract assigned but a fixed vendor)
    The error relates to SE419 ( Mat grp 'XXXX' does not exist)
    Any takers..
    We are using a custom doc type  for the PR
    Any hep /clue is appreciated
    Regards,
    Nagarajan

  • Setting the value of a single attribute for multiple line items

    Hi all,
    I am working on a Web Dynpro application, I have created this applicaion for an accounting document so it has header data and multiple line item data. As per the requirement I have to put the following logic:
    1. When a user enters a value in the field KBLNR on the line item, all the other fields like cost centerm fund, functional area should populate from a database table based on the value of the KBLNR. to get this I have put the following code:
    TYPES: BEGIN OF t_kblp,
              fipos     TYPE kblp-fipos,
              kostl     TYPE kostl,
                      END OF t_kblp.
      DATA lv_kblnr TYPE wd_this->element_t_bseg-kblnr.
      DATA: lt_kblp TYPE STANDARD TABLE OF t_kblp,
            wa_kblp LIKE LINE OF lt_kblp,
            lt_bseg              TYPE STANDARD TABLE OF bseg,
            wa_bseg              TYPE bseg.
      DATA lo_nd_t_bseg TYPE REF TO if_wd_context_node.
      DATA lo_el_t_bseg TYPE REF TO if_wd_context_element.
      DATA: ls_t_bseg TYPE wd_this->element_t_bseg,
            lo_api_controller    TYPE REF TO if_wd_controller,
            lo_message_manager   TYPE REF TO if_wd_message_manager,
            lo_nd_tbseg          TYPE REF TO if_wd_context_node,
             lo_el_tbseg          TYPE REF TO if_wd_context_element,
             lt_el_tbseg          TYPE wdr_context_element_set,
             lv_bseg              TYPE bseg.
      lo_nd_t_bseg = wd_context->path_get_node( path = `ZDATA.CHANGING.T_BSEG` ).
      lo_api_controller ?= wd_this->wd_get_api( ).
      CALL METHOD lo_api_controller->get_message_manager
        RECEIVING
          message_manager = lo_message_manager.
      lo_nd_tbseg = wd_context->path_get_node( path = `ZDATA.CHANGING.T_BSEG` ).
      lt_el_tbseg = lo_nd_tbseg->get_elements( ).
      LOOP AT lt_el_tbseg INTO lo_el_tbseg.
        lo_el_tbseg->get_static_attributes(
                               IMPORTING static_attributes = lv_bseg ).
      IF lv_bseg-kblnr NE ' '.
          SELECT belnr
                 fipos
                 kostl
                 PSPNR
                 geber
                 saknr
                 fkber
                 grant_nbr
                 gsber
                 FROM kblp
                 inTO corresponding fields of wa_kblp
                 WHERE belnr = lv_bseg-kblnr and
                      saknr = lv_bseg-saknr.
            ENDSELECT.
    lo_nd_t_bseg = wd_context->path_get_node( path = `ZPRELIMINARY_POSTING.CHANGING.T_BSEG` ).
    * get element via lead selection
            lo_el_t_bseg = lo_nd_t_bseg->get_element( ).
    lo_el_tbseg->set_static_attributes(
                               EXPORTING static_attributes = wa_kblp ).
       CLEAR: lv_bseg, wa_kblp.
      ENDLOOP.
    everything is working fine but now the problem is couple of fields that I have in wa_kblp are with different names in bseg table and hence they are not updating... I tried putting the following logic within the loop :
    lo_el_t_bseg->set_attribute(
        name =  `PROJK`
    value = wa_kblp-pspnr ).
    but it's only setting the value of the first line item and not working for the multiple line items, can you please tell me how can do this?
    Thanks,
    Rajat Garg
    Edited by: rajatg on Jun 24, 2011 5:09 PM

    Hi Chris,
    I tried your code and it worked fine but after I put this code I am getting another issue. within the loop I had a code to make the fields non modifiable on the screen and was working fine but now what's happening is it's making the all the lines uneditable except the one with data on it (which is completely opposite), this is what I have coded:
    LOOP AT lt_el_tbseg INTO lo_el_tbseg.
        lo_el_tbseg->get_static_attributes(
                               IMPORTING static_attributes = lv_bseg ).
    IF lv_bseg-kblnr NE ' '.
      SELECT belnr
                 fipos
                 kostl
                 PSPNR
                 geber
                 saknr
                 fkber
                 grant_nbr
                 gsber
                 FROM kblp
                 inTO corresponding fields of wa_kblp
                 WHERE belnr = lv_bseg-kblnr and
                      saknr = lv_bseg-saknr.
            ENDSELECT.
    move: wa_kblp-belnr to wa_bseg-kblnr,
    wa_kblp-fipos to wa_bseg-fipos,
    wa_kblp-kostl to wa_bseg-kostl,
    wa_kblp-pspnr to wa_bseg-projk,
    wa_kblp-geber to wa_bseg-geber,
    wa_kblp-saknr to wa_bseg-saknr,
    wa_kblp-fkber to wa_bseg-fkber,
    wa_kblp-grant_nbr to wa_bseg-grant_nbr,
    wa_kblp-gsber to wa_bseg-gsber,
    lv_bseg-dmbtr to wa_bseg-dmbtr.
    append wa_bseg to lt_bseg.
    lo_nd_edit_property = wd_context->path_get_node( path = `ZPRELIMINARY_POSTING.CHANGING.T_BSEG.EDIT_PROPERTY` ).
          get element via lead selection
          lo_el_edit_property = lo_nd_edit_property->get_element( ).
          lo_el_edit_property->set_attribute(
            name =  `EDIT_FIELD`
            value = 'ABAP_TRUE' ).
          lo_el_edit_property->set_attribute(
            name =  `EDIT_WBS`
            value = 'ABAP_TRUE' ).
    endif.
    endloop.
    o_nd_t_bseg = wd_context->path_get_node( path = `ZPRELIMINARY_POSTING.CHANGING.T_BSEG` ).
    get element via lead selection
            lo_el_t_bseg = lo_nd_t_bseg->get_element( ).
      CALL METHOD lo_nd_t_bseg->bind_table
        EXPORTING
          new_items            = lt_bseg.
    Can you please see what I am doing it wrong here....

  • Production order from sales order with multiple line item(for one material)

    Dear Gurus,
    I am working in MTO scenarios. If there is several line item in a sales order for one material, multiple production order( same as no. of sales order line item) is getting created against each of the line item.My requirement is,since the material code is same in each line item and sales order is one, one production order should be generated for all line item. please tell me how to do it.
    (Here for one material, multiple line item is required for some specific reason)
    Regards
    Rajib Pathak

    Hi,
    This is not possible.
    In Std SAP will create one production order for one sales order. The stock is also allocated to thet particular sales order only. Because each and every sales order may vary in any one of the parameters. Considering this, SAP has designed like this.
    Regards,
    V. Suresh

  • Single/ Consolidated  GR/IR entry for a PO having multiple line items

    Hi,
    In a PO there are couple of line items for materials of similar type and class. While making the Goods Receipt, the Accounting Document is making two no of line items for GR/IR accounts as credit and two no of inventory accounts as debit. Same is happening to GR/IR account while making Invoice Receipt document also.
    Informatively, both the materials above have been assigned to one GR/IR account in the OBYC table.
    My question is, is it possible to consolidate the value of both these materials and post one line item for GR/IR account. This is required as in our case in a PO, normally, we do have multiple line items and hence it is resulting multiple no of GR/IR and inventory accounts in a single accounting document. As we are getting details of the line item from PO history, we do not require it in the accounting document.
    Requested to kindly help.
    Regards
    B.Mohanty

    Hi
    This is not possible (you will compleet los the link between the Invoice and GR)
    The reason is that when you receive an invoice that this is based on a G/R line and the way arround when you receive first the invoice(s).
    The system need this for the automatecly clearing from the  G/R - I/R account, that is based on PO an PO line item number.

  • MM: PO Not Picking up PR Having Multiple Line Items

    Hi All,
    When Creating PO with Reference to PR Having multiple line items, not picking up the line items and also the vendor and also the where in we  have to select  input tax code.
    CASE1: Created PR 760001340 with single line item and also could able to create PO.
    Case2: Created PR 760001341 with multiple line items, When creating PO with reference to PR the line items and Vendor are not picking Up.
    Plz. Advise a solution.
    Thanks in Advance.....
    Regards
    Sudheer

    HI SHWN,
    Thanks for prompt response.
    ERROR Message: When referencing a requisition, please also enter a requisition item no.
    Regards
    Sudheer

  • Creating a PO Using BAPI For Multiple PLants Or Multiple Line Items

    Hi All
        Can you please suggest me how to create a Purchase Order Using BAPI_PO_Create1 for Multiple Plants Or for Multiple Line items. The Requirement is like the PO is for single material for single vendor but for mulple stores i.e plants
    NOte:  Suggest me the  Creation of PO for MUltiple Line items or for multiple plants Using BAPI . Hope you people will give me the needful.
    Regards
    Shivakumar Bandari

    Hi,
    Here is the sample code to do that...
    *---> po header data
      wa_poheader-vendor    =  your vendor..
      wa_poheader-doc_type  =  Your doc type..check with Functional contact....
      wa_poheader-purch_org =  Purchasing Org..
      wa_poheader-pur_group =  Purchasing Group
    *---> po header data (change toolbar)
      wa_poheaderx-vendor    =  'X'.
      wa_poheaderx-doc_type  =  'X'.
      wa_poheaderx-purch_org =  'X'.
      wa_poheaderx-pur_group =  'X'.
    *---> poitem data
    data: item like ekpo-ebelp.
    item = '0010'.
    loop at t_parts.
      it_poitem-po_item  =  '00010'.
      IT_POITEM-PLANT    =  Plant..
      IT_POITEM-STGE_LOC =  Sloc...
    *---> poitemx (item data change toolbar)
      it_poitemx-po_item  =  '0010'.
      it_poitemx-po_itemx  =  'X'.
      IT_POITEMX-PLANT    =  'X'.
      IT_POITEMX-STGE_LOC =  'X'.
    *---> add record's to internal table
      APPEND:  it_poitem,
             it_poitemx.
    endloop.
    *call bapi_po_create1
      CLEAR v_ebeln.
      CALL FUNCTION 'BAPI_PO_CREATE1'
        EXPORTING
          poheader         = wa_poheader
          poheaderx        = wa_poheaderx
        IMPORTING
          exppurchaseorder = v_ebeln
        TABLES
          return           = it_return
          poitem           = it_poitem
          poitemx          = it_poitemx.
    *---> check the return table for error message
      READ TABLE it_return WITH KEY type = 'E'.
      IF sy-subrc NE 0.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            wait = 'X'.
      endif.
    Thanks,
    Murali

  • Copying the item text in case of multiple line items

    Hi All,
                    I have a scenario where the sales order gets created in our SAP through a 850 idoc. The incoming idoc has only one item segment which carries the total order quantity ( for example say 1000). Since my company has contractual agreements with the end customer for doing multiple shipments , our sales department splits the total quantity into multiple line items in the sales order. Say splitting the 1000 quantities into 5 line items of 200 each.
    The problem here is that when the sales order got created , all  the related item text were copied only to the first line item ( of 1000 qty) and which is standard SAP. Since the order quantity was manually split, the related item text are not carried to the subsequent line items. The issue comes when an outbound (810) idoc is sent to customer . As I told earlier since only the first line item has the item text , the 810 idoc which was created for  the first line item only has the item text . The rest of the 810 which were subsequently created for multiple shipments/invoices on different dates didn't have the item text in the 810's. This is becoming a major problem as the 810 files are failing at our trading partners end because of missing text.
    Now my question is, Is there a way that I can make the item text copy automatically when multiple line items are created manually by business. Like is there a way where I can modify MV45AFZZ  to copy the item text in their respective segemnts ( z003,z004 etc) to "N" number of line items.
    Also please suggest if there is a better way of doing it. Suggstions are most welcome !!!.
    Regards
    Amrith

    Hi,
    First of all try to avoid doing select into corresponding fields. THis would improve the performance of the program.
    Try to do a single fetch from the BSIS table . fetch the hkont, belnr, dmbtr fields in to a master internal table. Manipulate and play with the data as required.  Don't hit the data base table more than once (unless it is required) . This would improve the performance of your code.
    Try to code this way.
    types: begin of ty_bsis,
                 hkont type hkont,
                 belnr type  belnr_d,
                 dmbtr type dmbtr,
              end of ty_bsis.
    data: it_bsis type standard table of ty_bsis,
             wa_bsis type ty_bsis,
    select hkont belnr dmbtr
              from bsis
              into table it_bsis
              WHERE HKONT IN S_RACCT
            AND PRCTR IN P_PRCTR
              AND MONAT IN S_POPER
             AND BUKRS EQ P_BUKRS
             AND GJAHR EQ P_GJAHR
              AND PRCTR IN S_PRCTR.
    Using the data availabe in the it_bsis, you can manipulate as required.
    Hope this would be helpful
    Regards
    Ramesh Sundaram

  • Partial goods receipt for PO with multiple line items

    Hello All,
    While doing MIGO, for a PO with multiple line items, if one line item is having error, will we be able to go ahead with goods receipt? Or entire material document is blocked for doing MIGO?
    We will be doing a development - in case if there is problem in goods receipt (checking of any parameter, and if it is missing - we will be posting error message)...is it possible to ahead with next line item and still post the material document?
    If partial goods receipt if possible for PO with multiple line items, how do we do it?
    Regards,
    RJS

    Hi
    While doing MIGO, for a PO with multiple line items, if one line item is having error, will we be able to go ahead with goods receipt? Or entire material document is blocked for doing MIGO?
    No. You cannot post the MIGO, if even one of the PO line item is having problem or giving error.
    We will be doing a development - in case if there is problem in goods receipt (checking of any parameter, and if it is missing - we will be posting error message)...is it possible to ahead with next line item and still post the material document?
    If you skip a line irem and do GR with next line item, how will you match quantity & value with the vendor Invoice at LIV ?
    If partial goods receipt if possible for PO with multiple line items, how do we do it?
    Partial goods receipt is possible for PO line items. That means, if PO has 100 qty for line item 1 then you can do GR for 50 now and 50 later depending on the vendors delivery.
    Hope this is what you mean by "Partial Goods Receipt".
    Edited by: Arun R on May 10, 2010 2:03 PM

  • How to implement bapi for transaction code f-02 for multiple line items

    Hi All,
    I am having one requirement to of implementing bapi for tcode f-02.
    I have identified the name of the badi e.i.  BAPI_ACC_GL_POSTING_POST.
    but i dont have any idea how implement it.
    i have multiple line items for one header.
    Please help me in this.
    Regards,
    Shoaib.

    HI
    In recording once u save, the recording comings out the transaction.
    If u want the pop-up to display before save. Then in recording also
    after entering all data and before Save press enter or do check.Try
    this way after that save the transaction.
    Regards,
    Raghu.

  • Pls help me to create SO using BDC for multiple line items (VA01)

    Hi all,
    My requirement is to create SO for multiple line items in ECC6.0
    My recording for VA01 is like this.
    start-of-selection.
    perform open_group.
    perform bdc_dynpro      using 'SAPMV45A' '0101'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAK-AUART'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'VBAK-AUART'
                                  'ZOR'.
    perform bdc_field       using 'VBAK-VKORG'
                                  '2000'.
    perform bdc_field       using 'VBAK-VTWEG'
                                  '10'.
    perform bdc_field       using 'VBAK-SPART'
                                  '05'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'RV45A-KETDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'RV45A-KPRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-WERKS(01)'.
    perform bdc_field       using 'RV45A-MABNR(01)'
                                  'hrpocf'.
    perform bdc_field       using 'VBAP-POSNR(01)'
                                  '    10'.
    perform bdc_field       using 'RV45A-KWMENG(01)'
                                  '                 55'.
    perform bdc_field       using 'VBAP-WERKS(01)'
                                  '2010'.
    perform bdc_dynpro      using 'SAPLCEI0' '0109'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RCTMS-MWERT(06)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BACK'.
    perform bdc_field       using 'RCTMS-MNAME(01)'
                                  'A_THICK_MM'.
    perform bdc_field       using 'RCTMS-MNAME(02)'
                                  'A_WIDTH_MM'.
    perform bdc_field       using 'RCTMS-MNAME(03)'
                                  'A_EQUIVALENT_SPEC'.
    perform bdc_field       using 'RCTMS-MNAME(04)'
                                  'A_BATCH_WEIGHT_MAX_SI'.
    perform bdc_field       using 'RCTMS-MNAME(05)'
                                  'A_BATCH_WEIGHT_MIN_SI'.
    perform bdc_field       using 'RCTMS-MNAME(06)'
                                  'A_COIL_INNER_DIA_MM'.
    perform bdc_field       using 'RCTMS-MWERT(01)'
                                  '3.2'.
    perform bdc_field       using 'RCTMS-MWERT(02)'
                                  '1200'.
    perform bdc_field       using 'RCTMS-MWERT(03)'
                                  'IS_11513_GR_D_1985'.
    perform bdc_field       using 'RCTMS-MWERT(04)'
                                  '26.4'.
    perform bdc_field       using 'RCTMS-MWERT(05)'
                                  '26.4'.
    perform bdc_field       using 'RCTMS-MWERT(06)'
                                  '610'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'RV45A-KETDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'RV45A-KPRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai east'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-WERKS(02)'.
    perform bdc_field       using 'RV45A-MABNR(02)'
                                  'hrpocf'.
    perform bdc_field       using 'VBAP-POSNR(02)'
                                  '    11'.
    perform bdc_field       using 'RV45A-KWMENG(02)'
                                  '                 66'.
    perform bdc_field       using 'VBAP-WERKS(02)'
                                  '2010'.
    perform bdc_dynpro      using 'SAPLCEI0' '0109'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RCTMS-MWERT(06)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BACK'.
    perform bdc_field       using 'RCTMS-MNAME(01)'
                                  'A_THICK_MM'.
    perform bdc_field       using 'RCTMS-MNAME(02)'
                                  'A_WIDTH_MM'.
    perform bdc_field       using 'RCTMS-MNAME(03)'
                                  'A_EQUIVALENT_SPEC'.
    perform bdc_field       using 'RCTMS-MNAME(04)'
                                  'A_BATCH_WEIGHT_MAX_SI'.
    perform bdc_field       using 'RCTMS-MNAME(05)'
                                  'A_BATCH_WEIGHT_MIN_SI'.
    perform bdc_field       using 'RCTMS-MNAME(06)'
                                  'A_COIL_INNER_DIA_MM'.
    perform bdc_field       using 'RCTMS-MWERT(01)'
                                  '3.1'.
    perform bdc_field       using 'RCTMS-MWERT(02)'
                                  '1250'.
    perform bdc_field       using 'RCTMS-MWERT(03)'
                                  'IS_11513_GR_D_1985'.
    perform bdc_field       using 'RCTMS-MWERT(04)'
                                  '20.084'.
    perform bdc_field       using 'RCTMS-MWERT(05)'
                                  '20.084'.
    perform bdc_field       using 'RCTMS-MWERT(06)'
                                  '610'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PDE3'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'RV45A-KETDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'RV45A-KPRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai east'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-POSNR(01)'.
    perform bdc_field       using 'RV45A-VBAP_SELKZ(01)'
                                  'X'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\09'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-INCO2'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'VBKD-FKDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAP-TAXM1'
                                  '1'.
    perform bdc_field       using 'VBAP-TAXM2'
                                  '1'.
    perform bdc_field       using 'VBAP-TAXM3'
                                  '0'.
    perform bdc_field       using 'VBAP-TAXM4'
                                  '0'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_DELETE'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_CREATE'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_DETAIL'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPLSTXX' '1100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSTXT-TXLINE(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TXVB'.
    perform bdc_field       using 'RSTXT-TXLINE(02)'
                                  'FDGFDG'.
    perform bdc_dynpro      using 'SAPLSTXX' '1100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSTXT-TXLINE(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TXBA'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\10'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-POSEX_E'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAP-POSEX'
                                  '108128'.
    perform bdc_field       using 'VBKD-BSTKD_E'
                                  '3011192'.
    perform bdc_field       using 'VBKD-POSEX_E'
                                  '000005'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PDE3'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'RV45A-KETDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'RV45A-KPRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai east'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-POSNR(02)'.
    perform bdc_field       using 'RV45A-VBAP_SELKZ(02)'
                                  'X'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\09'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-INCO2'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'VBKD-FKDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAP-TAXM1'
                                  '1'.
    perform bdc_field       using 'VBAP-TAXM2'
                                  '1'.
    perform bdc_field       using 'VBAP-TAXM3'
                                  '0'.
    perform bdc_field       using 'VBAP-TAXM4'
                                  '0'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_DELETE'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_CREATE'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_DETAIL'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPLSTXX' '1100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSTXT-TXLINE(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TXVB'.
    perform bdc_field       using 'RSTXT-TXLINE(02)'
                                  'GFGFDG'.
    perform bdc_dynpro      using 'SAPLSTXX' '1100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSTXT-TXLINE(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TXBA'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\10'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-POSEX_E'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAP-POSEX'
                                  '108128'.
    perform bdc_field       using 'VBKD-BSTKD_E'
                                  '3011192'.
    perform bdc_field       using 'VBKD-POSEX_E'
                                  '000005'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-POSEX'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAP-POSEX'
                                  '108128'.
    perform bdc_field       using 'VBKD-BSTKD_E'
                                  '3011192'.
    perform bdc_field       using 'VBKD-POSEX_E'
                                  '5'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=KKAU'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'RV45A-KETDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'RV45A-KPRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai east'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-MABNR(01)'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\02'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-KONDA'.
    perform bdc_field       using 'VBAK-AUDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAK-VKBUR'
                                  'IN15'.
    perform bdc_field       using 'VBAK-WAERK'
                                  'INR'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBKD-KDGRP'
                                  'CF'.
    perform bdc_field       using 'VBKD-PLTYP'
                                  '01'.
    perform bdc_field       using 'VBKD-KONDA'
                                  '01'.
    perform bdc_field       using 'VBKD-BZIRK'
                                  'NORTH'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\03'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-VSART'.
    perform bdc_field       using 'VBAK-VSBED'
                                  '01'.
    perform bdc_field       using 'VBKD-KZAZU'
                                  'X'.
    perform bdc_field       using 'VBKD-VSART'
                                  'ER'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\05'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-INCO2'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'VBKD-FKDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAK-TAXK1'
                                  '1'.
    perform bdc_field       using 'VBAK-TAXK3'
                                  'l'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\09'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-ZLSCH'.
    perform bdc_field       using 'VBKD-KTGRD'
                                  '01'.
    perform bdc_field       using 'VBKD-ZLSCH'
                                  'c'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_DELETE'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_CREATE'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_DETAIL'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPLSTXX' '1100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSTXT-TXLINE(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TXVB'.
    perform bdc_field       using 'RSTXT-TXLINE(02)'
                                  'BDFBFDB'.
    perform bdc_dynpro      using 'SAPLSTXX' '1100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSTXT-TXLINE(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TXBA'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\11'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=KSTC'.
    perform bdc_dynpro      using 'SAPLBSVA' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'J_STMAINT-ANWS(02)'.
    perform bdc_field       using 'J_STMAINT-ANWS(01)'
    perform bdc_field       using 'J_STMAINT-ANWS(02)'
                                  'X'.
    perform bdc_dynpro      using 'SAPLBSVA' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'J_STMAINT-ANWS(03)'.
    perform bdc_field       using 'J_STMAINT-ANWS(02)'
    perform bdc_field       using 'J_STMAINT-ANWS(03)'
                                  'X'.
    perform bdc_dynpro      using 'SAPLBSVA' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'J_STMAINT-ANWS(04)'.
    perform bdc_field       using 'J_STMAINT-ANWS(03)'
    perform bdc_field       using 'J_STMAINT-ANWS(04)'
                                  'X'.
    perform bdc_dynpro      using 'SAPLBSVA' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'JOSTD-OBJNR'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-TXT_VBELN'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SICH'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'RV45A-KETDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'RV45A-KPRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-MABNR(01)'.
    perform bdc_transaction using 'VA01'.
    perform close_group.
    if in excel file one row of records means i am succesfully creating SO.
    But for multiple i am not getting idea to create SO.
    My excel file details like this.In this excel file based on VBKD-BSTKD_E value i have to keep the records in line items.
    VBAK-AUART    :Order Type
    VBAK-VKORG    : Sales Org
    VBAK-VTWEG    : Distri Channel
    VBAK-SPART    : Division
    VBAK-KUNNR    : Sold-to-Party
    VBPA-KUNNAR   : Ship-to-Party
    VBAK-BSTNK    : PO No
    VBAK-BSTDK    : PO Date
    VBAP-MATNR    : Material No
    A_THICK_MM
    A_WIDTH_MM
    A_EQUIVALENT_SPEC
    A_COIL_INNER_DIA_MM
    A_BATCH_WEIGHT_MIN_SI
    A_BATCH_WEIGHT_MAX_SI
    VBAP-KWMENG    : Qty
    VBAP-WERKS     : Delivery Plant
    VBKD-INCO2     : Incoterm2
    VBKD-KONDA     : Price Group
    VBKD-VSART     : Shipping Type
    VBAK-TAXK1     : Cust Tax-1
    VBAK-TAXK2     : Cust Tax-2
    VBAK-TAXK3     : Cust Tax-3
    VBAK-TAXK4     : Cust Tax-4
    VBKD-ZLSCH     : Payment Method
    VBAP-TAXM1     : Mat tax clss-1
    VBAP-TAXM2     : Mat tax clss-2
    VBAP-TAXM3     : Mat tax clss-3
    VBAP-TAXM4     : Mat tax clss-4
    VBAP-POSEX     : IMPS Order No
    VBKD-BSTKD_E   : old SO in 4.6c
    VBKD-POSEX_E   : old SO Item  in 4.6c
    Text Id        : TDC No
    Text Id-ES10   : Special Inst(Unld const & Veh)
    ZOR,2000,10,5,100000,100000,PO NO 125,19.01.2008,HRPOCF,3.1,1200,IS_11513_GR_D_1985,610,20.084,20.084
    51,2010,Mumbai,01Freight-pre paid,ER,2,0,L,0,c,1,1,0,0,108128,3011192,     1,PO 444 AMD 1,Spl Inst
    based on VBKD-BSTKD_E line items has to create.
    if VBKD-BSTKD_E = 3011192 is like 4 records in excel means for these 4 should be one SO
    if it is changed to 3011193 then only different SO.
    PLs If any one knows solution pls write some sample code for me.
    If u send that code to my mail id also  very thankful.
    Pls help me this is urgent requirement.
    [email protected]
    Thanks & Regards,
    J.Lokesh

    If u want to add Items data, u have to handle the Table control by writing the complete code.
    U have to write code for 2 items, when u press enter u will get new row to enter new record one by one.
    Narendra

  • One line item in po from multiple line items of Purchase Requisition

    Can we merge multiple line items for same item from different different purchase requisition into a single line item in Purchase Order ?
    For example, say department A and B made two different purchase requisition for 1 number of computer system. Now the purchaser viewed these requisitions and he want to make a purchase order to party X for 2 no of computer system. Now how he can do this in Oracle Purchasing.
    Regards
    Edited by: Saroj.Dash on May 31, 2010 6:02 AM

    Hi !
    thanx to all for your responses.
    But, let me explain better.
    Say Dept A raises an Requisition (Req No: 1 ) for 5 Chairs. In the same time Dept. B raises requisition (req no: 2 ) for 10 chairs.
    Now Purchase Dept. wants to make an PO to procure chair with respective to these 2 requisitions i.e. req no 1 from dept A and req no 2 from Dept B.
    Now my query is that, can the purchase dept. prepare a PO with 1 line item only i.e. for chair (5+10) of 15 numbers from these requisitions of dept A and B ?
    If yes then how ?
    Regards

  • BDC to create SO(VA01) for multiple line items

    Hi all,
    My requirement is to create SO for multiple line items in ECC6.0
    My recording for VA01 is like this.
    start-of-selection.
    perform open_group.
    perform bdc_dynpro      using 'SAPMV45A' '0101'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAK-AUART'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'VBAK-AUART'
                                  'ZOR'.
    perform bdc_field       using 'VBAK-VKORG'
                                  '2000'.
    perform bdc_field       using 'VBAK-VTWEG'
                                  '10'.
    perform bdc_field       using 'VBAK-SPART'
                                  '05'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'RV45A-KETDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'RV45A-KPRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-WERKS(01)'.
    perform bdc_field       using 'RV45A-MABNR(01)'
                                  'hrpocf'.
    perform bdc_field       using 'VBAP-POSNR(01)'
                                  '    10'.
    perform bdc_field       using 'RV45A-KWMENG(01)'
                                  '                 55'.
    perform bdc_field       using 'VBAP-WERKS(01)'
                                  '2010'.
    perform bdc_dynpro      using 'SAPLCEI0' '0109'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RCTMS-MWERT(06)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BACK'.
    perform bdc_field       using 'RCTMS-MNAME(01)'
                                  'A_THICK_MM'.
    perform bdc_field       using 'RCTMS-MNAME(02)'
                                  'A_WIDTH_MM'.
    perform bdc_field       using 'RCTMS-MNAME(03)'
                                  'A_EQUIVALENT_SPEC'.
    perform bdc_field       using 'RCTMS-MNAME(04)'
                                  'A_BATCH_WEIGHT_MAX_SI'.
    perform bdc_field       using 'RCTMS-MNAME(05)'
                                  'A_BATCH_WEIGHT_MIN_SI'.
    perform bdc_field       using 'RCTMS-MNAME(06)'
                                  'A_COIL_INNER_DIA_MM'.
    perform bdc_field       using 'RCTMS-MWERT(01)'
                                  '3.2'.
    perform bdc_field       using 'RCTMS-MWERT(02)'
                                  '1200'.
    perform bdc_field       using 'RCTMS-MWERT(03)'
                                  'IS_11513_GR_D_1985'.
    perform bdc_field       using 'RCTMS-MWERT(04)'
                                  '26.4'.
    perform bdc_field       using 'RCTMS-MWERT(05)'
                                  '26.4'.
    perform bdc_field       using 'RCTMS-MWERT(06)'
                                  '610'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'RV45A-KETDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'RV45A-KPRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai east'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-WERKS(02)'.
    perform bdc_field       using 'RV45A-MABNR(02)'
                                  'hrpocf'.
    perform bdc_field       using 'VBAP-POSNR(02)'
                                  '    11'.
    perform bdc_field       using 'RV45A-KWMENG(02)'
                                  '                 66'.
    perform bdc_field       using 'VBAP-WERKS(02)'
                                  '2010'.
    perform bdc_dynpro      using 'SAPLCEI0' '0109'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RCTMS-MWERT(06)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BACK'.
    perform bdc_field       using 'RCTMS-MNAME(01)'
                                  'A_THICK_MM'.
    perform bdc_field       using 'RCTMS-MNAME(02)'
                                  'A_WIDTH_MM'.
    perform bdc_field       using 'RCTMS-MNAME(03)'
                                  'A_EQUIVALENT_SPEC'.
    perform bdc_field       using 'RCTMS-MNAME(04)'
                                  'A_BATCH_WEIGHT_MAX_SI'.
    perform bdc_field       using 'RCTMS-MNAME(05)'
                                  'A_BATCH_WEIGHT_MIN_SI'.
    perform bdc_field       using 'RCTMS-MNAME(06)'
                                  'A_COIL_INNER_DIA_MM'.
    perform bdc_field       using 'RCTMS-MWERT(01)'
                                  '3.1'.
    perform bdc_field       using 'RCTMS-MWERT(02)'
                                  '1250'.
    perform bdc_field       using 'RCTMS-MWERT(03)'
                                  'IS_11513_GR_D_1985'.
    perform bdc_field       using 'RCTMS-MWERT(04)'
                                  '20.084'.
    perform bdc_field       using 'RCTMS-MWERT(05)'
                                  '20.084'.
    perform bdc_field       using 'RCTMS-MWERT(06)'
                                  '610'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PDE3'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'RV45A-KETDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'RV45A-KPRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai east'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-POSNR(01)'.
    perform bdc_field       using 'RV45A-VBAP_SELKZ(01)'
                                  'X'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\09'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-INCO2'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'VBKD-FKDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAP-TAXM1'
                                  '1'.
    perform bdc_field       using 'VBAP-TAXM2'
                                  '1'.
    perform bdc_field       using 'VBAP-TAXM3'
                                  '0'.
    perform bdc_field       using 'VBAP-TAXM4'
                                  '0'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_DELETE'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_CREATE'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_DETAIL'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPLSTXX' '1100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSTXT-TXLINE(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TXVB'.
    perform bdc_field       using 'RSTXT-TXLINE(02)'
                                  'FDGFDG'.
    perform bdc_dynpro      using 'SAPLSTXX' '1100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSTXT-TXLINE(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TXBA'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\10'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-POSEX_E'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAP-POSEX'
                                  '108128'.
    perform bdc_field       using 'VBKD-BSTKD_E'
                                  '3011192'.
    perform bdc_field       using 'VBKD-POSEX_E'
                                  '000005'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PDE3'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'RV45A-KETDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'RV45A-KPRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai east'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-POSNR(02)'.
    perform bdc_field       using 'RV45A-VBAP_SELKZ(02)'
                                  'X'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\09'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-INCO2'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'VBKD-FKDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAP-TAXM1'
                                  '1'.
    perform bdc_field       using 'VBAP-TAXM2'
                                  '1'.
    perform bdc_field       using 'VBAP-TAXM3'
                                  '0'.
    perform bdc_field       using 'VBAP-TAXM4'
                                  '0'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_DELETE'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_CREATE'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_DETAIL'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPLSTXX' '1100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSTXT-TXLINE(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TXVB'.
    perform bdc_field       using 'RSTXT-TXLINE(02)'
                                  'GFGFDG'.
    perform bdc_dynpro      using 'SAPLSTXX' '1100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSTXT-TXLINE(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TXBA'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\10'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-POSEX_E'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAP-POSEX'
                                  '108128'.
    perform bdc_field       using 'VBKD-BSTKD_E'
                                  '3011192'.
    perform bdc_field       using 'VBKD-POSEX_E'
                                  '000005'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-POSEX'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAP-POSEX'
                                  '108128'.
    perform bdc_field       using 'VBKD-BSTKD_E'
                                  '3011192'.
    perform bdc_field       using 'VBKD-POSEX_E'
                                  '5'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=KKAU'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'RV45A-KETDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'RV45A-KPRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai east'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-MABNR(01)'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\02'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-KONDA'.
    perform bdc_field       using 'VBAK-AUDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAK-VKBUR'
                                  'IN15'.
    perform bdc_field       using 'VBAK-WAERK'
                                  'INR'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBKD-KDGRP'
                                  'CF'.
    perform bdc_field       using 'VBKD-PLTYP'
                                  '01'.
    perform bdc_field       using 'VBKD-KONDA'
                                  '01'.
    perform bdc_field       using 'VBKD-BZIRK'
                                  'NORTH'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\03'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-VSART'.
    perform bdc_field       using 'VBAK-VSBED'
                                  '01'.
    perform bdc_field       using 'VBKD-KZAZU'
                                  'X'.
    perform bdc_field       using 'VBKD-VSART'
                                  'ER'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\05'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-INCO2'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'VBKD-FKDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBAK-TAXK1'
                                  '1'.
    perform bdc_field       using 'VBAK-TAXK3'
                                  'l'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\09'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBKD-ZLSCH'.
    perform bdc_field       using 'VBKD-KTGRD'
                                  '01'.
    perform bdc_field       using 'VBKD-ZLSCH'
                                  'c'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_DELETE'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_CREATE'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TP_DETAIL'.
    perform bdc_field       using 'LV70T-SPRAS'
                                  'EN'.
    perform bdc_dynpro      using 'SAPLSTXX' '1100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSTXT-TXLINE(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TXVB'.
    perform bdc_field       using 'RSTXT-TXLINE(02)'
                                  'BDFBFDB'.
    perform bdc_dynpro      using 'SAPLSTXX' '1100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RSTXT-TXLINE(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TXBA'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\11'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=KSTC'.
    perform bdc_dynpro      using 'SAPLBSVA' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'J_STMAINT-ANWS(02)'.
    perform bdc_field       using 'J_STMAINT-ANWS(01)'
    perform bdc_field       using 'J_STMAINT-ANWS(02)'
                                  'X'.
    perform bdc_dynpro      using 'SAPLBSVA' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'J_STMAINT-ANWS(03)'.
    perform bdc_field       using 'J_STMAINT-ANWS(02)'
    perform bdc_field       using 'J_STMAINT-ANWS(03)'
                                  'X'.
    perform bdc_dynpro      using 'SAPLBSVA' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'J_STMAINT-ANWS(04)'.
    perform bdc_field       using 'J_STMAINT-ANWS(03)'
    perform bdc_field       using 'J_STMAINT-ANWS(04)'
                                  'X'.
    perform bdc_dynpro      using 'SAPLBSVA' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'JOSTD-OBJNR'.
    perform bdc_dynpro      using 'SAPMV45A' '4002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-TXT_VBELN'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SICH'.
    perform bdc_field       using 'VBKD-BSTKD'
                                  'open SO'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '29.01.2008'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '100000'.
    perform bdc_field       using 'RV45A-KETDAT'
                                  '29.01.2008'.
    perform bdc_field       using 'RV45A-KPRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '29.01.2008'.
    perform bdc_field       using 'VBKD-INCO1'
                                  'EXW'.
    perform bdc_field       using 'VBKD-INCO2'
                                  'mumbai'.
    perform bdc_field       using 'VBKD-ZTERM'
                                  '0001'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-MABNR(01)'.
    perform bdc_transaction using 'VA01'.
    perform close_group.
    if in excel file one row of records means i am succesfully creating SO.
    But for multiple i am not getting idea to create SO.
    My excel file details like this.In this excel file based on VBKD-BSTKD_E value i have to keep the records in line items.
    VBAK-AUART    :Order Type
    VBAK-VKORG    : Sales Org
    VBAK-VTWEG    : Distri Channel
    VBAK-SPART    : Division
    VBAK-KUNNR    : Sold-to-Party
    VBPA-KUNNAR   : Ship-to-Party
    VBAK-BSTNK    : PO No
    VBAK-BSTDK    : PO Date
    VBAP-MATNR    : Material No
    A_THICK_MM
    A_WIDTH_MM
    A_EQUIVALENT_SPEC
    A_COIL_INNER_DIA_MM
    A_BATCH_WEIGHT_MIN_SI
    A_BATCH_WEIGHT_MAX_SI
    VBAP-KWMENG    : Qty
    VBAP-WERKS     : Delivery Plant
    VBKD-INCO2     : Incoterm2
    VBKD-KONDA     : Price Group
    VBKD-VSART     : Shipping Type
    VBAK-TAXK1     : Cust Tax-1
    VBAK-TAXK2     : Cust Tax-2
    VBAK-TAXK3     : Cust Tax-3
    VBAK-TAXK4     : Cust Tax-4
    VBKD-ZLSCH     : Payment Method
    VBAP-TAXM1     : Mat tax clss-1
    VBAP-TAXM2     : Mat tax clss-2
    VBAP-TAXM3     : Mat tax clss-3
    VBAP-TAXM4     : Mat tax clss-4
    VBAP-POSEX     : IMPS Order No
    VBKD-BSTKD_E   : old SO in 4.6c
    VBKD-POSEX_E   : old SO Item  in 4.6c
    Text Id        : TDC No
    Text Id-ES10   : Special Inst(Unld const & Veh)
    ZOR,2000,10,5,100000,100000,PO NO 125,19.01.2008,HRPOCF,3.1,1200,IS_11513_GR_D_1985,610,20.084,20.084
    51,2010,Mumbai,01Freight-pre paid,ER,2,0,L,0,c,1,1,0,0,108128,3011192,     1,PO 444 AMD 1,Spl Inst
    based on VBKD-BSTKD_E line items has to create.
    if VBKD-BSTKD_E = 3011192 is like 4 records in excel means for these 4 should be one SO
    if it is changed to 3011193 then only different SO.
    PLs If any one knows solution pls write some sample code for me.
    If u send that code to my mail id also  very thankful.
    [email protected]
    Pls help me this is urgent requirement.
    Thanks & Regards,
    J.Lokesh

    HI,
    Instead of using BDC , why dont you make use of BAPI.
    As you are on ECC, you can make use of BAPI BAPI_SALESORDER_CREATEFROMDAT2
    Collect all your records based on PO # and pass them into line item table structure ORDER_ITEMS_IN.
    *--Logic something like this.
      loop at it_exceldata into l_line.
      loop at it_exceldata into l_so where bstkd_e eq l_line-bstkd.
      *This will loop at all the same  PO#
      *collect the data related into corr tables. and append
      endloop.
      *Now you are outside the loop.
      *Call the BAPI to update this SO
      delete it_exceldata where bstkd_e eq l_line-bstkd_e.
      endloop.
    Also pass all the necessary data to header structure ORDER_HEADER_IN
    Do not check for Sy-subrc at the end of execution.
    Instead read the Return table with message type 'A' or 'E whichi means there is an error/abort in BAPI execution.
    Remember to expicitly COMMIT_WORK after succesfull execution of BAPI using BAPI_TRANSACTION_COMMIT
    Please let me know , if you need more help in this
    Gary.

  • LT12 TO confirmation error for multiple line items

    Hi Experts,
    We recently upgraded to ECC 6 DIMP EP6. We are not able to confirm TO with multiple line items. It is failing with an error message VL 198 that 0 quantity of material is available. We are able to confirm TO line items one by one. This TO is created for a delivery picking request. We tried with a configuration change for the delivery line item category availability check as Y as mentioned in this note 1653018. But still not working fine. Please let me know any relevant SAP note for this issue. 
    Thanks
    Rijil

    Please run CO09 and enter material numbers to see the available quantity and see if there is some inconsistency there.
    Also check MD04 for those materials to see if there is something wrong there.
    If you can you can also post the screens here, if you are not sure about CO09 and MD04 interpretation.

Maybe you are looking for

  • Can't scan to a computer on a wireless network

    I have an HP Photosmart C4780 wireless printer and have it on my network. I can scan to a laptop but cannot scan to my PC. Is there a setting to change this?

  • Problem in executing select statement using hetrogenous services

    I am trying to import data from SqlServer 2005 to oracle 10g using hetrogenous services. Oracle is installed on solaris 10 platform. I am running my query by Windows platform using Pl/Sql Developer when i run the following query, select * from GSecMs

  • Depreciation Forecast for 12 months

    Hi, Is there any report which gives the depreciation forecast for 12 months rather than 5 periods? Regards Madhu Vutukuri

  • EBP without XI

    Hi all, Is it necessary to implement an SAP XI to send/receive XML Invoice or Purchase Order in EBP 4.0? Is it necessary to configure the Integration Engine in EBP with the role of Business System as Application System. Thank you

  • DW8 CSS Window display problem

    Paging the font of all knowledge! In my CSS display window I have lost the 'tree' display - it's now showing the individual properties per item in a grid box - how do I get the original tree display back?? TIA! Buzby "There's nothing more dangerous t