How to customise basic price control

how to customise basic price control

Hi,
in table EKKO u will get the the field EBELN, which is for purchasing document. here if u filter this document with value "F" in field BSTYP (Purchasing document category) u will get the PO numbers.
next with this PO number u have to go to table EKPO, here u will get the material number MATNR and NETPR (Net price in purchasing document (in document currency)), NETWR (Net order value in PO currency), BRTWR (Gross order value in PO currency).
hope it will resolve ur issue.
regards
jash

Similar Messages

  • How to view basic price

    Dear Friend
    How can I see basic price, price w/o taxes etc in reference to PO list? in me2l, me2n,me2m , mb51etc I get price with taxes.
    Can I get unit basic price with reference to po for a list of POs?
    Thanks
    Sangeeta

    Hi,
    in table EKKO u will get the the field EBELN, which is for purchasing document. here if u filter this document with value "F" in field BSTYP (Purchasing document category) u will get the PO numbers.
    next with this PO number u have to go to table EKPO, here u will get the material number MATNR and NETPR (Net price in purchasing document (in document currency)), NETWR (Net order value in PO currency), BRTWR (Gross order value in PO currency).
    hope it will resolve ur issue.
    regards
    jash

  • Price control change

    Hi Experts,
    How to change the price control for a Raw material from Standard to Moving Avg Price (Material Ledger Active Status).
    This Raw materials having last year in Standard, now wants to change as per the requirement to MAP. Please advice.
    Regards,
    Raghav

    Hi Experts,
    My scenario is our company using ECC6.0, and the material ledger is activated.
    Wrongly last fiscal year for one plant nearly 50+ materials created under standard price with price determination as 2.
    (ROH - with Price control 'S' + Price Deterimination = 2) and all the materials having stock and values, transactions is going on.
    Now we realized that the raw materials created wrongly in standard price and want to change the price control and price determination. If we change the materials determination and control in CKMM what is the next impact for calculating next prices through cost estimates (CKMLCP or CK40N) and is it suggestable to do?
    We need your valuable inputs / advices....
    Thanks and Regards,
    Raghav.

  • How to configure FIFO, LIFO price control in MM?

    Hi all,
    In MM, I only see price control of standard and average.
    If I want to control material pricing by LIFO or FIFO method, how to do?
    Thanks
    Giang

    Hi
    LIFO and FIFO valaution methods are used for balance sheet valuation in some countries.
    <b>Balance sheet valuation</b> : The objective of balance sheet valuation is the calculation of material prices for subsequent use in external or internal balance sheets, typically for valuation of the stocks of current assets. Generally, the conditions include meeting legal requirements, complying with corporate group guidelines, and implementing internal company objectives regarding accounting policy. In this context, the company code is regarded as an independent accounting unit
    The SAP System provides the following techniques for balance sheet valuation:
    1.Lowest Value Determination
    2.LIFO Valuation
    3.FIFO Valuation
    The procedure used depends first on country-specific tax and commercial laws. Use of procedures that are legally permitted but not stipulated can be varied according to internal company experiences and preferences.
    Alongside the prices from lowest value determination, LIFO procedures, and FIFO procedures, the following prices are, in principle, possible as the maximum value for the balance sheet price.
    *Standard price
    *Moving average price
    *Period moving average price from the material ledger
    *Average Receipt Price
    Regards
    Ramakrishna

  • *How to change the Valuation Category & Price control in material master*

    Hello SAP Gurus,
    I have a requirement to change the valuation category from 'X' to '  ' in accounting view of material master.
    -> I have cancelled all the open PO's & SO's for the material
    -> I have ensured that there is no stock for the material in that valuation area.
    But still I get an error message that batch already exists for the material. When I check entries in MCHB I find that there are previous entires in MCHB with zero stock.
    I have gone through the SAP note 155874 which recomends the archiving the effected objects.
    Please let me know is there any work around to change the valuation category from 'X' to '  ' & price control 'V' to 'S'. I also need to change from '  '  to 'X' for a few materials.
    Thanks for your advise.
    Best Regards,
    Narayan.

    Note 155874 cleary describes what has to be done to be able to change.
    There is no workaround, and if you change anything in the tables directly, then this will cause inconsitencies, as described in this note as well.

  • How can i take Basic price value as Net value in sales order

    Hello SD experts,
    I have constructed a pricing procedure, and in that have taken condition type for basic price as rate (cond. type= Price) and have another 3 condition types as surcharges for some internal calculation (but i have to show them in pricing procedure).
    Net value in order is showing a total of all condition types (basic price condition type+ all 3 surcharges condition type's value)
    for ex;
    ZRAT ---Basic Price
    ZMRP-- Mrp/pcs rs.
    ZDOZ--- Mrp/Doz Rs.
    ZTAV--- Total Value Rs.
    in this case, when order creates in pricing net value amount shows total of all condition types above and as..
    Now in this case i have to show only Basic price condition value as Net value in the order.... 
    i am just confused with the subtotal, requirement and calculation form for condition base....(do i need to go for a new routine creation?)
    Could you please help me out and please guide me, what should i do for above situation....
    Any help would be a great....
    Thank you

    Dear  G. Mallikarjun ,
    Put A in the subtotal field against the Price condition type and check.
    If the other condition types (discounts) are for internal calculations, please do as advised by Lakshmipathi.
    check and revert back.
    Thanks & Regards,
    Hegal Charles

  • How can we settle price diff. in profit center valuation to COGS acc?

    Dear All,
    We have activated multiple valuations/transfer prices.
    We do perform cross company code material sale. We have assigned each profit center at company code level.
    We have set transfer price variant in t.code 8kez and have customized  accounts in Controlling-Profit Center Accounting-Transfer Prices-Settings for Internal Goods Movements -Define Account Determination for Internal Goods Movements.
    We had got posting logic described in http://help.sap.com/erp2005_ehp_05/helpdata/en/eb/13811243c411d1896f0000e8322d00/frameset.htm
    Now after actual costing run price differences in profit center valuation were not transferred to next level as we expected.
    They have stayed as not distributed at sender  (company code) profit center level.
    How can we distribute price differences in profit center valuation to COGS account of sender profit center defined due to
    http://help.sap.com/erp2005_ehp_05/helpdata/en/eb/13811243c411d1896f0000e8322d00/frameset.htm?
    With best regards,
    Kamila.
    Edited by: Kamilana Zhakenova on Dec 25, 2011 10:56 AM

    Dear Gurus,
    There is an addition to post above.
    Transfer price was defined in SD module in Sales and Distribution-Basic Functions-Pricing-Pricing Control-Define Condition Types.
    Now it is taken during cross company code sale from scheduling agreement and invoice.
    (Please, do not take into account that we have customized transfer prices in 8kez)
    But the issue is price differences in profit center valuation settlement.
    They do settle to the next level  for receiver company code  like in group valuation.
    We need to settle them to COGS account at company code sender side.
    How we can do that?
    With best regards,
    Kamila.
    Edited by: Kamilana Zhakenova on Dec 26, 2011 11:37 AM

  • Purchase order report with basic price and Excise duty values

    Hi All,
    Is there any standard report in SAP to get the Purchase order basic price / qty and its Excise duty values ? Since we are including Excise duties for non - codified items (w/o material master and with cost center 'K') Purchase order and the ed values are added to the cost and the requirement is to see the split up (Basic priceEdEcs+Hcs)for these Purchase orders for the vendors. If there is no std report then please let me know how to link Purchase order table with this Condition value table in query to get the desired report.
    Thanks in advance
    Benny

    Hi,
    there is no standert report to fullfill this requierment
    you have to create this report with the help of abaer
    for that which tax code you are using its importnat thing
    for po table EKPO
    1. A524 (Normal supply point / Material) it will return condition record number for condition type.
    2. KONP (Conditions (Item)) .
    3. J_1IMTCHID (Combination of Material Number and Chapter ID).
    4. J_1IEXCTAX (Tax calc. - Excise tax rates
    5 get the IR no. from RBKP and RSEG, and get the relevant FI doc no. and goto BSET table
    for IR number  to get from table apply logic for doc type RE ,you will get fi number nad in refernce field you will get invoice number + fiscal year
    Map this by refernig on po for which grn and invoice happen
    Regards
    Kailas Ugale

  • Moving average price calculation logic of material with Price Control "S"

    Dear Gurus,
    As you know that there is a Moving price and standard price icon in the material master.
    I want to understand the calculation logic of the moving average price of the materials having price control "S"
    How the system calculates the MAP for standard price materials? The receipt from the process order I suppose is valuated at the process order cost after settlement, but if the issue has hapened for the material does the system recalculate the issue price also?
    Below is the sample process order receipt and issue scenario:
    Receipt from process order 161000000223
    300 kg and GR at standard cost value is Rs 5892
    Issue to process order 162000000294
    250 kg and GI at standard cost value is Rs 4910.
    Thus the balance at period end is 50 kg and balance at standard cost value is Rs 982.
    Here in process order 161000000223 the actual cost is 10 Rs. Then how will the system calculate the MAP?
    Thanking You,
    Amit Dhanurdhari

    Hi
    Try the following calculations,
    One of them will work depending upon your version and support pack
    Expected MAP calculation ( As with price control V)
    = ((Qty before transaction*MAP + Transaction Qty * transaction
    Price)) / quantity after transaction
    New Method ( when price control is S)
    = Old MAP + (Price Variance w.r.t Standard Price/Qty after transaction)
    Also go through the following notes,
    Note 1225167
    1253944
    518485 FAQ: Valuation of goods movements
    212286 Overview note: Valuation during goods movements
    209864 Moving average price is disproportionately large
    202166 Collective note: Statistical moving average price
    185961 Moving Average Price Calculation
    I have done extensive research on this, let me know if you need to know something specific.

  • PO Basic price in case of dealer

    Hi,
      As per the process for procurement of material from delaler  as the tax amount which dealer will pass on is not exactly know at the time of PO  it is depend upon the which excise invocie amount the dealer willl pass, so in presetn we are modifying the PO price after getting invocie from dealer  know as in case of delaer the basic price should be the base price + all tax amount then in capture excise invoice we split the base amoun and the tax amount by first selecting the MRP indicator  now for below case
    Actual base price  : 100
    Taxes amount which delaer have pass is aroung 12 rs , now in our PO for material the base prie is added as 112  then it is plited in capture excise invoice, then only the base prices 100 is updated in GR/IR account,  but whenever we check in ME2M  or ME1P  the material base price system shows as 112 , our user want that the base price should be 100 because othere amount is tax amount.
    How we can map this.
    regards,
    zafar

    Hi,
    For DEALER INVOICE, For Example:
    Material Price = 1000/-
    Excise Duty = 103/- (BEDECessSECess)
    Margin of  Dealer = 300/-
    Total =1403/
    VAT @4% = 56/-
    Grand Total =1459/-
    Now cretae  PO for Dealer Vendor with Base Price as 1403/- by selecting tax code which is having VAT as 4% (Total PO value will be 1459/-)
    & then do MIGO, slect MRP indicator in miscellaneous tab, Enter Assessable value 1300/- as  in Excise tab Item level and enter the excise values BED, ECess , SECess manually, check all values & save the document.
    And finally do MIRO ,user proper tax code,checking calculate tax, edit base value as 1300/-enter the amount in header as proposed by the system (1459/-), simulate & post the document.
    Regards,
    Biju K

  • Change of price control in material master

    Hi, SAP experts,
    We have  business scenario where the procurement type in MRP-2 view of material master gets changed from F to  E that is an externally procured item will be manufactured inhouse.
    In such case in costing view the price control needs to be changed from V to S. If both MAP & std. price  are not identical, system is not allowing to change. Secondly since the item will be manufactured inhouse from now onwards, I have to run the cost estimate & update the master.
    How do I deal with the situation.
    Valuable advice is awaited.
    Regds
    T.S.Shankar

    Hi Shankar,
    When the price control indicator is "V", system will allow changing the Standard price manually through Transaction code MM02.
    Similarly when the price control indicator is "M", system will allow changing the Moving average price manually through Transaction code MM02.
    Hope this clarifies
    Regards,
    Som

  • Price control at the time of GR

    Hi
    There is a requirement to control the price based on the document date entered at the time of GR.
    The document date is nothing but the delivery challan date of the supplier.
    The requirement is due to frequent change in prices and retrospective price changes are to be addressed.
    Is there any userexit or note which can help achieve the above requirement.
    Thanks
    Rahul

    Hi Merwyn
    The example you have provided is the issue why i am unable to use the price control category 5 in the infor record or PO.
    Here the requirement is  as below:
    Price valid from 01.08.2008 to 31.08.2008--- Rs 25
    Price valid from 01.09.2008 to 30.09.2008--- Rs 28
    The vendor delivery challan is dated 30.08.2008
    The material reaches the customer on 02.09.2008
    The GR is prepared in the system with
    Document date - 30.08.2008
    Posting Date  -- 02.09.2008
    The GR value taken is Rs 28...but this will create problem in IR.
    Hence the requirement is to determine the basic price on the document date i.e the delivery challan date of the vendor.
    Thanks
    Rahul

  • Excise Duty Inclusive in basic price

    Dear Experts,
    when the excise duty is included in the price, we enable the check box MRP Indicator in the excise tab while doing MIGO and based on this the GRN will be posted deducting the excise values from the price.
    but the trouble is, while doing MIRO, the system is not taking the posted value in GRN, rather the basic price plus the excise duty. How to overcome this to that the value proposed by the system is exclusive of excise duty?
    regards
    Suresh

    hi,
    say the value is 10,000 which is inclusive of 1000 excise duty.
    while posting the GRN we will enable the MRP indicator and based on this the GRN value will be posted as 9000 and the 1000 will be captured as excise duty
    but while doing the MIRO, either by giving the Purchase order or Delivery note as the reference, the value proposed by the system is 10,000 and not 9000. I know that we can change the values, but the client requires that the system has to propose the value as 9000 instead of 10,000
    hope it is clear
    suresh
    Edited by: rasuresh on Feb 26, 2010 1:15 PM

  • How can we use TABLE CONTROL in BDC and WORK FLOW of ABAP.

    how can we use TABLE CONTROL in BDC and WORK FLOW of ABAP.?
    please explain the important questions.

    How to deal with table control / step loop in BDC
    Steploop and table contol is inevitable in certain transactions. When we run BDC for such transactions, we will face the situation: how many visible lines of steploop/tablecontrol are on the screen? Although we can always find certain method to deal with it, such as function code 'NP', 'POPO', considering some extreme situation: there is only one line visible one the screen, our BDC program should display an error message. (See transaction 'ME21', we you resize your screen to let only one row visible, you can not enter mutiple lines on this screen even you use 'NP')
    Now with the help of Poonam on sapfans.com developement forum, I find a method with which we can determine the number of visible lines on Transaction Screen from our Calling BDC program. Maybe it is useless to you, but I think it will give your some idea.
    Demo ABAP code has two purposes:
    1. how to determine number of visible lines and how to calculte page number;
    (the 'calpage' routine has been modify to meet general purpose usage)
    2. using field symbol in BDC program, please pay special attention to the difference in Static ASSIGN and Dynamic ASSIGN.
    Now I begin to describe the step to implement my method:
    (I use transaction 'ME21', screen 121 for sample,
    the method using is Call Transation Using..)
    Step1: go to screen painter to display the screen 121, then we can count the fixed line on this screen, there is 7 lines above the steploop and 2 lines below the steploop, so there are total 9 fixed lines on this screen. This means except these 9 lines, all the other line is for step loop. Then have a look at steploop itselp, one entry of it will occupy two lines.
    (Be careful, for table control, the head and the bottom scroll bar will possess another two fixed lines, and there is a maximum number for table line)
    Now we have : FixedLine = 9
                  LoopLine  = 2(for table control, LoopLine is always equal to 1)
    Step2: go to transaction itself(ME21) to see how it roll page, in ME21, the first line of new page is always occupied by the last line of last page, so it begin with index '02', but in some other case, fisrt line is empty and ready for input.
    Now we have: FirstLine = 0
              or FirstLine = 1 ( in our case, FirstLine is 1 because the first line of new page is fulfilled)
    Step3: write a subroutine calcalculating number of pages
    (here, the name of actual parameter is the same as formal parameter)
    global data:    FixedLine type i, " number of fixed line on a certain screen
                    LoopLine  type i, " the number of lines occupied by one steploop item
                    FirstLine type i, " possbile value 0 or 1, 0 stand for the first line of new                                                               " scrolling screen is empty, otherwise is 1
                    Dataline  type i, " number of items you will use in BDC, using DESCRIBE to get
                    pageno    type i, " you need to scroll screen how many times.
                    line      type i, " number of lines appears on the screen.
                    index(2)  type N, " the screen index for certain item
                    begin     type i, " from parameter of loop
                    end       type i. " to parameter of loop
    *in code sample, the DataTable-linindex stands for the table index number of this line
    form calpage using FixedLine type i (see step 1)
                       LoopLine  type i (see step 1)
                       FirstLine type i (see step 2)
                       DataLine  type i ( this is the item number you will enter in transaction)
              changing pageno    type i (return the number of page, depends on run-time visible                                                                             line in table control/ Step Loop)
              changing line      type i.(visible lines one the screen)
    data: midd type i,
          vline type i, "visible lines
    if DataLine eq 0.
       Message eXXX.
    endif.
    vline = ( sy-srows - FixedLine ) div LoopLine.
    *for table control, you should compare vline with maximum line of
    *table control, then take the small one that is min(vline, maximum)
    *here only illustrate step loop
    if FirstLine eq 0.
            pageno = DataLine div vline.
            if pageno eq 0.
               pageno = pageno + 1.
            endif.
    elseif FirstLine eq 1.
            pageno = ( DataLine - 1 ) div ( vline - 1 ) + 1.
            midd = ( DataLine - 1 ) mod ( vline - 1).
            if midd = 0 and DataLine gt 1.
                    pageno = pageno - 1.
            endif.
    endif.
    line = vline.
    endform.
    Step4 write a subroutine to calculate the line index for each item.
    form calindex using Line type i (visible lines on the screen)
                        FirstLine type i(see step 2)
                        LineIndex type i(item index)
              changing  Index type n.    (index on the screen)
      if  FirstLine = 0.
            index = LineIndex mod Line.
            if index = '00'.
                    index = Line.
            endif.
      elseif FirstLine = 1.
            index = LineIndex mod ( Line - 1 ).
            if ( index between 1 and 0 ) and LineIndex gt 1.
                    index = index + Line - 1.
            endif.
            if Line = 2.
                    index = index + Line - 1.
            endif.
    endif.
    endform.
    Step5 write a subroutine to calculate the loop range.
    form calrange using Line type i ( visible lines on the screen)
                        DataLine type i
                        FirstLine type i
                        loopindex like sy-index
            changing    begin type i
                        end type i.
    If FirstLine = 0.
       if loopindex = 1.
            begin = 1.
            if DataLine <= Line.
                    end = DataLine.
            else.
                    end = Line.
            endif.
       elseif loopindex gt 1.
            begin = Line * ( loopindex - 1 ) + 1.
            end   = Line * loopindex.
            if end gt DataLine.
               end = DataLine.
            endif.
       endif.
    elseif FirstLine = 1.
      if loopindex = 1.
            begin = 1.
            if DataLine <= Line.
                    end = DataLine.
            else.
                    end = Line.
            endif.
      elseif loop index gt 1.
            begin = ( Line - 1 ) * ( loopindex - 1 ) + 2.
            end =   ( Line - 1 ) * ( loopindex - 1 ) + Line.
            if end gt DataLine.
                    end = DataLine.
            endif.
      endif.
    endif.
    endform.
    Step6 using field sysbol in your BDC, for example: in ME21, but you should calculate each item will correponding to which index in steploop/Table Control
    form creat_bdc.
    field-symbols: <material>, <quan>, <indicator>.
    data: name1(14) value 'EKPO-EMATN(XX)',
          name2(14) value 'EKPO-MENGE(XX)',
          name3(15) value 'RM06E-SELKZ(XX)'.
    assign:         name1 to <material>,
                    name2 to <quan>,
                    name3 to <indicator>.
    do pageno times.
    if sy-index gt 1
    *insert scroll page ok_code"
    endif.
            perform calrange using Line DataLine FirstLine sy-index
                             changing begin end.
    loop at DataTable from begin to end.
            perform calindex using Line FirstLine DataTable-LineIndex changing Index.
            name1+11(2) = Index.
            name2+11(2) = Index.
            name3+12(2) = Index.
            perform bdcfield using <material> DataTable-matnr.
            perform bdcfield using <quan>     DataTable-menge.
            perform bdcfield using <indicator> DataTable-indicator.
    endloop.
    enddo.
    An example abap program of handling Table Control during bdc programming.
    REPORT zmm_bdcp_purchaseorderkb02
           NO STANDARD PAGE HEADING LINE-SIZE 255.
                    Declaring internal tables                            *
    *-----Declaring line structure
    DATA : BEGIN OF it_dummy OCCURS 0,
             dummy(255) TYPE c,
           END OF it_dummy.
    *-----Internal table for line items
    DATA :  BEGIN OF it_idata OCCURS 0,
              ematn(18),      "Material Number.
              menge(13),      "Qyantity.
              netpr(11),      "Net Price.
              werks(4),       "Plant.
              ebelp(5),       "Item Number.
            END OF it_idata.
    *-----Deep structure for header data and line items
    DATA  :  BEGIN OF it_me21 OCCURS 0,
               lifnr(10),      "Vendor A/c No.
               bsart(4),       "A/c Type.
               bedat(8),       "Date of creation of PO.
               ekorg(4),       "Purchasing Organisation.
               ekgrp(3),       "Purchasing Group.
               x_data LIKE TABLE OF it_idata,
             END OF it_me21.
    DATA  :  x_idata LIKE LINE OF it_idata.
    DATA  :  v_delimit VALUE ','.
    DATA  :  v_indx(3) TYPE n.
    DATA  :  v_fnam(30) TYPE c.
    DATA  :  v_count TYPE n.
    DATA  :  v_ne TYPE i.
    DATA  :  v_ns TYPE i.
    *include bdcrecx1.
    INCLUDE zmm_incl_purchaseorderkb01.
                    Search help for file                                 *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
        IMPORTING
          file_name     = p_file.
    START-OF-SELECTION.
           To upload the data into line structure                        *
      CALL FUNCTION 'WS_UPLOAD'
        EXPORTING
          filename = p_file
          filetype = 'DAT'
        TABLES
          data_tab = it_dummy.
        Processing the data from line structure to internal tables       *
      REFRESH:it_me21.
      CLEAR  :it_me21.
      LOOP AT it_dummy.
        IF it_dummy-dummy+0(01) = 'H'.
          v_indx = v_indx + 1.
          CLEAR   it_idata.
          REFRESH it_idata.
          CLEAR   it_me21-x_data.
          REFRESH it_me21-x_data.
          SHIFT it_dummy.
          SPLIT it_dummy AT v_delimit INTO it_me21-lifnr
                                           it_me21-bsart
                                           it_me21-bedat
                                           it_me21-ekorg
                                           it_me21-ekgrp.
          APPEND it_me21.
        ELSEIF it_dummy-dummy+0(01) = 'L'.
          SHIFT it_dummy.
          SPLIT it_dummy AT v_delimit INTO it_idata-ematn
                                           it_idata-menge
                                           it_idata-netpr
                                           it_idata-werks
                                           it_idata-ebelp.
          APPEND it_idata TO it_me21-x_data.
          MODIFY it_me21 INDEX v_indx.
        ENDIF.
      ENDLOOP.
                    To open the group                                    *
      PERFORM open_group.
            To populate the bdcdata table for header data                *
      LOOP AT it_me21.
        v_count = v_count + 1.
        REFRESH it_bdcdata.
        PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0100',
                                        ' ' 'BDC_CURSOR'  'EKKO-LIFNR',
                                        ' ' 'BDC_OKCODE'  '/00',
                                        ' ' 'EKKO-LIFNR'  it_me21-lifnr,
                                        ' ' 'RM06E-BSART' it_me21-bsart,
                                        ' ' 'RM06E-BEDAT' it_me21-bedat,
                                        ' ' 'EKKO-EKORG'  it_me21-ekorg,
                                        ' ' 'EKKO-EKGRP'  it_me21-ekgrp,
                                        ' ' 'RM06E-LPEIN' 'T'.
        PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0120',
                                        ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                        ' ' 'BDC_OKCODE'  '/00'.
        MOVE 1 TO v_indx.
    *-----To populate the bdcdata table for line item data
        LOOP AT it_me21-x_data INTO x_idata.
          CONCATENATE 'EKPO-EMATN(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-ematn.
          CONCATENATE 'EKPO-MENGE(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-menge.
          CONCATENATE 'EKPO-NETPR(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-netpr.
          CONCATENATE 'EKPO-WERKS(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-werks.
          v_indx = v_indx + 1.
          PERFORM subr_bdc_table USING:  'X' 'SAPMM06E'    '0120',
                                         ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                         ' ' 'BDC_OKCODE'  '/00'.
        ENDLOOP.
        PERFORM subr_bdc_table USING:    'X' 'SAPMM06E'    '0120',
                                         ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                         ' ' 'BDC_OKCODE'  '=BU'.
        PERFORM bdc_transaction USING 'ME21'.
      ENDLOOP.
      PERFORM close_group.
                      End of selection event                             *
    END-OF-SELECTION.
      IF session NE 'X'.
    *-----To display the successful records
        WRITE :/10  text-001.          "Sucess records
        WRITE :/10  SY-ULINE(20).
        SKIP.
        IF it_sucess IS INITIAL.
          WRITE :/  text-002.
        ELSE.
          WRITE :/   text-008,          "Total number of Succesful records
                  35 v_ns.
          SKIP.
          WRITE:/   text-003,          "Vendor Number
                 17 text-004,          "Record number
                 30 text-005.          "Message
        ENDIF.
        LOOP AT it_sucess.
          WRITE:/4  it_sucess-lifnr,
                 17 it_sucess-tabix CENTERED,
                 30 it_sucess-sucess_rec.
        ENDLOOP.
        SKIP.
    *-----To display the erroneous records
        WRITE:/10   text-006.          "Error Records
        WRITE:/10   SY-ULINE(17).
        SKIP.
        IF it_error IS INITIAL.
          WRITE:/   text-007.          "No error records
        ELSE.
          WRITE:/   text-009,          "Total number of erroneous records
                 35 v_ne.
          SKIP.
          WRITE:/   text-003,          "Vendor Number
                 17 text-004,          "Record number
                 30 text-005.          "Message
        ENDIF.
        LOOP AT it_error.
          WRITE:/4  it_error-lifnr,
                 17 it_error-tabix CENTERED,
                 30 it_error-error_rec.
        ENDLOOP.
        REFRESH it_sucess.
        REFRESH it_error.
      ENDIF.
    CODE IN INCLUDE.
    Include           ZMM_INCL_PURCHASEORDERKB01
    DATA:   it_BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
    DATA:   it_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA:   E_GROUP_OPENED.
    *-----Internal table to store sucess records
    DATA:BEGIN OF it_sucess OCCURS 0,
           msgtyp(1)   TYPE c,
           lifnr  LIKE  ekko-lifnr,
           tabix  LIKE  sy-tabix,
           sucess_rec(125),
         END OF it_sucess.
    DATA: g_mess(125) type c.
    *-----Internal table to store error records
    DATA:BEGIN OF it_error OCCURS 0,
           msgtyp(1)   TYPE c,
           lifnr  LIKE  ekko-lifnr,
           tabix  LIKE  sy-tabix,
           error_rec(125),
         END OF it_error.
           Selection screen
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS session RADIOBUTTON GROUP ctu.  "create session
    SELECTION-SCREEN COMMENT 3(20) text-s07 FOR FIELD session.
    SELECTION-SCREEN POSITION 45.
    PARAMETERS ctu RADIOBUTTON GROUP ctu.     "call transaction
    SELECTION-SCREEN COMMENT 48(20) text-s08 FOR FIELD ctu.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(20) text-s01 FOR FIELD group.
    SELECTION-SCREEN POSITION 25.
    PARAMETERS group(12).                      "group name of session
    SELECTION-SCREEN COMMENT 48(20) text-s05 FOR FIELD ctumode.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS ctumode LIKE ctu_params-dismode DEFAULT 'N'.
    "A: show all dynpros
    "E: show dynpro on error only
    "N: do not display dynpro
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 48(20) text-s06 FOR FIELD cupdate.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS cupdate LIKE ctu_params-updmode DEFAULT 'L'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(20) text-s03 FOR FIELD keep.
    SELECTION-SCREEN POSITION 25.
    PARAMETERS: keep AS CHECKBOX.       "' ' = delete session if finished
    "'X' = keep   session if finished
    SELECTION-SCREEN COMMENT 48(20) text-s09 FOR FIELD e_group.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS e_group(12).             "group name of error-session
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 51(17) text-s03 FOR FIELD e_keep.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS: e_keep AS CHECKBOX.     "' ' = delete session if finished
    "'X' = keep   session if finished
    SELECTION-SCREEN END OF LINE.
    PARAMETERS:p_file LIKE rlgrap-filename.
      at selection screen                                                *
    AT SELECTION-SCREEN.
    group and user must be filled for create session
      IF SESSION = 'X' AND
         GROUP = SPACE. "OR USER = SPACE.
        MESSAGE E613(MS).
      ENDIF.
      create batchinput session                                          *
    FORM OPEN_GROUP.
      IF SESSION = 'X'.
        SKIP.
        WRITE: /(20) 'Create group'(I01), GROUP.
        SKIP.
    *----open batchinput group
        CALL FUNCTION 'BDC_OPEN_GROUP'
          EXPORTING
            CLIENT = SY-MANDT
            GROUP  = GROUP
            USER   = sy-uname.
        WRITE:/(30) 'BDC_OPEN_GROUP'(I02),
                (12) 'returncode:'(I05),
                     SY-SUBRC.
      ENDIF.
    ENDFORM.                    "OPEN_GROUP
      end batchinput session                                             *
    FORM CLOSE_GROUP.
      IF SESSION = 'X'.
    *------close batchinput group
        CALL FUNCTION 'BDC_CLOSE_GROUP'.
        WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),
                (12) 'returncode:'(I05),
                     SY-SUBRC.
      ELSE.
        IF E_GROUP_OPENED = 'X'.
          CALL FUNCTION 'BDC_CLOSE_GROUP'.
          WRITE: /.
          WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06).
        ENDIF.
      ENDIF.
    ENDFORM.                    "CLOSE_GROUP
           Start new transaction according to parameters                 *
    FORM BDC_TRANSACTION USING TCODE TYPE ANY.
      DATA: L_SUBRC LIKE SY-SUBRC.
    *------batch input session
      IF SESSION = 'X'.
        CALL FUNCTION 'BDC_INSERT'
          EXPORTING
            TCODE     = TCODE
          TABLES
            DYNPROTAB = it_BDCDATA.
        WRITE: / 'BDC_INSERT'(I03),
                 TCODE,
                 'returncode:'(I05),
                 SY-SUBRC,
                 'RECORD:',
                 SY-INDEX.
      ELSE.
        REFRESH it_MESSTAB.
        CALL TRANSACTION TCODE USING it_BDCDATA
                         MODE   CTUMODE
                         UPDATE CUPDATE
                         MESSAGES INTO it_MESSTAB.
        L_SUBRC = SY-SUBRC.
        WRITE: / 'CALL_TRANSACTION',
                 TCODE,
                 'returncode:'(I05),
                 L_SUBRC,
                 'RECORD:',
                 SY-INDEX.
      ENDIF.
      Message handling for Call Transaction                              *
      perform subr_mess_hand using g_mess.
    *-----Erzeugen fehlermappe
      IF L_SUBRC <> 0 AND E_GROUP <> SPACE.
        IF E_GROUP_OPENED = ' '.
          CALL FUNCTION 'BDC_OPEN_GROUP'
            EXPORTING
              CLIENT = SY-MANDT
              GROUP  = E_GROUP
              USER   = sy-uname
              KEEP   = E_KEEP.
          E_GROUP_OPENED = 'X'.
        ENDIF.
        CALL FUNCTION 'BDC_INSERT'
          EXPORTING
            TCODE     = TCODE
          TABLES
            DYNPROTAB = it_BDCDATA.
      ENDIF.
      REFRESH it_BDCDATA.
    ENDFORM.                    "BDC_TRANSACTION
         Form  subr_bdc_table                                            *
          text
         -->P_0220   text                                                *
         -->P_0221   text                                                *
         -->P_0222   text                                                *
    FORM subr_bdc_table  USING      VALUE(P_0220) TYPE ANY
                                    VALUE(P_0221) TYPE ANY
                                    VALUE(P_0222) TYPE ANY.
      CLEAR it_bdcdata.
      IF P_0220 = ' '.
        CLEAR it_bdcdata.
        it_bdcdata-fnam     = P_0221.
        it_bdcdata-fval     = P_0222.
        APPEND it_bdcdata.
      ELSE.
        it_bdcdata-dynbegin = P_0220.
        it_bdcdata-program  = P_0221.
        it_bdcdata-dynpro   = P_0222.
        APPEND it_bdcdata.
      ENDIF.
    ENDFORM.                    " subr_bdc_table
         Form  subr_mess_hand                                            *
          text                                                           *
         -->P_G_MESS  text                                               *
    FORM subr_mess_hand USING  P_G_MESS TYPE ANY.
      LOOP AT IT_MESSTAB.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID     = it_messtab-msgid
            LANG   = it_messtab-msgspra
            NO     = it_messtab-msgnr
            v1     = it_messtab-msgv1
            v2     = it_messtab-msgv2
          IMPORTING
            MSG    = P_G_MESS
          EXCEPTIONS
            OTHERS = 0.
        CASE it_messtab-msgtyp.
          when 'E'.
            it_error-error_rec   =  P_G_MESS.
            it_error-lifnr       =  it_me21-lifnr.
            it_error-tabix       =  v_count.
            APPEND IT_ERROR.
          when 'S'.
            it_sucess-sucess_rec =  P_G_MESS.
            it_sucess-lifnr      =  it_me21-lifnr.
            it_sucess-tabix      =  v_count.
            APPEND IT_SUCESS.
        endcase.
      ENDLOOP.
      Describe table it_sucess lines v_ns.
      Describe table it_error  lines v_ne.
    ENDFORM.                    " subr_mess_hand
    Also refer
    http://sap.ittoolbox.com/groups/technical-functional/sap-dev/bdc-table-control-668404
    and
    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    Regards,
    srinivas
    <b>*reward for useful answers*</b>

  • FREIGHT COST TO BE ADDED TO MATERIAL VALUE FOR PRICE CONTROL"S"

    hi,
    How to add the frieght cost to  material cost for the materials with "S" price control While doing MIGO ?
    Edited by: ARITRA MUKHERJEE on Mar 3, 2010 5:07 PM

    Hi
    By stating Price control Indicator  S ,it means that you are valuating your inventory at a standard or Fixed price (As maintainred in the Material master ).Hence your Inventory will be valuated at the standard price no matter what additional expenses you incur
    Regards
    Sandeep

Maybe you are looking for

  • Photo Storage Issue On iPhone 6

    Under manage storage in settings, I am showing that Photos is taking up 5.1GB of space on my phone, which is prohibiting me from adding music or videos to my phone.  I only have 300 photos in my photo stream, so there is no reason it should be that l

  • IPhone 3GS FM tuner apps?

    How can I listen to FM stations (FM stations set on TV's) on my iPhone 3GS during a workout?

  • Need Help on JSP Radio Buttons please

    How do i create radio buttons on a HTML file to link to other JSPs?? do i have statements in my HTML that gets a JSP i.e option and then that runs the links to the other pages? please help very stuck and confused. Thanks

  • Load data thru WEB ADI (Accounted Transactions)

    When I do transaction Import (for Accounted Transactions - Web ADI) in the Review Transactions window (Transaction Import) I am getting the following error: Rejection Reason is -- Supplier Invoices transaction source must be GL accounted Can any one

  • Incoming invoice number range per company code

    Hi! I have a doubt. Is there the possibility of create incoming invoice number range per company code? I need the MM doc, not FI doc. Thank's!