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.

Similar Messages

  • How to Fetch Sales Order Item Quantity from Customer table(ztable)?

    Dear Guru's,
    My scenario:
    While creating Sales order the item quantity should be fetched from a Ztable. So iam using the Userexit "V46H0001 - - Customer functions for resource-related billing", in that i have implemented my code in the Function Exit - EXIT_SAPLV46H_001 and the FM documentation says
    This function module allows you to change item information for generating a new item.
    In order to achieve this, you must change the relevant field in the structure C_VBAPKOM.
    So i activated that exit and wrote the following code to test it as follows;
    break-point.
    C_VBAPKOM-zmeng = 10.
    But it seems not working, even it doesn't stop at the break-point when i type the material number for the item in the sales order and press enter...
    Please guide me in this regard, am i correct in choosing the User-Exit? what else have to be done in order to fetch the item quantity from the ztable....
    Please suggest if there is some other way to do this, i also heard that we can do this through Routines...
    Thanks in Advance...
    Regards
    Karthik D

    I have solved this  and you can found how i solved in the last reply of the following thread....
    [SD UserExit - V46H0001 - Customer functions for resource-related billing|SD UserExit - V46H0001 - Customer functions for resource-related billing]
    Thanks
    Karthik D

  • Sales order item text to purchase requisition

    Hello Team,
    we have scenario in which we create the sales order and while creating the sales order we put the production memo text at the item level under text tab in it.
    We have define copying rules for the production memo text under PR customizing text types to get it copied from the sales order. But when we are creating the PR for the sales order then the production memo text is not flowing into the purchase requisition.
    I checked some OSS notes and found recently released note 448814 which says that text does not gets copied to PR when PR is created manually from the sales order ( question no 24 and 25 in the note ) due to technical reasons and it gets copied only when the PR gets created directly from the sales order.
    Could you please help me to know if this is standard problem or some other settings exists and if anyone have other solution to it. ?
    Thanks and Regards,
    Deepak Gupta

    Hi Jurgen,
    Thanks for the reply. I was expecting to know if others have came across similar kind of issue and after following up with SAP, if they have provided some other solution.
    Thanks
    Deepak

  • Direct Delivery Sales Order - Function Module for Purchase Requisition

    Hello Experts,
    When we creat a Direct Delivery Sales Order at Production Plant  then one Direct Delivery Purchase Requisition automatically gets generated at the Distribution Warehouse. If anyone knows the function module which actually generates this Direct Delivery PReq, then request him/her to please let us know.
    Thanks and Regards
    Joseph

    Hi,
       Whatever Function Module's given are for or  above 4.6C versions.
       I want for 4.6B version.
      At the same time, the returned tables should return more than 1 Pur.Req number as the FM's mentioned returns only 1.
    Thanks,
    Mich

  • Sales order - automatic creation of purchase requisition - cost assignment

    Hi
    When the sales order is released, we have an automatic creation of Purchase requisation. We have given "internal order" as the cost obect in the sales order. But when the system has created automatic purchase requisition, it has not picked internal order. What could be the reason?
    Thank you for the help.
    Thanks
    Ram

    Hi
    I feel that it is abug in the development you have carried out for creation of Purchase requisition when a sales order is relased,
    Please check the enhancement, you need to pass the values to the correct table after derivation.
    Thanks & Regards
    Kishore

  • Sales order - automatic creation of purchase requisition - CO assignment

    Hi
    When the sales order is released, we have an automatic creation of Purchase requisation. We have given "internal order" as the cost obect in the sales order. But when the system has created automatic purchase requisition, it has not picked internal order. What could be the reason?
    Thank you for the help.
    Thanks
    Ram

    Hi
    I feel that it is abug in the development you have carried out for creation of Purchase requisition when a sales order is relased,
    Please check the enhancement, you need to pass the values to the correct table after derivation.
    Thanks & Regards
    Kishore

  • Purchase order from Purchase requisition

    Hi all,
    How can we create purchase order from Purchase requisition number?
    Any BAPI or Function Module for changing purchase requisition  to purchase order .........
    Thanks in advance for all your help.
    Regards,
    Anukool

    Hi,
    Have you had a look through transaction BAPI to see if there is anything suitable?
    I've just had a quick look and found BAPI_REQUISITION_RELEASE_GEN which should release the PR and then maybe you could use BAPI_PO_CREATE1 and see if there is a way to reference the PR?
    Or what about looking at the transaction ME59N to see how that works?
    I'm just guessing here sorry.

  • Help Bapi Purchase order with reference to purchase requisition no

    Hi,
    i used BAPI_PO_CREATE1 for creating purchase order with reference to Purchase requisition number but im getting these error
    please help me to solve this
    1 E BAPI 001 No instance of object type PurchaseOrder has been created. External reference:
    2 E MEPO 001 Purchase order item 00010 still contains faulty schedule lines
    3 E 06 054 Doc. type/item cat. NB/S (requisition) <-> NB/ (purch. order)
    4 E 8W 162 No schedule line exists for schedule line number 0010000030 00010 0000.
    Thanks & Regards,
    Azhar
    Message was edited by:
            Azhar

    Hi Azar,
    I am also getting the same messages, did you get resolve the issue.

  • Fetch Sales order number and PO number from ship to party and sold to party

    HI,
    I need to get Sales order number and PO number
    from ship to party and sold to party.
    I have only ______sold to party and ship to party and req del date_______ in selection screen as mandatory
    Please let me know
    Sreekanth

    Hi,
    You can do this:-
    SELECT VBELN FROM LIKP
    INTO TABLE T_DELIVERIES
    WHERE KUNNR = SHIP TO PARTY
    AND     KUNAG = SOLD TO PARTY
    AND LFDAT      = DEL DATE.
    You will get a table containing the list of deliveries.
    Use VBFA to get the sales orders from deliveries.
    SELECT VBELV FROM VBFA
    INTO TABLE T_SALESORDERS
    WHERE VBTYP_N = 'J'
    AND     VBELN  = T_DELIVERIES-VBELN.
    T_SALESORDERS WILL give you list of sales orders.
    From Sales Orders you can get Purchase orders through EKKN Table.
    Using EKKN pass T_SALESORDERS-VBELN and get corresponding EBELN.
    Regards,
    SUbhashini

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

  • Create Purchasing Order from Purchasing Requisition

    Hi,
    I need to create in a report a Purchasing Order from Purchasing Requisition. I have seen the Bapi BAPI_PO_CREATE; Can I create order from requisition without fill all field and only 
    the requisition and ther obligatory field?
    Thanks
    Francesco

    Hi
    Try out what all parameters are obligatory in case of Purchase Requsition using the FM - 'BAPI_REQUISITION_CREATE' in R/3 back-end..
    and then try creating PO using 'BAPI_PO_CREATE1' or 'BAPI_PO_CREATE' Function modules.
    Also try creating P Req manually using ME51N / ME51 Transactions and debug the process to get further details, if any.
    Regards
    - Atul

  • 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

  • Create Sales order with reference to purchase order - Help needed

    Hi Gurus
    Purchase order is being created in Oracle system. SAP system will receive the purchase order and creates the sales order for the corresponding purchase order.
    Hoe to create sales order, Through BAPI or through IDOC. Please suggest and give some pointers of existing interface
    Thanks
    Andy.

    Hi,
        If you are working on ECC6.0 check for the BAPI BAPI_SALESORDER_CREATEFROMDAT1 .You can also pass the purchase order number .
    Check the sample code
    REPORT z_bapi_salesorder_create.
    Parameters
    Sales document type
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text FOR FIELD p_auart.
    PARAMETERS: p_auart TYPE auart OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Sales organization
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text1 FOR FIELD p_vkorg.
    PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Distribution channel
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text2 FOR FIELD p_vtweg.
    PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Division.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text3 FOR FIELD p_spart.
    PARAMETERS: p_spart TYPE spart OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    SKIP 1.
    Sold-to
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text4 FOR FIELD p_sold.
    PARAMETERS: p_sold  TYPE kunnr OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Ship-to
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text5 FOR FIELD p_ship.
    PARAMETERS: p_ship  TYPE kunnr OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    SKIP 1.
    Material
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text6 FOR FIELD p_matnr.
    PARAMETERS: p_matnr TYPE matnr   OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Quantity.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text7 FOR FIELD p_menge.
    PARAMETERS: p_menge TYPE kwmeng  OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Plant
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text9 FOR FIELD p_plant.
    PARAMETERS: p_plant TYPE werks_d OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Data declarations.
    DATA: v_vbeln            LIKE vbak-vbeln.
    DATA: header             LIKE bapisdhead1.
    DATA: headerx            LIKE bapisdhead1x.
    DATA: item               LIKE bapisditem  OCCURS 0 WITH HEADER LINE.
    DATA: itemx              LIKE bapisditemx OCCURS 0 WITH HEADER LINE.
    DATA: partner            LIKE bapipartnr  OCCURS 0 WITH HEADER LINE.
    DATA: return             LIKE bapiret2    OCCURS 0 WITH HEADER LINE.
    DATA: lt_schedules_inx   TYPE STANDARD TABLE OF bapischdlx
                             WITH HEADER LINE.
    DATA: lt_schedules_in    TYPE STANDARD TABLE OF bapischdl
                             WITH HEADER LINE.
    Initialization.
    INITIALIZATION.
    v_text   = 'Order type'.
    v_text1  = 'Sales Org'.
    v_text2  = 'Distribution channel'.
    v_text3  = 'Division'.
    v_text4  = 'Sold-to'.
    v_text5  = 'Ship-to'.
    v_text6  = 'Material'.
    v_text7  = 'Quantity'.
    v_text9  = 'Plant'.
    Start-of-selection.
    START-OF-SELECTION.
    Header data
    Sales document type
      header-doc_type = p_auart.
      headerx-doc_type = 'X'.
    Sales organization
      header-sales_org = p_vkorg.
      headerx-sales_org = 'X'.
    Distribution channel
      header-distr_chan  = p_vtweg.
      headerx-distr_chan = 'X'.
    *Purchase order number
    header-PURCH_NO_C =  '4000006'.
    headerx-PURCH_NO_C = 'X'.
    Division
      header-division = p_spart.
      headerx-division = 'X'.
      headerx-updateflag = 'I'.
    Partner data
    Sold to
      partner-partn_role = 'AG'.
      partner-partn_numb = p_sold.
      APPEND partner.
    Ship to
      partner-partn_role = 'WE'.
      partner-partn_numb = p_ship.
      APPEND partner.
    ITEM DATA
      itemx-updateflag = 'I'.
    Line item number.
      item-itm_number = '000010'.
      itemx-itm_number = 'X'.
    Material
      item-material = p_matnr.
      itemx-material = 'X'.
    Plant
      item-plant    = p_plant.
      itemx-plant   = 'X'.
    Quantity
      item-target_qty = p_menge.
      itemx-target_qty = 'X'.
      APPEND item.
      APPEND itemx.
      Fill schedule lines
      lt_schedules_in-itm_number = '000010'.
      lt_schedules_in-sched_line = '0001'.
      lt_schedules_in-req_qty    = p_menge.
      APPEND lt_schedules_in.
      Fill schedule line flags
      lt_schedules_inx-itm_number  = '000010'.
      lt_schedules_inx-sched_line  = '0001'.
      lt_schedules_inx-updateflag  = 'X'.
      lt_schedules_inx-req_qty     = 'X'.
      APPEND lt_schedules_inx.
    Call the BAPI to create the sales order.
      CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
           EXPORTING
                sales_header_in     = header
                sales_header_inx    = headerx
           IMPORTING
                salesdocument_ex    = v_vbeln
           TABLES
                return              = return
                sales_items_in      = item
                sales_items_inx     = itemx
                sales_schedules_in  = lt_schedules_in
                sales_schedules_inx = lt_schedules_inx
                sales_partners      = partner.
    Check the return table.
      LOOP AT return WHERE type = 'E' OR type = 'A'.
        EXIT.
      ENDLOOP.
      IF sy-subrc = 0.
        WRITE: / 'Error in creating document'.
      ELSE.
    Commit the work.
        COMMIT WORK AND WAIT.
        WRITE: / 'Document ', v_vbeln, ' created'.
      ENDIF.
    Reward points if it worked.
    Regards,
    Abhishek
    Edited by: Abhishek Raj on May 14, 2008 9:57 AM

  • In Enhancement MEREQ001 - need to import Purchase Requisition Number

    Hi ,
    I need to import the Purchase Requisition Number and Item Number when the user enters T.code ME52N / ME53N
    From that i need to fetch the data from the Table EBAN , for my Custom Screen which i added using Screen Exit.
    My Question is in Exit MEREQ001 (CMOD) , which Function Module and field  i will use to import that PR Number and Item Field.
    Thanks,
    Prakash K

    Which enhancement component of MEREQ001 is being used ? I could see most of the enhancement components (eg. EXIT_SAPLMEREQ_001) having the importing parameter IM_REQ_ITEM (type ref to IF_PURCHASE_REQUISITION_ITEM).  Extract the PR header data using the interface method IF_PURCHASE_REQUISITION_ITEM->GET_REQUISITION.  This method will return the structure RE_REQUISITION (type ref to IF_PURCHASE_REQUISITION).
    Use the interface methods IF_PURCHASE_REQUISITION->GET_DATA (for header data) and IF_PURCHASE_REQUISITION->GET_ITEMS (for item data) for capturing required information.  If you are using the enhancement components which is having the importing parameter IM_REQ_HEADER ( type ref to IF_PURCHASE_REQUISTION, you can directly use the methods mentioned above.
    Regards, Vinod

  • How to block the creation of a Sales Orders without a linked Purchase Order

    Hi. I'm trying to block the creation of a Sales Order that doesn't have a linked Purchase Order. The first thing I did is using the SBO Transaction Notification as follows:
    IF  @transaction_type = 'A' AND @object_type='17'
    BEGIN
         IF (SELECT PoPrss FROM ORDR WHERE DocEntry = @list_of_cols_val_tab_del) = 'N'
         BEGIN
              SET @error = 1
              SET @error_message = 'Purchase Order Missing...'
         END
    END
    This works good. I create the Sales Order, I tick the purchase order field on the logistics tab, I click Add, and then the purchase order window appears...
    Then, the problem begins... If I click the Cancel button, the purchase order is obviously not created, but the Sales Order is created.
    Can someone tell me how to block the creation of the sales order If the user press the cancel button on the purchase order window (and the purchase order is not created)
    As far as I can see, after clicking the add button in the sales order document, the Sales Order is created on the DB. If there's no way of blocking the creation of the Sales Order, can I avoid closing the purchase order window by the SBO_TransactionNotification? (if the purchase order has not been created)
    Thanks...

    Hi Yail,
    I think you can't close the purchase order with the stored procedure.
    Try to catch the Event when the user click on Cancel button.
    So you can list the vents with event logger : https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/ede3be37-0e01-0010-1883-cd1b5293473e
    You can block the cancel button and force the user to create the purchase order.
    Hope i help you
    Best regards
    Michael

Maybe you are looking for