LOOPING THRU LINE ITEM

HI IAM TRYING TO VALIDATE  FIRST CHECKING WHTETHER THE BILLING PLAN IS AT THE HEADER LEVEL OR AT THE ITEM LEVEL.
HOW CAN I LOOP THRU ALL THE ITEMS IF THE BILLING PLAN IS AT THE ITEM LAVEL I NEED TO LOOP THRU ALLL THE ITEMS!!SOME OF THEM MAY HAVE BILLING PLAN AT THE ITEM LEVEL AND SOME AT THE HEADER LEVEL.
PLSS TELL ME HOW TO DO IT FOR THE ITEM LEVEL.
POINTS PROMISED!!

i have done the code this way will it work???
TYPES: BEGIN OF gst_fpla,
        fplnr TYPE fpla-fplnr,
        vbeln TYPE fpla-vbeln,
        rfpln TYPE fpla-rfpln,
        END OF gst_fpla.
  TYPES: BEGIN OF gst_fplt,
        fplnr TYPE fplt-fplnr,
        fproz TYPE fplt-fproz,
        fareg TYPE fplt-fareg,
        END OF gst_fplt.
TYPES: BEGIN OF gst_fplt1,
       fplnr type fplt-fplnr,
       end of gst_fplt1.
  DATA: gi_fpla TYPE STANDARD TABLE OF gst_fpla.
  DATA: gi_fplt TYPE STANDARD TABLE OF gst_fplt.
  DATA: gw_fpla TYPE gst_fpla.
  DATA: VAR1(1) TYPE C.
  DATA: VAR2(9) TYPE C.
  DATA: GW_XFPLA LIKE XFPLA.
  DATA: gw_fplt TYPE gst_fplt.
  TYPES: BEGIN OF GST_RFPLN,
          RFPLN TYPE FPLA-RFPLN,
        END OF GST_RFPLN.
DATA: GI_RFPLN TYPE STANDARD TABLE OF GST_RFPLN.
DATA: GW_RFPLN TYPE GST_RFPLN.
data: gi_fplt1 type standard table of gst_fplt1.
data: gw_fplt1 type gst_fplt1.
  IF ( sy-tcode = 'VA01' OR sy-tcode = 'VA02' OR sy-tcode = 'VA21' OR  sy-tcode = 'VA22' ) AND ( vbak-auart = 'ZQT' OR vbak-auart = 'ZNS' ).
IF RV45A-KFREL = 'X'.
  IF XFPLA[] IS NOT INITIAL.
  LOOP AT XFPLA INTO GW_XFPLA.
  GW_RFPLN-RFPLN = GW_XFPLA-RFPLN.
  APPEND GW_RFPLN TO GI_RFPLN.
  ENDLOOP.
SPLIT GW_XFPLA-RFPLN AT '$' INTO VAR1 VAR2.
DATA: BEGIN OF MRFPLN,
          rfpln1 type c length 1 value '0' ,
          rfpln2 type c length 9 value '',
          end of MRFPLN.
      MRFPLN-rfpln2 = VAR2.
DATA: RFPLN TYPE STRING.
  RFPLN = MRFPLN.
CONDENSE RFPLN.
  SELECT fplnr vbeln rfpln FROM FPLA INTO TABLE gi_fpla  FOR ALL  ENTRIES IN GI_RFPLN WHERE fplnr = GI_RFPLN-RFPLN.
ENDIF.
  loop at gi_fpla into gw_fpla.
  if gw_fpla-vbeln = '' and gw_fpla-rfpln = ''.
  READ TABLE xfpla WITH KEY rfpln = gw_fpla-fplnr.
  if sy-subrc NE 0.
  MESSAGE  W047(YD01).
  write:'invalid reference number'.
  else.
  gw_fplt1-fplnr = gw_fpla-fplnr.
  append gw_fplt1 to gi_fplt1.
    ENDIF.
    ENDIF.
    ENDLOOP.
  ENDIF.
  SELECT fplnr fproz fareg from fplt into  TABLE GI_FPLT for all entries in gi_fplt1 where fplnr = gi_fplt1-fplnr.
  LOOP AT GI_FPLT INTO GW_FPLT.
  READ TABLE XFPLT WITH KEY FAREG = gw_fplt-fareg.
  if sy-subrc NE 0.
  WRITE:'BILLING RULE IS INVALID'.
  ELSE.
