Creating Purchase Requistion through WRP1 (Replenishment planning)

Hi,
We use transaction WRP1 to create requistions. There is a requirement to store the stock on hand of all articles in the requistions at the time WRP1 is executed and report on it later. I tried to achieve this by adding field STOCK in EBAN and WVFB and hoping that will automatically be transferred from replenishment to requisition. But, this does not happen. Also, table WRPT has this field, but does not store the value.
Is there any where else that I can get the stock on hand used by the replenishment run from.
Thanks in advance for any help.
Cheers
Tim

Hi Shakthi,
check necessary settings in Article
under Logistics DC and Store Rp type should be RP, mention the
Reorder point,
target stock,
planned delivery time
Availability chceck - 01
Purchase group
and then Run WRP1
Thanks
Satheesh.C

Similar Messages

  • Create Purchase Requistions through MD01 despite Procurement Type X

    Hi,
    When we run MD01, Planned Orders are being created for our materials with Procurement Type X despite we select "1 - Purchase Requisitions" in field "Create Pruchase req."
    We would like to have Purchase Requisitions created instead of Planned Orders, is it possible?
    Or is there any way of converting the planned order into a purchase requisition automatically? (we know we can do it manually in MD04)
    Thank you very much

    Hi Jürgen L,
    Thanks, but we need to have Procurement Type X (or E) due to a Project System requirement.
    I've seen that with Procurement Type E and Special Procurement 20 (External Procurement) the MRP creates PReq. (instead of Planned Orders) and our Project System requirement is fulfilled.
    It seems kind of contradictory (and I must do some extra test) but it works. Do you think this could have other consequences?
    Thanks

  • Error in vendor selection while creating Purchase requistions

    Hi,
    I was using bapi_requestion_create to create purchase requistion with different quotas for different vendors.
    Ex: vendor A   with 60%
          vendor B   with 40%
    If the required quantity is 100 items then it has to split 60 items to vendor A and create seperate Puechase Requistion.
    and for 40items with another Purchase requsition.
    Currently iam able to split the noof purshcase requisiton but it was picking only with one vendor.
    MY Code :
    *******Split PRs with respect to Quota ************************
          data : lv_lines type i,
                 lv_qty type  p DECIMALS 4.
          lv_qty = it_oo-qty.
          DESCRIBE TABLE t_equp LINES lv_lines.
          IF lv_lines GT 1.
            clear : w_equp.
            loop at t_equp into w_equp
                          where qunum = w_equk-qunum.
              refresh : t_req_item.
              clear   : w_eord,
                        t_req_item[],
                        t_req_item.
              READ TABLE t_eord INTO w_eord
              WITH KEY matnr = it_oo_sum_purch-matnr_sap
                       werks = it_oo_sum_purch-plant
                       lifnr = w_equp-lifnr.
              if sy-subrc is initial.
                it_oo_purch-AGREE     = w_eord-EBELN. "To Fill ALV
                it_oo_purch-ITEM      = w_eord-EBELP. "To Fill ALV
                it_oo_purch-FORNEC    = w_equp-LIFNR. "To Fill ALV
                t_req_item-doc_type   = c_zbmr.
                t_req_item-pur_group  = it_oo-ekgrp.
                t_req_item-material   = it_oo_sum_purch-matnr_sap.
                t_req_item-plant      = it_oo_sum_purch-plant.
              t_req_item-AGREEMENT   = w_eord-EBELN.
              t_req_item-AGMT_ITEM   = w_eord-EBELP.
              t_req_item-FIXED_VEND  = w_equp-LIFNR.
              t_req_item-QUOTA_ARR   = w_equk-qunum.
              t_req_item-QUOTARRITM  = w_equp-qupos.
                t_req_item-gr_ind     = c_x.
                t_req_item-ir_ind     = c_x.
              t_req_item-MRP_CONTR   = 'NOV'.
                CONCATENATE it_oo_sum_purch-due_dte+4(4)
                            it_oo_sum_purch-due_dte+2(2)
                            it_oo_sum_purch-due_dte(2)
                            INTO t_req_item-deliv_date.
                t_req_item-QUANTITY   = ( w_equp-QUOTE / 100 ) * lv_QTY.
              endif.
    ********Rounding off values*******************
              data : lv_int(20) type c,
                     lv_dec(20) type c,
                     lv_tot(20) type c.
              clear : lv_int ,
                     lv_dec,
                     lv_tot.
              lv_tot = t_req_item-QUANTITY.
              split lv_tot at '.' into lv_int lv_dec.
              if lv_dec(1) ge '5'.
                lv_int = lv_int + 1.
              endif.
              t_req_item-QUANTITY = lv_int.
              APPEND t_req_item.
              clear : v_number.
      Create purchase requisition by group
              CALL FUNCTION 'BAPI_REQUISITION_CREATE'
                   IMPORTING
                        number            = v_number
                   TABLES
                        requisition_items = t_req_item
                        return            = t_return.
    ERRO
              IF t_return-type CO 'AE'.
                CLEAR: v_msg, v_x.
                CALL FUNCTION 'WRITE_MESSAGE'
                     EXPORTING
                          msgid = sy-msgid
                          msgno = sy-msgno
                          msgty = sy-msgty
                          msgv1 = sy-msgv1
                          msgv2 = sy-msgv2
                          msgv3 = sy-msgv3
                          msgv4 = sy-msgv4
                     IMPORTING
                          messg = v_msg.
                PERFORM zf_grava_log_erro_oo
                              USING it_oo_purch it_oo_sum_purch v_msg v_x.
    SUCESSO - Atualiza Tabela zsytmm_pr_po
              ELSE.
                CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
                     EXPORTING
                          WAIT = c_X.
                CLEAR: v_msg, v_x.
                CONCATENATE text-026  v_number INTO v_msg
                                      SEPARATED BY space.
                it_oo_sum_purch-QTY =    t_req_item-QUANTITY.
                PERFORM zf_grava_log_sucesso_oo
                          USING it_oo_purch it_oo_sum_purch v_msg v_x.
                CLEAR: zsytmm_pr_po.
                vl_item = c_00001.
                zsytmm_pr_po-banfn    = v_number.
                zsytmm_pr_po-bnfpo    = vl_item.
                zsytmm_pr_po-ebeln    = c_false.
                zsytmm_pr_po-ebelp    = c_false.
                zsytmm_pr_po-zshmode  = it_oo_purch-shipm.
                MODIFY  zsytmm_pr_po.
              ENDIF.
            endloop.

    Hi,
    You have to fill DES_VENDOR & FIXED_VEND of structure REQUISITION_ITEMS while calling BAPI.  But while going through your code,
    * t_req_item-FIXED_VEND = w_equp-LIFNR
    is commented, uncomment the same and add line for DES_VENDOR also.
    Regards
    Vinod

  • Can we create purchase order through report programming?

    hi experts.....
    can we create purchase order through report programming?If yes plz give me the thread details?

    Hi,
    Use this code in a program by using a BAPI function module
    Anothe rway is using classical/ALV report using call transaction from a report for changing the PO
    loop at i_header.
        header-ref_1         = i_header-legacy.
        headerx-ref_1        = c_x.
        header-doc_type      = i_header-bsart.
        headerx-doc_type     = c_x.
        header-comp_code     = i_header-bukrs.
        headerx-comp_code    = c_x.
        header-purch_org     = i_header-ekorg.
        headerx-purch_org    = c_x.
        header-pur_group     = i_header-ekgrp.
        headerx-pur_group    = c_x.
        header-vendor        = i_header-lifnr.
        headerx-vendor       = c_x.
        concatenate i_header-bedat+4(4)
                    i_header-bedat+0(2)
                    i_header-bedat+2(2)
                    into header-doc_date.
        headerx-doc_date     = c_x.
        header-created_by    = i_header-ernam.
        headerx-created_by   = c_x.
        header-currency      = i_header-waers.
        headerx-currency     = c_x.
        concatenate i_header-kdatb+4(4)
                    i_header-kdatb+0(2)
                    i_header-kdatb+2(2)
                    into header-vper_start.
        headerx-vper_start   = c_x.
        loop at i_items where legacy = i_header-legacy.
          item-po_item            =  i_items-ebelp.
          itemx-po_item           =  i_items-ebelp.
          itemx-po_itemx          =  c_x.
          if i_header-bsart = 'NB'.
            item-material            =  i_items-ematn.
            itemx-material           =  c_x.
            schedule-quantity        =  i_items-menge * 1000.
            schedulex-quantity       =  c_x.
          else.
            item-short_text          = i_items-ematn.
            itemx-short_text         = c_x.
            item-matl_group          = '1000'.
            itemx-matl_group         = c_x.
            schedule-quantity        =  '1'.
            schedulex-quantity       =  c_x.
          endif.
          item-plant               =  i_items-werks.
          itemx-plant              =  c_x.
          schedule-po_item         = i_items-ebelp.
          schedule-sched_line      = '1'.
          schedulex-po_item        = i_items-ebelp.
          schedulex-sched_line     = '1'.
          schedulex-po_itemx       = c_x.
          schedulex-sched_linex    = c_x.
          concatenate  i_items-eildt+0(2)
                       i_items-eildt+2(2)
                       i_items-eildt+4(4)
                       into schedule-delivery_date.
          schedulex-delivery_date  =  c_x.
          item-price_unit          =  i_items-peinh * 100.
          itemx-price_unit         =  c_x.
          item-tax_code            =  i_items-mwskz.
          itemx-tax_code           =  c_x.
          item-shipping            =  i_items-evers.
          itemx-shipping           =  c_x.
          account-po_item          = i_items-ebelp.
          accountx-po_item         = i_items-ebelp.
          accountx-po_itemx        = c_x.
          if i_header-bsart = 'FO'.
            item-pckg_no  = sy-tabix.
            itemx-pckg_no = 'X'.
            limits-pckg_no        = sy-tabix.
            limits-limit          = i_items-overalllimit.
            limits-exp_value      = i_items-expectedoverall.
            posrvaccessvalues-pckg_no    = sy-tabix.
            posrvaccessvalues-line_no    = '0'.
            posrvaccessvalues-serno_line = '00'.
            posrvaccessvalues-percentage = '100.0'.
            posrvaccessvalues-serial_no  = '01'.
            account-serial_no     = '1'.
            accountx-serial_no    = '1'.
            accountx-serial_nox   = c_x.
            account-quantity  = '1'.
            accountx-quantity = c_x.
            call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                input  = i_items-kostl
              importing
                output = account-costcenter.
            accountx-costcenter   = c_x.
            call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                input  = i_items-sakto
              importing
                output = account-gl_account.
            accountx-gl_account   = c_x.
            item-acctasscat       = i_items-knttp.
            itemx-acctasscat      = c_x.
            item-item_cat         = i_items-epstp.
            itemx-item_cat        = c_x.
          endif.
          append:item,itemx,schedule,schedulex,account,accountx,limits,posrvaccessvalues.
          clear :item,itemx,schedule,schedulex,account,accountx,limits,posrvaccessvalues.
        endloop.
        call function 'BAPI_PO_CREATE1'
          exporting
            poheader                     = header
            poheaderx                    = headerx
    *   POADDRVENDOR                 =
    *   TESTRUN                      =
    *   MEMORY_UNCOMPLETE            =
    *   MEMORY_COMPLETE              =
    *   POEXPIMPHEADER               =
    *   POEXPIMPHEADERX              =
    *   VERSIONS                     =
    *   NO_MESSAGING                 =
    *   NO_MESSAGE_REQ               =
    *   NO_AUTHORITY                 =
    *   NO_PRICE_FROM_PO             =
            importing
            exppurchaseorder             = ponumber
    *   EXPHEADER                    =
    *   EXPPOEXPIMPHEADER            =
            tables
            return                       = return
            poitem                       = item
            poitemx                      = itemx
    *   POADDRDELIVERY               =
            poschedule                   = schedule
            poschedulex                  = schedulex
            poaccount                    = account
    *   POACCOUNTPROFITSEGMENT       =
            poaccountx                   = accountx
    *   POCONDHEADER                 =
    *   POCONDHEADERX                =
    *   POCOND                       =
    *   POCONDX                      =
            polimits                     = limits
    *   POCONTRACTLIMITS             =
    *   POSERVICES                   =
       posrvaccessvalues            = posrvaccessvalues.
    *   POSERVICESTEXT               =
    *   EXTENSIONIN                  =
    *   EXTENSIONOUT                 =
    *   POEXPIMPITEM                 =
    *   POEXPIMPITEMX                =
    *   POTEXTHEADER                 =
    *   POTEXTITEM                   =
    *   ALLVERSIONS                  =
    *   POPARTNER                    =
        if ponumber eq space.
          loop at return where type = 'E'.
            clear buffer.
            move-corresponding return to e_return.
            concatenate i_header-legacy e_return into buffer.
            transfer buffer to p2_file.
          endloop.
          move-corresponding i_header to i_eheader.
          transfer i_eheader to p3_file.
          loop at i_items where legacy = i_header-legacy.
            move-corresponding i_items to i_eitems.
            transfer i_eitems to p4_file.
          endloop.
        else.
          commit work and wait.
        endif.
        clear:ponumber,header,headerx,item,itemx,account,accountx,limits,return,schedule,schedulex,posrvaccessvalues.
        refresh:item,itemx,account,accountx,limits,return,schedule,schedulex,posrvaccessvalues.
      endloop.
      close dataset p2_file.
      close dataset p3_file.
      close dataset p4_file.
    Regards
    Krishna

  • Create Purchase Order through EDI

    Hello Everybody,
    I want to know how to create Purchase order through EDI. I will receive text file from third party system. I have made most of the configuration related to EDI like Port -File, Partner Function etc. I am using message type PORDCR and Idoc type PORDCR05.
    But i do not know how the SAP first will convert the text file into IDoc and then create Purchase order. Can any body help me how to go about it? What steps i have to follow. I will have text file from that i have to create Purchase order through EDI.
    Thanks in advance.
    Regards,
    Manish

    Hi,
    Create Purchase Order through EDI
    Regarding on your query,
    You can use the standard ORDERS05 idoc type itself to send outbound idocs.
    It will be the middleware or the integration team that will send this IDOC to the receiving system.
    or
    Maintain Partner Profile in WE20, RFC Connection to the Middleware in SM59 and Port in WE21.
    Maintain Output Procedure/Output Type/Access Sequences/Condition Records from NACE
    Generate the Outbound 850 (PO) from ME21N
    Regards,
    Sekhar

  • Creating purchase order through coding

    I am trying to create purchase order through Code, for a table field i can insert as :
    odocs = GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseOrders)
    odocs.CardCode = "200173"
    But if the field is not a table field then , how can i insert it in PO?????

    Hi Ashish Patil 
    Not sure what you mean, not sure what table you are talking about. But here is some sample code on how to add a purchase order.
    Dim PO As SAPbobsCOM.Documents
            PO = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseOrders)
            PO.CardCode = "VUL001"
            PO.Lines.ItemCode = "02SILVTS"
            PO.Lines.Quantity = 1
            PO.Lines.Price = 120
            If PO.Add() <> 0 Then
                Dim str As String
                str = oCompany.GetLastErrorDescription()
                MsgBox(str)
            End If
    hope it helps

  • I want to create purchase Contract through workflow

    Hi All,
    I am working on Purchase contract through workflow. In that I am using business object BUS2014,
    But in this business BUS2014, there is no event called create, So I take copy of business object BUS2014 to ZBUS2014.And I craeted event create & method end_date for checking the end date of contract.
    The problem is, When I am using for t-code ME31k for release, If i am going to check t-code SWEL the event is not trigger on for release.
    My requirement is when the contract is going to over then before 10 days the workflow event is trigger and give the remainder to creator & the vendor. And also same thing before 5 days it will give the 2nd remainder.
    Please help me out regarding this.
    Thanks & Regards,
    Pankaj Sinha.
    Edited by: Pankaj Sinha09 on May 11, 2009 10:07 AM

    Hi there Sebastian,
    You will need this 'extra Action' and QuickTime Pro...
    http://www.apple.com/downloads/macosx/automator/quicktimecompressionactionsandwo rkflow.html
    Regards
    Ric

  • WRP1 Replenishment Planning

    Hi,
    I have a crazy behavior in tx WRP1. I have a sales order for 10 pieces, there is no stock at my  site but WRP1 keeps saying "No replenishment required for the customers chosen". How can I fix this error?, I know that I have 10 pieces shortage.
    Best Regards

    I think you're problem should related to Planning Calendar.
    You receive "No replenishment required for the customers chosen" message if:
    1. Planning Calendar already expired.
    2. The "Planning date" in tx WRP1 is not defined in "periods begin on the following week days" in the Planning Calendar.
    More details on point 2. If in the planning calendar you defined:
      Period = Weekly
      Periods begin on the following week days = Wednesday, Friday
    That means the system only runs replenishment planning if the "Planning date" in tx WRP1 is a Wednesday or Friday!
    For example. Go to MM43,
    if for site S001, the Planning Cycle (that is the planning calendar) is P05.
    Go to check in tx MD27, display the planning calendar P05 for site S001. Check:
    1. planning calendar P05 not expired (that is, valid to date still in the future)
    2. the planning date you input in WRP1 is a week day defined under "Calculation rule for period specification" in tx MD27.

  • BDC to create purchase requistion

    Hi ,
    Can purchase req. be created using BSC?
      if yes then how, what are the mandatory fields for BDC recording for purchase requisition?
    Thanks
    Lovleen

    You can not create BDC for purchase order creation by T-Code ME21n as it is using ALV for items. But you can use thold transaction ME21 to create purchase order by BDC. But better to use BAPI or functional module.

  • Problem in creating Purchase order through Idoc

    Hi ABAPers,
    I am trying to post PO document through WE19 t-code using inbound function module BAPI_IDOC_INPUT1 which is calling BAPI_PO_CREATE1 internally.And i am getting below error messages.
    1. Characteristic  does not exist in operating concern AC01
    2. This function only possible for subcontracting items
    3. No instance of object type PurchaseOrder has been created. External reference
    passing data to IDOC:PORDCR102
    Header Segment : E1BPMEPOHEADER and E1BPMEPOHEADERX
    company code    0814
    doc_type            NB
    vendor                0000400001
    poprg-                EPRO
    pgroup               U01
    Item Segment : E1BPMEPOITEM and E1BPMEPOITEMX
    Item                  00010
    material             000000000000000263
    plant                 0374
    Qty                   22.000
    Delivery Segment E1BPMEPOSCHEDULE and E1BPMEPOSCHEDULEX
    Item                  00010
    Schedule line     0001
    delivery date      01.12.2008
    Qty                   22.000
    Note: i am able to create PO successfully, through SE37 by using FM BAPI_PO_CREATE1  with given above data.
    Please confirm me, what else i need to pass to post PO through WE19 t-code using inbound function module BAPI_IDOC_INPUT1.
    Please reply me ASAP.
    Thanks and Regards,
    Sekhar Raju.

    must be data format issue. when you use Function_module/BAPI from SAP GUI, convertion exit is applied automatically. hence data is converted to proper format & submited.

  • Create purchase requistion

    Hello,
    I'm working on an integration project between SAP and a third-party library software system. The goal is to generate SAP Purchase Requisitions for orders created within the library software. The idea is to let the library software generate an (xml) file and load the file into SAP.
    I'm searching for information on the structure/layout of such a file and the technology to use to transform the file to a PR in SAP ?
    Any help would be appreciated.
    Kind regards,
    Erik

    You can not create BDC for purchase order creation by T-Code ME21n as it is using ALV for items. But you can use thold transaction ME21 to create purchase order by BDC. But better to use BAPI or functional module.

  • Creating Purchase Requistion with Configuration Data

    Hi Guys,
    I am interested in creating purchase requisition (BUS2105) with configuration data (Charatceristics). However, the BAPI BAPI_REQUISITION_CREATE does not have any interface to pass the config data.
    I tried using BAPI BAPI_OBJCL_CHANGE/CREATE to assign characteristics to to the requisition with no success.
    Any suggestion is welcomed.
    Thanks
    Yogi

    Hi,
    Dont think Shipping data will be there in Material Master. U probably need to chk the shipping details for the customer instead.
    Regards,
    Bikash

  • MD02 - Create purchase requistions

    Hi,
    I am using transaction MD02 to create puchase req. for sales orders. Do you know any user-exits or BAdis that can be used to assign a value to the tracking number field (BEDNR) on the purchase req. line item? Please help.
    Many thanks,
    Chuong

    There are several BAdI's for Purchase requisitions.
    Go to txn SE18 and select the drop down.
    Select Information System.
    Enter urchase in the short description (case sensitive to allow "Purchase" and "purchase").

  • User Exit / BADI while creating Purchase Requistion

    Hi,
    I am trying to find a BADI that would get triggered before the purchase requisition gets created (so that I can edit the storage location). I observe that purchase requisitions could be created with transactions like MD41 or while creating a sales order (events trigger MRP in background ?)
    I tried to find the relevant BADIs using the transaction MD41 and function module SXV_GET_CLIF_BY_NAME and found the following BADI definitions but was not too sure which one to use in the case. Could anyone help
    MD_MRP_PARAMETERS
    MD_CHANGE_MRP_DATA
    MD_ADD_ELEMENTS
    MD_MODIFY_SOURCE
    MD_ALTERN_EXPLOSION
    MD_LAST_LOT_EXACT

    Used the BADI MD_PURREQ_CHANGE

  • Create Purchase Requisition through IDOC PREQCR1

    Hi experts,
    I use idoc PREQCR1  to crate PR successfully, but I need to add "cost center" and  "G/L account" infomation to PR, but I don't know how to have "cost center" and "G/L account" information in PR through IDOC PREQCR1
    Thanks.

    Hi Michael
    As I don't have access to SAP system yet, giving functional information.
    In ME51N, for line item, enter acct assgt category for "Cost Center" .Then in account assignment tab , "Cost Center" & "G/L Account" has to be entered. Add these fields.
    Regds
    Chandan

Maybe you are looking for