Purchase requisition  number Range in MRP Run (MD02)

Hi Experts ,
When I run the MRP through T-Code MD02 even in test mode the Purchase requisition number getting consumed with out saving the entries.
for eg:- number range = 100 to 200.
when I execute the MD02 by selecting the indicator "Display results before they are saved " system showed a Purchase requisition number 100 and exit with out saving the entries.Next time when I execute the same MD02 system is displaying the purchase requisation number as 101, where as i have not used PR number 100 at all.
Please guide me....
Regards,
Sri.

Sri,
Nothing is missing.  This is standard behavior.  It appears to me that SAP makes no effort to ensure that all Purchase request numbers are contiguous.
You can try turning off number range buffering.  This will reduce the number of gaps in your purchase req number sequences.  However, I don't know if it will eliminate all gaps.  Be aware that there is a performance tradeoff when you deactivate buffering.  Making this change is considered to be a system modification, and is not supported by SAP.
https://service.sap.com/sap/support/notes/62077
Rgds,
DB49

Similar Messages

  • User Exit for Purchase Requisition Number Range

    Dear Experts,
    I searched on sdn, i got M06B0003 &M06B0004 this 2 user exit for PR Number range.
    I have activated both User exits but while creating PR is not getting effect of that user exit.
    I have checked by putting Break-point in respective user exit but while saving the PR it should go to that break-point but it not going there aslo.
    And also i have checked user exit MM06E003 but it is for Purchase Order number range.And for PO it is working.
    Please help me to solve this issue.Solution will be appreciated.
    Regards,
    Sanket.

    Hi,
    Sorry that badi will not help try this one ...EXIT_SAPLMEREQ_009 in MEREQ001 where the export parameters is purchase requisition number....
    Thanks,
    Shailaja Ainala.

  • Problem in Purchase Requisition Number Range (Skipping)

    Hi,
    While creating the Purchase Requisition, the PR Number is skipping by 10, for example, first PR is 10000000, send is 10000010 and so on.. on the Quality Server
    The same is OK in Development Server. Pls. note that I have used the Standard Number Range.
    Pls. guide.
    Regards,

    Hi,
    To add on Arun's answer. The setting in trs SNRO is client independent. You should press the "display" button there (the glasses) and check the field "No. of numbers in buffer". The standard SAP setting is 10 and changing this setting is a modification to standard.
    The scenario is as follows. Each time your application server needs to allocate new number to a PReq it contacts the database server, which keeps track of the number range. Even if your system (Q) is a single server system, the principle is still the same.
    The point is that the application server doesn't take one next number from the database server, but 10 numbers. Next time it needs to allocate new number to a PReq, it doesn't have to call the DB server again - it merely takes the next number from the "bundle" it already got. The reason is to save time.
    This works fine as long as the application server is up and running all the time - no "holes" are generated. It can however happen that the application server "forgets" the buffer, e.g. when the server is taken down (this is however not the only way). In this case, all the numbers it got from the DB server get lost and the application server takes out new ten.
    As I mentioned above, this function is impossible to change without modification to SAP standard. Please consider well your business need to have the consequent numbers. Most of the companies manage with this setting.
    BR
    Raf

  • Issue on Number Range for MRP Purchase Requisition

    Hi Gurus,
    Please help me on the issue explained below.
    We are already using SAP ECC 6.0 and SRM 5.0 and now we are implementing Plant Maintenance Module.As a result of this implementation ,we have created number of PR document types and assigned to unique number ranges in ECC. One of these document types has been maintained for MRP group for a material type in order to identify the MRP purchase requisitions created on the shortage of the materials for these material types.
    This functionality is working fine. MRP run for the materials is picking the appropriate PR document but number range of the document is not the same what was assigned to the linked document type.Some other number series is getting picked by system .
    There is setting under SPRO Consumption Based PlanningNumber RangesPurchase Requisitions
    Here, number range assignment is against plant. This is the same number range which is being taken by system on running MRP. But the desired number range is the one which has been linked to PR document type.
    If I change the number range above then number range for MRP PR in present system will get affected..
    Can you please advise me on above so that PR generated on MRP run should have appropriate number range?
    Thanks & Regards,
    Niti

    Hi,
    As per my understanding, what you have mentioned above is exactly the way SAP is designed. Its SAP Standard behaviour.
    But if you check your PR document type - no:range & the CBP no:range both will be same only since both refers to the same object.
    Please check the PR document type that you have assigned in the CBP & its no:ranges.
    Thanks & Regards,
    Ram

  • No Purchase Requisition Generated after MRP Run MD02

    Hi All,
    After runing MRP Run MD02 for finish product with MRP Control parameters for create purchase requisition as 1 (Create Purchase Requisitions) . System is not generating any purchase requisitions for raw materials required for assembly.
    If we select 3 create planned order system is able to generate planned orders for raw materials required for assembly.
    Plz guide why am not able to generate purchase requisition directly.
    Regards,
    Sipra

    Sipra,
    Couple of checks,
    1. Check whether the Material is defined for "F" - External Procurement in MRP2 view of the material master.
    2. Check whether the material type used for the material is enabled for "External Purchase orders". Transaction OMS2.
    Regards,
    Prasobh

  • PR number range after MRP is not triggered

    Dear gurus,
                  My MM consultant needs a seperate number range for Purchase Requsition during the MRP Run.I have configured  in Plant Parameters number range for PR and also since we are using the MRP Group.I have configured the purchasing doccument type in MRP group.But after MRP run system generates the different number for purchase requistion other than the configured.If i create manual purchase requsition it is creating in my number range(correct number range).ie)My requirement is sytem should generate seperate(correct)  number range which i configured in Plant parameters.Can any body suggest what are the configuration missing in my end.
        For your information.The Raw  materials are  extened to new plant
                           please give your valuable comments and suggestion
                                                                                    -guna

    Dear Prabosh,
    we are doing the rollout implementation.
              My problem is i am not getting the  correct number range for MRP generated Purchase Requistion.The PR number which is generated by the MRP system is 11194121(which is the no range configured for another existing plant.the same material is extended for new plant).(In mrp generated PR,doccument type is correct only the pr number is wrong.)But I have configured the different number range(range 2800000000) for Doccument type.Please see my configuartion.If i create manually with docc type vad it is picking the correct number range280000000.but after mrp also the number range for pr should be in 280000000 series.this is my problem.Mr.Pradeep told that "pr number range which is is generated by MPR syststem should always be different.if we create manual pr against the same material the number range  will be different.".
                we are doing rollout implemenation.i checked in existing plant with existing material.first i create the manual Purchase requstion.the number is 11193212.The PR number which is generated by the MRP system is 11193215.I checked the PR no 11193213/11193214.But it is not exists.whether any configuration is left in my end? any user exits will be used by this? Please go through my configuartion and suggest.
    Please help me.since we are in Testing phase.It is very urgent issue.please help me
                  i have already send the screenshots to yur id also
    guna

  • Scheduling in MRP Run MD02

    dear all,
    i still confuse for using scheduling in MRP run MD02,
    what is the use of using both scheduling type "1" and type "2"?
    because if i run the MRP using scheduling type 2,  after i generate the planned order, then i can see the capacity planning evaluation,
    but not if i run scheduling type 1
    if i run the scheduling type 1, how can i analyze the capacity planning?
    until now, i always run the scheduling type 2, because i think it is more useful to run scheduling type 2,
    so what is the plus and the minus using scheduling type 1 or type 2?
    best regards,
    MARUFAT

    Hi,
    In simple words:
    The main difference between scheduling type 1 (Basic date scheduling) & Scheduling type 2 (Lead time scheduling & Capacity requirements) is from which records MRP reads the values.
    Basic dates is more like a rough scheduling where the values are read from the material master & the exact operation times are not considered or capacity requirements generated.
    Lead time scheduling is more precise meaning for each in-house produced material it reads the routing & checks the time maintained for each operation, it then calculates the exact times for each operation based on the working days, shift timings, breaks & also generates capacity requirements.
    Now what is the criteria to select... it depends on the business requirement. But the data maintenance for Scheduling type 2 is higher as compared to Scheduling type 1.
    What is the benefit for going for Scheduling type 2.... well it gives you a clear picture on your production planning process & how much capacity is required, whether you have the requisite capacity etc etc.
    Basic date scheduling is preferred when you do not want such fine control on your production planning process.
    For more info refer to SAP help, it should make it more clear.
    Regards,
    Vivek

  • Purchase Requisition number (current number) not seen correctly in OMI2

    Hi All,
    I see purchase requisition number created for the last number in the number range defined for Purchase Req., but i do not see the last number in the "current number" area. What are the possible reason for this ?
    Regards,
    PSS
    Edited by: PSS on May 26, 2011 7:47 PM

    PSS,
    This is not usually considered to be a problem.  Are you using number range buffering?
    https://service.sap.com/sap/support/notes/141497
    Best Regards,
    DB49

  • Fetch Sales Order number VBELN from Purchase requisition number BANFN

    Hi,
    I'm not able to find a suitable method to fetch the sales order number(VBELN) from the purchase requisition number(BANFN).
    I tried using VBEP table to fetch the data, but it is giving serious performance issues, as in for fetching one record it is taking approx 20 seconds!!!
    Kindly suggest a suitable method for this.
    I've used the query as folllows:
    select single vbeln banfn
    from vbep
    into (wa_vbep-vbeln, wa_vbep-banfn)
    where banfn eq wa_eban_zdd1_x-banfn.
    where: wa_vbep is the workarea having two fields vbeln and banfn, and wa_eban_zdd1_x-banfn is the reference preq number.
    Scenario in brief described below:
    Whenever a direct delivery sales order is created on a supply chain plant, a dummy purchase requisition without source of supply is created automatically at preferred supplying plant for the customer in the sales order. Direct Delivery Sales Orders which are still in Open status and for the associated dummy purchase requisitions with these sales order, the deletion flag set has to be unchecked.
    in this case, only one sales order is created corresponding to a preq..
    BAPI: BAPI_PR_GETDETAIL is not giving entries for the table as this is a special case of direct delivery from the production plant directly to the customer, bypassing the warehouse / distribution center...
    selection screen has input fields preq, matnr(product) and plant. we fetch entries depending on the data filled in selection screen and also they should be of document type(BSART in EBAN table) ZDD1 and deletion indicator is set(LOEKZ in EBAN).
    then we check if the sales order corresponding to the preq is in open status...
    for this i need to programmatically fetch the sales order number corresponding to the preq...
    this is causing a performance issue as i could find only one way -- fetching sales order number from VBEP table corresponding to BANFN... indexing for easier also didnt work...
    no other way i could find to fetch sales order number corresponding to the preq number....
    there is a bapi: BAPI_PR_GETDETAIL, but this is not fetching entries to the changing tables related to sales order...
    also EBKN table doesnt have any entries as this is a special case of direct delivery preq..
    Guess i couldnt find anyother way...
    Thanks.

    I'm not sure as to why the select query was still throwing performance issues. I could see that the index had been created on only BANFN in the DB. Prior to creating the index, it was taking approx 20 seconds per entry, but after creating the index, it took 13seconds approx.
    I used the select query as follows:
    select single vbeln banfn
    from vbep
    into (wa_vbep-vbeln, wa_vbep-banfn)
    where banfn eq wa_eban_zdd1_x-banfn.
    where: wa_vbep is the workarea having two fields vbeln and banfn, and wa_eban_zdd1_x-banfn is the reference preq number.
    I tried a few other combinations also, but  those also didnt work effectively:
    select vbeln banfn
    from vbep
    into (wa_vbep-vbeln, wa_vbep-banfn)
    where banfn eq wa_eban_zdd1_x-banfn.
    without using SINGLE in the select query as the select query would implicitly pickup only a single record,
    select vbeln banfn
    from vbep
    into wa_vbep
    where banfn eq wa_eban_zdd1_x-banfn.
    and another query where the INTO statement was directed directly to a workarea.
    But unfortunately, nothing seemed to be working.
    The index i had created was on BANFN alone in the VBEP table.

  • How to add a new line item to a Purchase Requisition number

    Hello All,
    Can anyone please provide me with some FM or BAPI to add a new line item to an existing Purchase Requisition number.
    Can it be done using BAPI_REQUISITION_CHANGE; if yes, then how do I pass the parameters into the BAPI tables..?
    Useful pointers would be appreciated...!!
    Thanks & Regards,
    Tarun Gambhir

    @Gautham,
    Thanks for the quick reply.
    I want to update the table EBAN, so should I use the parameter table XEBAN to put in the new line item and then execute..
    Also to fill up this table I need to pass certain value, so can I use BAPI_REQUISITON_GETDETAIL and pass the same details as found from the same BAPI and create a new line item...
    Regards,
    Tarun Gambhir

  • Number of PO with Purchase requisition number not null

    Hi Experts,
    I need to number of PO with Purchase requisition number not null in ECC
    T-CODE nse16n and table name =EKPO
    But when I make EKPO-BANFN not equal NULL it doesnt work ? how can do that ?
    I custom my data source 2LIS_02_SCL with EKET.BANFN I want to check my DS with ECC data .
    Thanks and best regards
    Ilyaebi

    IF you need to check the number of PO's with Purchase requisition number not null then simply open the table EKPO in SE12, click on Contents and against the field BANFN right click on the empty box where you enter values and click on Options. From the pop up window selecte Not Equal to and check the Number of Entries in the table. You will get the desired result even though the volume of data might be large.
    Regards,
    Arminder

  • BAPI_PO_CHANGE me22n add profit center for purchase requisition number

    Hello all,
    I have to add an item line for a specific sales order( p_vbeln ).
    for that i use BAPI_SALESORDER_CHANGE and it works and the item is inserted.
    ( p_posnr = sales order item and ln_etnr = schedule_line = 1 )
    Now I have to maintain the specific po item line and to insert the Profit Center related to the Purchase Requisition Number that was assigned to the above sales order item like using transaction ME22N.
    when i use the transaction all i have to do is to ADD the Purchase requisition number to the PO Order Number and to add the PROFIT CENTER.
    for this i use BAPI_PO_CHANGE.
    i colect the folowing data:
    from table VBFA( vbelv = sales order number vbeln = l_ebeln)
    PO Number = p_ebeln.
    from table VBEP ( vbeln = sales order number, posnr = the previously inserted sales order item )
    Purchase Requisition Number = l_banfn
    Purchase Requisition Item = l_bnfpo
    from table VBAP (vbeln = sales order number, posnr = the previously inserted sales order item )
    Profit Center = l_prctr
    from table EKKN
    select max(  ebelp )
    from ekkn
    into l_ebelp
    where ebeln = l_ebeln.
    add 10 to l_ebelp
    Purchase Order Item = l_ebelp .
    and i move the data:
      i_t_poitem-po_item = l_ebelp.
      i_t_poitem-preq_no = l_banfn.
      i_t_poitem-preq_item = l_bnfpo.
      i_t_poitem-acctasscat = cc_x.
      APPEND i_t_poitem.
      i_t_poitemx-po_item = l_ebelp.
      i_t_poitemx-po_itemx = cc_x.
      i_t_poitemx-preq_no = cc_x.
      i_t_poitemx-preq_item = cc_x.
      i_t_poitemx-acctasscat = cc_x.
      APPEND i_t_poitemx.
      i_t_poaccount-po_item = l_ebelp.
      i_t_poaccount-itm_number = p_posnr.
      i_t_poaccount-SCHED_LINE = ln_etnr.
      i_t_poaccount-profit_ctr = l_prctr.
      APPEND i_t_poaccount.
      i_t_poaccountx-po_item = l_ebelp.
      i_t_poaccountx-profit_ctr = cc_x.
      APPEND i_t_poaccountx.
    then i use the function BAPI_PO_CHANGE:
      CALL FUNCTION 'BAPI_PO_CHANGE'
        EXPORTING
          purchaseorder                = p_ebeln
          testrun                          = l_test
       TABLES
         return                            = i_t_return_po
         poitem                          = i_t_poitem
         poitemx                        = i_t_poitemx
         poaccount                    = i_t_poaccount
         poaccountx                   = i_t_poaccountx.
    BUT i get the folowing result ( messages in return table)
    Insert item for PO-order                                                                               
    Message:  Changing of PO using Enjoy BAPI unsuccessful ;                                                
      Message:  Purchase order item 00120 still contains faulty account assignments ;   
      Message:  Enter Profit Center ;                         
    what should i do?
    best regards,
    emilia

    hello,
    i debugged the function.
    first the data from poaccount is copied in lt_account.
    then this happens:
      PERFORM get_current_data
          TABLES    poitem               poschedule               poaccount
                    pocondheader         pocond
                    extensionout
                    poexpimpitem         allversions              popartner
                    potextheader         potextitem               return
          USING
                    l_po                 lf_header_currency
          CHANGING
                    expheader            exppoexpimpheader.
      exppoexpimpheader = poexpimpheader. "foreign trade export workaround
    after this form is executed poaccount-profit_ctr is empty.
    lt_account-profit_ctr in not empty but then it is not anymore.
    in the form this happens:
    item data
      CALL METHOD im_po->get_items
        IMPORTING
          ex_items = lt_items.
      LOOP AT lt_items INTO an_item.
        l_item ?= an_item-model.
        CALL METHOD l_item->get_data
          IMPORTING
            ex_data = ls_mepoitem.
        ls_mepoitem-ebeln = ls_header-ebeln.
        APPEND ls_mepoitem TO lt_item.
    schedules
    accountings*
        CALL METHOD l_item->get_po_accountings
          IMPORTING
            ex_accountings = lt_accountings.
        LOOP AT lt_accountings INTO an_item.
          l_accounting ?= an_item-model.
          CALL METHOD l_accounting->get_data
            IMPORTING
              ex_data = ls_mepoaccounting.
          ls_mepoaccounting-ebeln = ls_header-ebeln.
          APPEND ls_mepoaccounting TO lt_account.
        ENDLOOP.
    item conditions
    foreign trade (item data; EIPO)
      ENDLOOP.
    so it acctualy copies every item from purchase number ebeln in lt_item.
    for each one of them it copies the account data into lt_account.
    so the last loop is for the item that i want to enhance.
    here it copies all the necessary data in lt_account except of course the profit center because that's the one that i need to insert.
    after this loop there is a form:
      PERFORM move_account_out TABLES lt_account
                                                                ext_poaccount
                               USING  header_currency.
    where the ext_poaccount is the poaccount parameter.
    this form:
    clears ext_poaccount.
    copies the data from lt_account into ext_poaccount.
    and returns the ext_poaccount with the empty Profit center field
    and so after performing get_current_data my parameter is deleted.
    then it's almost the end of the function and nothing else related to the poaccount parameter.
    so it's no use for me to insert the field Profit_Center?
    is there another FM that i should use to be able to insert the profit center?
    what should i do?
    Best regards,
    Emilia

  • Demerger  Purchase order number range.

    Hi Friends,
    We have demerger of 1 of hte business of the company & new entity will be using same client which we are using.
    We will be Creating new Purcharse orders with open amounts for new legal entities.
    Here requirement for purchase order number range is as belows. How can we achieve this.
    Our advice for number range is to use a prefix + old PO number, to ensure the incoming invoices can be easily assigned.
    Thanks,
    Kiran

    HI,
       You may define external number range as shown below, for example:
       Assign the same as external number range for the PO Doc type:
       While creating the PO, maintain the number range externally with the required prefix + old PO number.
    Test the same and revert back.
    Regards,
    AKPT

  • Restriction for purchase Requisition Number in ME21N

    Hi All,
    I want to raise an error message in ME21N, if the user creating PO without perchase rechase requisition number. For this i choosed one BADI.
    Definition Name: ME_PROCESS_PO_CUST
    Interface Name : IF_EX_ME_PROCESS_PO_CUST
    i have implemented the BADI  ZCHECK_PR
    Method :  IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM
    I have written code like this in PROCESS_ITEM method
    DATA: ls_mepoitem TYPE mepoitem,
            ls_customer TYPE mepo_badi_exampl,
            ls_tbsg     TYPE tbsg.
      INCLUDE mm_messages_mac. "useful macros for message handling
    * here we check customers data
      ls_mepoitem = im_item->get_data( ).
    BREAK-POINT.
    if ls_mepoitem-bstyp = 'ZV01'.
       if ls_mepoitem-banfn is INITIAL.
          message 'Enter Purchase Requisition Number' type 'E'.
       endif.
    endif.
    Saved & Activated  this.
    But while testing this in ME21N, it is not at all going to debug mode( I have created PO for ZV01 order type only).
    Is there any thing not finished for BADI?
    Can any one help me.
    Thank You.

    Vishnu,
    Very strange, just try deactivating and deleting your implementation and create a fresh one in the same client where you are testing and assign it to a transport request and check.
    Actually this BADI is already migrated to an Enhance spot in ECC 6 with same name 'ME_PROCESS_PO_CUST' but I still believe that SIMPLE badi implementation is still supported. OR Better do it with the latest way.
    Create an enhancement implementation of Enh spot ME_PROCESS_PO_CUST in SE19 and then for that Enh implementation, create a BADI implementation and an implementing class. Code the required thing in the implementing class methods and then check if it works. It's actually almost same way as implementing a simple BADI. If you need any help, search Forums or get back here.
    Pls note that Enh framework implementations are much faster than conventional BADIs and should always be used.
    BR,
    Diwakar

  • Purchase Requisition number not changing when sales order item is rejected

    Hi all,
    I have a requirement to change the sales order status to 'TECO' when ever some reason for rejection is selected in the status tab at the item level.The status should change from 'TECO' when i remove the reason for rejection.
    The status change is happening correctly.I have achieved it using user exit.
    CASE 1 : Initially, when a new item is added in the Sales order the purchase requisition number appears in the schedule lines tab of the item level. This is as expected.
    CASE 2 :When the same item is blocked (by entering a reason for rejection in status tab of VA02 ) then the purchase requisition number is not present in the schedule lines tab.This is as expected.
    But i face the following issue.
    CASE3 : Again if the blocked item is unblocked (By removing the reason for rejection in status tab of VA02 ) then the purchase requisition number does not appear again in the schedule lines tab.The purchase requisition number is expected to appear again.
    This happens in case of DROP SHIPMENT scenario. I understand that in case of dropshipment scenario the purchase requisition number is triggered by item category and schedule lines only.
    I tried to make the changes(to change the status ) in user exits 'MV45AFZZ' and also 'MV45AFZB'.But i face the issue in both the exits.Please let me know if there are any means to solve this issue(as mentioned in case 3).
    Regards,
    S.Suba

    Many thanks for your answer. It help me to solve the issue.
    So applying note 738171, with transaction OVB5 (or VOFM, requirements->subsequent functions->Purch.requisitions) we create one new requirement, ie RV07A900, and then we apply the rule that if we have delivery or billing block, that is, VBAK-LIFSK or VBAK-FAKSK not empty, then we set an error with a code similar to this:
                da_sy-msgid = 'Z1'.    (message class)
                da_sy-msgno = '001'.  (message number)
                error_exception = true.
    and then the PR is not created.
    Regards.

Maybe you are looking for