WRITE:'CORRECT BILLING RULE'.
  READ TABLE XFPLT WITH KEY FPROZ = gw_fplt-fproz.
  if sy-subrc ne 0.
  write: 'billing percentage is invalid'.
  else.
  write: 'valid billing percentage'.
  endif.
  ENDIF.
  ENDLOOP.
ELSE.                                                "ELSE FOR RV45A
CLEAR: GI_FPLA.
CLEAR: GI_FPLT.
CLEAR: GI_RFPLN.
CLEAR: GI_FPLT1.
REFRESH: GI_FPLA.
REFRESH: GI_FPLT.
REFRESH: GI_RFPLN.
REFRESH: GI_FPLT1.
do the validations for item level.
  ENDIF.                                                "for  rv45a-if.
  ENDIF.

Similar Messages

  • Printing In Main Window in Smartform After All Line Items

    Hi All.
    I have this requirement wherein I have to Print Export Charges in main window , below all the line items.
    There is a loop on line item tables and I am printing all line items in the main window.
    How to print this export charges after all the line items?
    Points are assured !!!!

    Hi,
    Create two row line in the main area of the table. First one for line items and the next for the export charges.
    Hope this ll help u.
    (Sorry, this ll print export charges after every line items, try to print the export charges in the footer of the table.)
    Regards,
    Prabhu
    Edited by: Prabhuraj Krishnan on Apr 15, 2008 11:05 AM

  • 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 for F - 43, Multiple posting keys,multiple line items

    Dear gurus,
                     I need to develop a bdc for  F-43, it it working for multiple posting keys with two line items, but not working for multiple line items, can you tell me where to loop the line items.
    regards,
    vidyasagar yadav.

    F-43 is actually FB01 (with two parameters, check it with SE93).
    So you could use the following FMs in sequence to build the BDC :
    POSTING_INTERFACE_START
    POSTING_INTERFACE_DOCUMENT
    POSTING_INTERFACE_END
    Else
    Re-execute transaction SHDB for a document with 2 items and for a document with a dozen items and analyze the result.
    Use a BAPI like BAPI_ACC_INVOICE_RECEIPT_POST or BAPI_ACC_DOCUMENT_POST
    Regards,
    Raymond

  • AUC Asset Number and Main Asset Number Line Item Details

    Hi Assets Experts,
    My Customer wants see the details of line item from AUC asset to Main Asset Number, we have create Capital PO Rs. 100000/- One Lac  and Assign Internal Order No.600600 in PO.when good receipt MIGO. with reference internal Order no.600600 for Particular AUC Asset, coz we have assign the Internal Order No.600600 into  AUC Asset.number 900600, now we started commissioning for Plant Asset and booked some expenses like 25000 thousand now Asset has been use for production. so we have settlement the AUC asset to Main Asset . Main Asset Number is 200600
    we have settled thru KO88 then AIAB and AIBU , in AIBU give FXA No. i.e 200600.
    So whenever want to see the particular Asset Number i.e 200600 should be shown all the line item here only two line item one is GR. Rs. 1,00,000/- and another line item is 25,000/- Booked Expenes.
    how can we see the details in SAP. thru line item wise. wht T.Code
    Kindly advice wht should i do for the fetch the details of Particular main Asset i.e 200600 which show two line item.
    Kind regards
    Pranav Kr. Gupta
    SAP FICO Consultant

    Thanks Narasimhulu,
    for immediate reply,
    But sir in T.Code AB03  we can see the AUC  Asset Details Line Item, wht Customer wants link between from AUC Asset  number to Main Asset  number as well so that it is easy to understand under AUC Asset see the Details  i said mentioned in above mail,
    Against AUC Asset Number 900600 to display main asset as well i.e 200600.
    there is any T.code where we can see the links from AUC to Main Asset Number should be display along with Line item.
    Kindly help me in this regards
    for Audit Purpose customer requirement.
    its urgent.
    Note : We working on  ECC6, but NEW GL Document Splitting not activated... till now.
    Kind regards
    Pranav Kr. Gupta.
    SAP FICO Consultant

  • Separate Dunning Letter for Individual line items

    Hi All,
    Please let me know if it is possible to produce a separate dunning notice for each individual line item in an invoice.
    Thanks,
    Naresh

    Hi,
    1.loop at Line item.
       Write_form.
        endloop.
    2.This will give the seperate dunning letter for each invoice line item.This can be write in the driver pg.
    Regards,
    Shiva Kumar

  • Line item not displaying thru fbl3n

    Hello Dear,
    I am not able to see my posting document thru f-02 thru t.code fbl3n. I have checked the master data of the gls there is already tick in line item display. For it i run a programe that is RFSEPA01,  after running this programe i am able to see my posted document but not current post document.
    Pls help it is very urgent.
    Thanks in advance

    Hi,
    Although the question is not clear.
    But before running the program, you must block the questioned GL account for posting and run the program and again unblock the same and execute FBL3N report.
    Still , if you are not getting lines in FBL3N report, please check whether your new doc has line items in table BSEG or not thru SE16.
    Regards,
    Srinu

  • Vendor line item clearing thru f-44

    Hi guru
    I have posted one document through FB60 and and made credit memo thru same transaction code. When I was matching both the document trhu F-44 it is giving an error message.
    u201Cconsolidated companies est150 and are different u201C
    Message no.f5080
    when i tried to replciate this scrnario in development its working fine. any inputs please
    thanks
    Sunitha
    Edited by: sunitha reddy on Oct 20, 2008 5:24 PM

    hi shivaji
    Wonderful, yes you are correct in credit memo the tranding partner is there for all the line item. But in the invoice the trading partner is not there
    But my doubt is how the credit memo is picked up trading partner?
    regards
    Sunitha

  • Requirement to populate the Profit center field of Vendor line item thru...

    Hi,
    My requirement is to populate the Profit center field of Vendor line item.
    For this, I want to write a substitution where based on the Business Area of Vendor line item, the system should populate the Profit center while saving.
    Is it possible thru Validation & Substitutions...
    Plz guide me in writing this
    Points will be suitable rewarded for replies.
    regards
    AVM

    Tcode: GGB1
    An example shows how to make a G/L account available for line item substitution.
    GGB1
    Click FA – Doc Header
    Click Create Substitution icon
    Enter the Text
    Click Create Step icon
    Click the field u want – Say - BKPF- BKTXT
    Choose the option – Say :Constant value
    Give description of ur step
    Click Prerequisite
    Double Click Structure BKPF
    Double Click BKPF-AWKEY
    Click Constant button
    Enter the Text u want to make it appler in the Reference key
    Click Substitution and enter the constant value u want
    Go to Tcode: GGB4
    Click Substituted Fields
    Give ur table and field (Here - BKPF- BKTXT)
    Do it in a similar way..if u cannot proceed, let me know the exact field values..and i can take screenshots and send u across
    Thanks,
    Sridevi

  • To update the po line item data into sap thru bdc

    Hi Experts,
    My requirement is to create a bdc program .  get the po line item data from the file and will update in sap thru bdc .so please help on source code how to create .
    Thanks advance,
    Prashanth p.

    Hi,
    Check this link,
    /message/5215197#5215197 [original link is broken]
    Regards,
    Bhanu

  • LSMW- line items thru bdc recording

    I m creating a lsmw thru bdc recodring for me21.
    the prob is ...how to upload the line items ? if i do in general it will only upload one line item for order....help  me in solving this.

    Hi
    When you do the recording in LSMW then if the options for multiple line items are available in ME21 then you can do the same with the LSMW recording also.
    All you have to do is map the line items fields of the SAP structure to the line items of your upload source structure.
    The Source Structure has to be defined as HEADER structure and the LINE item strucuture at the next level.
    Then in the HEADER structure in the Source Field steps ,Name the first field as Record Identiifer and for the properties of the field give the value for Identifying Field Content as 'HEADER'.
    Similarily for the LINE structure in the Source Field steps ,Name the first field as Record Identiifer and for the properties of the field give the value for Identifying Field Content as 'LINE'.
    This would allow you to identify the HEADER and LINE for the files to be uploaded.
    Please check this link also
    Conversion - Doc with multiple line items - LSMW
    Hope this is clear and is helpful.

  • Deliver line item Creation thru Program

    Hi guys,
    please help me to create delivery creation for a ship-to party and line item creation thru any finction module when the ship-to party has different materials ordered.
    is there any standard Function module to just create a delivery line item when the delivery is not completely processed.
    Please help me in this issue.

    check
    BAPI_INB_DELIVERY_CHANGE       Change inbound delivery
    BAPI_INB_DELIVERY_CONFIRM_DEC  BAPI for inbound delivery verification from a decentralized system
    BAPI_INB_DELIVERY_SAVEREPLICA  BAPI Function Module for Replication of Inbound Deliveries
    BAPI_OUTB_DELIVERY_CHANGE      BAPI for Change to Outbound Delivery
    BAPI_OUTB_DELIVERY_CONFIRM_DEC BAPI for Outbound Delivery Verification from a Decentralized System
    BAPI_OUTB_DELIVERY_SAVEREPLICA BAPI Function Module for Replication of Outbound Deliveries
    BAPI_OUTB_DELIVERY_SPLIT_DEC   BAPI for Subsequent Outbound-Delivery Split from a Decentralized Syste
    u have to CHANGE Delivery i.e in change mode u can ADD.
    otherwise check user exits
    *        FORM-Routinen für Userexits
             include mv50afzz.
             include mv50afz1.
             include mv50afz2.
             include mv50afz3.          "Userexit neu zu Release 3.0A
             include mv50afzk.          "Userexit 4.6A (KOMKG/KOMPG)
             include mv50afzl.          "Userexit 4.6A Liefergruppen
                                                                   "n_693000
             include mv50afzp.          "Userexit for pricing screen input
    Regards
    Prabhu

  • Service entry sheet creation thru bapi for multiple line items

    HI All,
    WE are using BAPI_ENTRYSHEET_CREATE bapi for the creation of service entry sheet against service PO.
    We are able to create the service entry sheet successfully with single sevice line item using this bapi,but when we are going for multiple service line items in item services tab in aPO, we are able to create the service entry sheet with only one service line item although there are 4 service line items in the item service tab in the po.
    We know that this bapi cannot support more than one po line item as it has provision for only one line item at the header leavel in the bapi
    will be rewarded for the best solution.
    Regards,
    velu

    Hi,
    Do you know the note 420334?. There you have very useful information.
    Best Regards,
    Arminda Jack

  • Make changes to auto generated line items when posting invoice thru MIRO?

    Hi All,
    My requirement is to make some changes in line items data when posting invoice through MIRO transaction.
    I have written a substitution for the same, The issue is that some line items get automaticaly created (i.e inter company posting). I need to make changes to these line items as well but substitution is not being triggered for these auto generated line items.Is there any way by which I can update in these line items as well ?
    further do we have any internal table which holds all the line items at runtime....to which I can refer and make the changes. I have searched but could not find one.
    Can anybody provide some inputs on this.
    Thanks,
    Lucky.

    Hi Kaushik,
    Thanks for your reply.
    I am using BADI INVOICE_UPDATE but here we will not be having line items which are auto generated.
    When we do inter company posting, line items are automatically created and these are not avaliable in the BADI. I am not sure if we can trap these line items any where.....the possible alternative which I can think of is to use memory reference and modify the internal table which holds all the items but unfortunately I am not able to find any such internal table to refer to at run time ...have u got any idea on this?
    Thanks,
    Lucky.

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

