Multiple line items uploading through LSMW

Hi,
  I am using LSMW as uploading tool for master data uploading in quality server.In the case of multiple line item i am feeling difficulty to use LSMW.
Plaese help me to find solution...........

Hi
First read all the BOM into an internal table and then you upload that internal table
LSMW
https://help.sap.com/saphelp_nw04s/helpdata/en/87/f3ae74e68111d1b3ff006094b944c8/content.htm
[ BOM UPloading BY  LSMW|LSMW BOM]
Regards
pavan

Similar Messages

  • Multiple line items upload in LSMW

    There are 265 line items in an entry. I have around 50 such entries to be uploaded vis LSMW.
    The problem is that, while creating a recording, do i need to record 165 line items (164 line items are of debit and only 165th line item is credit)??
    I am creating the recording for Tcode FB05 ie GL entry.
    PLEASE SUGGEST ME THE SIMPLE WAY TO UPLOAD THE LARGE SUM OF ENTRIES IN LSMW.

    Hi.
    You need not record for 165 line items. You can just record One entry in FB05, with 2 line items alone (one Debit and one credit). The Debit/ Credit indicator will be one of the fields in Recording.
    Now you need to structure this field in your template and create the Field Mapping.
    So, in the Excel template, you maintain all the multiple line items you want - against each line item you can mark this indicator as Debit/ Credit.
    Let me know if this works.
    Regards
    Srini

  • Unable to create PO with multiple line items through LSMW-BAPI method

    Hi All,
    I have a requirement of creating PO through LSMW. I can't use LSMW standard batch input program since there are some fileds not available and also it has many limitations. I'm using LSMW-BAPI method ( Business object BUS2012) which create IDOC and uses BAPI_PO_CREATE1 to ultimately post the PO in the system. I am trying to create PO from a single file which contains both Header and Item data.
    Now my problem is that everytime PO is being created with Single line item only. Everytime I am giving multiple item data in the source file LSMW is preparing multiple IDOCs for multiple line items. As per my understanding this is happenng since header and item is in the same hierarchy level of IDOC type PORDCR102 and the control record is inserted for every line item in the source file.
    It seems that through LSMW-BAPI  it is not possible to create PO with multiple line items. Can anybody provide some input regarding this? Thanks in advance.
    BR,
    Atanu Mukherjee

    Solved by myself.
    Earlier the problem was that LSMW was not being able to recognize items under same header. It was creating new IDOCs every time it gets a new item. To enable this we need to create two structure HEADERDATA and ITEMDATA.  Two additional identifier fields with identifier value 'H' and 'I' should be added in these two structures respectively. Then we need one sequential file with the identifiers field followed by the header and Item data. Example:
    H~header data
    I~item data
    I~item data 
    This would help the standard program to understand what are the items under same header and ultimately create PO with multiple line items.
    BR,
    Atanu Mukherjee

  • LSMW program to upload the sales order with multiple line items.

    Dear SD and PP Gurus,
    I am new to creating LSMW Program.
    I want to create a LSMW program to upload the sales order with multiple line items. I have read on SDN that it can be done on two phases. First Create Header Data than line items. IS IT TRUE??, Or
    Is there any procedure by which we can load the sales orders with multiple line items in a single run (part).
    I want to use Batch process, not a BAPI or IDOC procedure.
    I have created a program with
    object 0090
    Method 0000
    Program Name RVINVB10
    Program Type D
    Source Structure 1 - For Header and Source Structure 2  for Line Items.
    Mapped Field INDET (With Fix Value 1), ORDERTYPE, SALESORG, DISTCHANNEL, DIVISION, CUSTOMER, PONUMBER , DELVDATE, PRCGDATE, PMTTERM
    INCOT1 INCOT2 with Source Structure - 1 and
    Field INDENT (With Fix Value 2),  ITEMNO, MATCODE, MATQTY, SUOM, PLANT, BATCH, AMOUNT with Structure-2
    than maintained Structure relation ship, field Mapping, Specified Files, Assigned files, Read Data and other process,
    At final stage (Start Direct Input program RVINVB10) it is giving a message - Table name not allowed.
    Please tell me where I am wrong.
    Thanks in advance.
    DSC

    Dear SD Gurus n Experts,
    I have solved the above problem. But there is another problem appearing regarding the date format. Now system generating a message: Date . . is not valid.
    While I am using Date: YYYYMMDD format in flat file, which is SAP's Standard Format.
    In SDN Link: LSMW upload Sales Order using VA01/VA02     I have found that there are some date fields which are mandatory to filled. Here I have mapped
    VDATU - Requested delivery date,  BSTDK - Customer purchase order date,  PRSDT - Date for pricing and exchange rate,  BSTDK_E - Ship-to party's PO date, FKDAT - Billing Date, KORDT - Delivery Date,
    and PRGRS - Date type is Constant = D
    Can any one tell me, where is the priblem.
    With thanks,
    DSC

  • Legacy asset data upload for multiple line items

    Hello
    Legacy asset data upload for multiple line items- for example Building is an asset which is having different line items for purchasing of land,constructaion or renovation etc.........now to upload the legacy data what should be consider...only one line item for Building or numbers of line item.........
    which one is the proper way to do this exercise?
    regards

    Hi,
    It completely depends on clients requirement. but following are few approaches:
    1. Define Building as Asset Class.
    2. Create a Building at specific location at asset code and
    3. create asset sub numbers for other components.
    other approach would be:
    1. Define Building as Asset Class.
    2. Create a Building at specific location at asset code and
    3. create further asset codes for other components where field description will be used for relating each other.
    Regards,
    Sayujya

  • How to handle multiple line items in lsmw

    hi all,
    how can i handle multiple line items in lsmw either by using direct input method or BDC recording.
    first preference is Bdc recording in lsmw . can u tell me the steps in detail.
    thanks,
    harini.c

    Hi Harini,
    Check this link.
    BDC - Header with multiple line items.
    Regards,
    Arun

  • LSMW- Recording : Multiple Line Items

    I am trying to create an LSMW recording that simulates transaction O3I7.
    The thing is that we have different line items. This is similar to a sales order where we have header details and items details.
    I created a recording. Then I created two structures. One header Structure and one Item structure. I define the specific header fields under the header structure and the item fields under the item structure.
    However LSMW gives me an error. Because in LSMW each recording is considered as one target structure. I can't have more source structures than Target structures. Since I have One recording LSMW gives me an error.
    I tried to create two recordings but this does not work since LSMW will read each one as a different transaction.
    Does anyone know how to create LSMW recording with multiple line items so he/she can help?
    Thx

    Hi,
    Not sure about the transaction that you have mentioned. However, in LSMW recording, you can load the items along with the header in 2 steps using 2 data files.
    Step1: Create the header along with the first line item. Here you use a file which contains the header data along with the first line item data.
    Step2. Add subsequent line items to the header. In this case you need to enter the transaction in change mode. The data file may contain items data only. Please be sure to have an identifier at header level to add the items in that specific document.
    Hope this helps.
    Best Regards, Murugesh

  • BDC for multiple line items (VA01)

    Hi Experts,
      I create a BDC for VA01 transaction for single line item in that now i want to upload multiple line items also with  o/p of total no. of records uploaded, no. of records posted and the no. of error records...
    Can any body explain with sample code...

    Hi,
    if the flat file is containing header and item records...
    first split those records tooo two internal tables header and item..
    Loop at header ...
      process of recording steps for header....
    Loop at item...
    here create a varialbe with char 2 .. for index value....
      process of item recording steps..
      increment the index value by 1....
      here u have to pass  'p+'  OK_CODE..
    Endloop ..(item)
    Endloop...(header)
    for more info goo through this link...
    http://www.sap-img.com/bdc.htm
    hope helpful
    Raghunath.S

  • 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  *

  • Ecatt multiple line items

    Hi Gurus,
    i am creating ecatt with TCD recording. My requirement is if i record a sales order with one line item can i use the same ecatt for multiple line items.
    for example if i create a test script z_va01 in this i record a sales order having one line item. For this i created test data and configaration. Can i use same ecatt to create a sales order having multiple line items.
    Thanks in advace
    anil

    Hi guys,
    I know it has been a long time since this thread was opened, but I'm facing with the same problem.
    I created the sales order with SAPGUI REC, and added a loop for line item creation and schedule line creation.
    *LINE ITEM NUMBER
    DO ( V_LNIT_NO ).
         SAPGUI ( VA02_2010_STEP_2 ). --> Adding line item
         V_LI_ROW = V_LI_ROW + 1.
    ENDDO.
    And i amended the line item selection Guielement ID - (Changes are in bold)
    'wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPLJ3AD:2930/ssubSUBITEM_L2:SAPMJ3AS:2001/tblSAPMJ3ASTCTRL_LINE_ENTRY/ctxtJ_3ASZDI-MATNR[3,<!V_LI_ROW!>]'
    so that the loop will make the line item selection to the next line.
    My requirement is to upload the data through a excel file, so I created a test configuration with the relevant variables. But the data from the excel line wont populate the loop data, it only repeats the data from the same line over and over again.
    How can I fix this? Please help.
    Ps - I have tried to make the the MATNR_D to a table by adding [], --> MATNR_D[] - Table. And it becomes a <INITIAL>, and by clicking on the value column cell, it goes in to parameter I_MATNR (I defined this)
    and you can add Parameter 1, 2,  3 etc and within the parameter you can add table-line. I read that this is the solution but, the variable is not recorded on the excel sheet as a column. Please help

  • Bdc sales order multiple line items

    hi friends,
    i prepare multiple sales orders multiple line items through  single flat file
    in bdc program.
    i know information about ...
    H
    I
    I
    I
    BUT my problem is
    H
    I
    I
    H1
    I
    I
    H2
    I
    I
    how will develop this code?

    George Bush,
    Answer fir this question is, you need to do basic ABAP Training.
    Search for SAP ABAP Training Courses.
    You need to build logic in you program by defining appropriate internal table and use loop events to build BDC.   BDC is old style of programming. I would advice you to use BAPI with immediate order processing.
    If you want BDC, you can also try to use LSMW by defining appropriate inbound data structures.
    If you need help let me know.
    Thanks & Regards,
    Mahesh Apte

  • 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.

  • 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

  • Bdc for multiple line items

    hi all,
    i am developing bdc program to upload multiple line items for ml10.
    i am uploading folling fields
    spec_no
    astyp
    txz01,
    sort1,
    waers,
    matkl,
    ekorg,
    srvpos ' service number
    menge. 'quantity
    service number and quantity are multiple line items.
    i have developed a code which is taking single record only, it is not working for multiple service no and quantity.
    include bdcrecx1.
    parameters: filename like rlgrap-filename.
    data: begin of record,
    SPEC_NO(10),
    ASTYP(4),
    TXZ01(40),
    SORT1(20),
    WAERS(5),
    MATKL(9),
    EKORG(4),
    NEW_ROW(10),
    SRVPOS(18),
    MENGE(13),
    end of record.
    data: itab_program like record occurs 0 with header line.
    At Selection Screen
    at selection-screen on value-request for filename.
    perform query_filename changing filename.
    *START-OF-SELECTION
    start-of-selection.
    *-- Upload flat data to ITAB.
    perform upload_to_itab.
    *{ chg001 -- modified as per requirement
    perform open_group.
    loop at itab_program.
    perform upload_programs.
    endloop.
    perform close_group.
    FORM UPLOAD_TO_ITAB *
    form upload_to_itab.
    call function 'WS_UPLOAD'
    exporting
    CODEPAGE = ' '
    filename = filename
    filetype = 'DAT'
    HEADLEN = ' '
    LINE_EXIT = ' '
    TRUNCLEN = ' '
    USER_FORM = ' '
    USER_PROG = ' '
    DAT_D_FORMAT = ' '
    IMPORTING
    FILELENGTH =
    tables
    data_tab = itab_program
    EXCEPTIONS
    CONVERSION_ERROR = 1
    FILE_OPEN_ERROR = 2
    FILE_READ_ERROR = 3
    INVALID_TYPE = 4
    NO_BATCH = 5
    UNKNOWN_ERROR = 6
    INVALID_TABLE_WIDTH = 7
    GUI_REFUSE_FILETRANSFER = 8
    CUSTOMER_ERROR = 9
    OTHERS = 10
    if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    write : 'File opening error.'.
    endif.
    endform.
    FORM QUERY_FILENAME *
    --> P_FILENAME *
    form query_filename changing p_filename.
    data : tmp_filename like filename.
    call function 'WS_FILENAME_GET'
    exporting
    def_filename = filename
    mask = ',.txt,.txt.'
    mode = 'O'
    title = 'Select the file to Upload'
    importing
    filename = tmp_filename
    exceptions
    inv_winsys = 01
    no_batch = 02
    selection_cancel = 03
    selection_error = 04.
    if sy-subrc = 0.
    filename = tmp_filename.
    endif.
    endform.
    *perform open_group.
    *& Form UPLOAD_programs
    text
    --> p1 text
    <-- p2 text
    form upload_programs.
    perform bdc_dynpro using 'SAPLMLSM' '0100'.
    perform bdc_field using 'BDC_CURSOR'
    'TEMP_SPEC-ASTYP'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'TMP_SPEC-SPEC_NO'
    ITAB_PROGRAM-SPEC_NO.
    perform bdc_field using 'TMP_SPEC-ASTYP'
    ITAB_PROGRAM-ASTYP.
    *****************************************************************SCREEN1
    perform bdc_dynpro using 'SAPLMLSM' '0200'.
    perform bdc_field using 'BDC_CURSOR'
    'TMP_SPEC-EKORG'.
    perform bdc_field using 'BDC_OKCODE'
    '=SRV'.
    perform bdc_field using 'TMP_SPEC-TXZ01'
    ITAB_PROGRAM-TXZ01.
    perform bdc_field using 'TMP_SPEC-SORT1'
    ITAB_PROGRAM-SORT1.
    perform bdc_field using 'TMP_SPEC-WAERS'
    ITAB_PROGRAM-WAERS.
    perform bdc_field using 'TMP_SPEC-MATKL'
    ITAB_PROGRAM-MATKL.
    perform bdc_field using 'TMP_SPEC-EKORG'
    ITAB_PROGRAM-EKORG.
    *****************************************************************END OF SCREEN2
    perform bdc_dynpro using 'SAPLMLSP' '0201'.
    perform bdc_field using 'BDC_OKCODE'
    '=BZE'.
    *perform bdc_field using 'RM11P-HEADTEXT'
    ITAB_PROGRAM-TXZ01.
    perform bdc_field using 'BDC_SUBSCR'
    'SAPLMLSP'.
    perform bdc_dynpro using 'SAPLMLSP' '0201'.
    perform bdc_field using 'BDC_OKCODE'
    '=BZE'.
    perform bdc_field using 'BDC_CURSOR'
    'ESLL-MENGE(01)'.
    perform bdc_field using 'ESLL-SRVPOS(01)'
    ITAB_PROGRAM-SRVPOS.
    perform bdc_field using 'ESLL-MENGE(01)'
    ITAB_PROGRAM-MENGE.
    perform bdc_dynpro using 'SAPLMLSP' '0201'.
    perform bdc_field using 'BDC_OKCODE'
    '=SAV'.
    perform bdc_field using 'BDC_SUBSCR'
    'SAPLMLSP'.
    perform bdc_transaction using 'ML10'.
    endform. " UPLOAD_programs
    can any body help me in this regard.
    thanks in advance
    siva

    Loop at itab_program.
    < Here will be your BDC Program>
    call transaction..... .
    endloop.
    and all the records in you internal table itab_program will get updated...
    Regards.
    Jayant
    <b>Please award if helpful</b>

  • Same material can exist on multiple line items for the same order.

    Hi
    Is there any specific customising setting or web shop setting through which we can restrict user to add same material on multiple line items for the same order ?
    Regards

    No.
    But if this is a must requirement, you can do an elaborate check during order save in ORDER_SAVE BAdI and return error. So, it will be only during order save.
    Eawar Ram
    http://www.parxlns.com

Maybe you are looking for

  • How to restrict pdf printing on a condition

    Hello, We generate the pdf and distribute it to the user immediately. I've a business requirement to allow the user to print the pdf a maximum of 3 times. I was able to add the javascript to the pdf to make a webservice call that would keep a track o

  • Please help me regarding Secure RMI Applet Application

    Hi Friends.. Currently i use Java Card 2.2.1.. I'm learning about SecureRMIDemo application that shipped with JCDK 2.2.1.. Assume that i've loaded the SecureRMIApplet.cap successfully, and i've created the Secure RMI Client using SmartCardIO.. And th

  • Change email

    Hi............ In oracle apps a user name is ajit.kumar and email is [email protected] Now I want to change only user email id [email protected] to new email id [email protected] How it is possible. Plz give me exact solution , its very urgent ......

  • Extended Classic vs Standalone

    Hi, 1. Can i choose between Extended Classic vs Standalone, I might sound stupid, still i want to hear from this forum. 2. Per my understanding, i can choose to be fully classic by activating Activate Extended Classic Scenario or Partly Classic and E

  • Problem with transition only affecting one clip.

    I'm trying to use the dip to black transition to blend two clips together. It is giving me fits in that it only wants to apply it to one side of the clip.   This means that instead of dissolving or fading to black it jerks to black and then fades bac