Maybe you are looking for

  • Can we map mutiple Account ID's with a single House Bank in OBVCU? (FI-TRM)

    Hi, I want to map mutiple account ID's with single house bank in OBVCU for the purpose of making Automatic Payment Transaction(F111) for my Treasury postings. For eg:- Bank Master-FI12 House Bank  Acc ID      GL                   BOB         BOB01   

  • A region with borders only no title or title bar

    Hello Expert, I am trying to create just a border around the region, In essence a region with just border and no title or title bar. There is no simple approach available for this option. Can anybody shed some light on this matter. APEX Version : 4.1

  • A minor bug with Application Bulider menu in 2.2.1

    I have two apex instances which are used primarily for development and periodicaly synchronized via application exports. After some time of such activity I lost my application in the application builder menu on the first instance (still have access t

  • How to add music albums?

    I was adding music albums through iTunes and when I looked on my ipod under music then albums, I see all the songs listed. Is there a way I can list just the albums and then access the songs after clicking on one of the albums? It seems there is no d

  • How to Arrange Photos on an iPhoto calendar--Customize?  Reconfigure?

    When making a calendar, is it possible to customize the layout of the photo (top) pages? (As you can do on book in Aperture?) For example, create multiple photo boxes laid out in a custom pattern? As to the pre-determined layouts, how can I reconfigu