Implementation Of BADI For Enjoy Purchase Order

I have implemented a 'ME_GUI_PO_CUST' BADI for ME21n. The control is going to Subscribe and Map Dynpro methods. But the control is not going to other methods like TRANSPORT_FROM_MODEL
TRANSPORT_TO_DYNP
TRANSPORT_FROM_DYNP
TRANSPORT_TO_MODEL.
Please explain how we can make the control to move to these methods.
Thanks In Advance.

ME21N - PO Enhancement using BADI

Similar Messages

  • User-Exit OR a BAdi for the Purchase order create.

    Hi,
    I am looking for a User-Exit or a BAdi which is fired when the Purchase order is being created in the SRM server via Web template. The requirement is as follows:
    There is a flag(Check box) at the the item level, Basic Data tab. This flag is called as Unlimited Overdelivery Allowed. It is with the tolerances field. Now I want this flag to be always set for a PO of a material of certain type.
    Can anyone tell me which User-Exit OR Badi I should use to always set this flag?
    The Technical field name is UNLIMITED.
    I tried a lot but could not get any.
    Regards,
    Deepak.

    Hi Deepak,
      Did you try doc_change badi? THis badi is available in all the bus objects.
    thanks,
    Ashwin

  • User exit/BADI for updating Purchase Order Item

    I am would like to update the purchase order item - specifically field EKPO-REPOS in a user exit or BADI. I haven't been able to find one that allows you to update the purchase order item.
    Any input would be appreciated.
    Derick

    You can use BADI ME_PROCESS_PO_CUST for you requirement
    Method PROCESS_ITEM
    * Retrieve item data.
        CALL METHOD im_item->get_data
          RECEIVING
            re_data = v_data_item.
    Do you validations and changes here
    *update changes
    CALL METHOD im_item->set_data( v_data_item ).

  • Need a BADI for Manipulating Purchase Order Payment Terms?

    Anybody know of one? We are on 4.6C....Thank-You.

    Hello Sudheer,
    This would be great only I do not see "Call method cl_exithandler=>get_class_name_by_interface " to put a break point in the GET_INSTANCE Code....below. Also, I only see one Method in cl_exithandler and it is GET_INSTANCE. I would really like to do what you say but can't figure out where to pit the breakpoint........Thank-You
    METHOD get_instance.
      CLASS cl_abap_typedescr DEFINITION LOAD.
      DATA: exit TYPE REF TO object,
            temp TYPE abap_abstypename,
            int_ref TYPE REF TO cl_abap_refdescr,
            type_ref TYPE REF TO cl_abap_typedescr,
            interface TYPE seoitfname,
            exit_name TYPE exit_def,
            clskey TYPE seoclskey,
            mult TYPE seex_boolean,
            subrc LIKE sy-subrc,
            abs_type_classname TYPE string.
    The absolte type name of the changing parameter instance
    is got via dynamic describe
      CALL METHOD cl_abap_typedescr=>describe_by_data
             EXPORTING
                       p_data       = instance
             RECEIVING
                       p_descr_ref  = type_ref.
      IF type_ref->type_kind NE type_ref->typekind_oref.
        RAISE no_reference.
      ENDIF.
      CATCH SYSTEM-EXCEPTIONS others = 1.
        int_ref ?= type_ref.
      ENDCATCH.
      IF sy-subrc = 1.
        RAISE no_reference.
      ENDIF.
      CALL METHOD int_ref->get_referenced_type
            RECEIVING
                p_descr_ref = type_ref.
      IF type_ref->type_kind NE type_ref->typekind_intf OR
         type_ref->absolute_name NS '\INTERFACE='.
        RAISE no_interface_reference.
      ENDIF.
    Get the interface name by the absolute type name
      SPLIT type_ref->absolute_name AT '=' INTO temp interface.
    Get the exit_name for the interface name
      SELECT exit_name FROM sxs_inter INTO exit_name
               WHERE inter_name = interface.
        EXIT.
      ENDSELECT.
      IF sy-subrc = 4.
        RAISE data_incons_in_exit_managem.
      ENDIF.
    Get the name of the exit class
      CALL FUNCTION 'SXV_GET_CLIF_BY_NAME'
           EXPORTING
                name   = exit_name
                prefix = seex_exit_class_prefix
           IMPORTING
                clif   = clskey-clsname.
      CONCATENATE '\CLASS=' clskey-clsname INTO abs_type_classname.
    Is the given instance initial?
      IF NOT instance IS INITIAL.
        CALL METHOD cl_abap_typedescr=>describe_by_object_ref
               EXPORTING
                         p_object_ref = instance
               RECEIVING
                         p_descr_ref  = type_ref.
        CHECK type_ref->absolute_name NE abs_type_classname.
      ENDIF.
    check how many implementations exist for an exit
      CALL FUNCTION 'SXC_ACT_IMPS_PER_FLT_VAL'
           EXPORTING
                exit_name                = exit_name
           EXCEPTIONS
                multiply_active          = 1
                no_active_implementation = 2
                OTHERS                   = 3.
      subrc = sy-subrc.
      IF subrc = 1.
    there are more than one active implementations
    read the properties of the exit
        SELECT SINGLE mltp_use FROM sxs_attr INTO mult
                      WHERE exit_name = exit_name.
        IF sy-subrc = 4.
          RAISE data_incons_in_exit_managem.
        ELSEIF mult = seex_false.          " singular exit
          RAISE single_exit_multiply_active.
        ENDIF.
      ENDIF.
    act_imp_existing
      IF subrc = 2.
        act_imp_existing = seex_false.
      ELSE.
        act_imp_existing = seex_true.
      ENDIF.
    ok, then do your job
      CREATE OBJECT exit TYPE (abs_type_classname).
      CATCH SYSTEM-EXCEPTIONS move_cast_error = 1.
        instance ?= exit.
      ENDCATCH.
      IF sy-subrc = 1.
        RAISE cast_error.
      ENDIF.

  • Search user-exit for create purchase order

    Hi all,
    i'm searching the user-exit (or BADI) for create purchase order.
    Thanks for help.

    Hi CECG,
    GOTO SMOD and press F4
    then Click on  Information system
    and in the Package name give as     ME
    and press enter.
    you will get all user exits for Purchase Orders
    Hope this solves your problem.
    Please reward points if found helpful.
    Thanks and regards,
    Rajeshwar.

  • BADI-User exit required for updating Purchase order header field -IHREZ

    Hello All,
    We have requirement in our business to update the purchase order header field "our reference" EKKO-IHREZ with some text field. We need a BADI/user exit that can be used for updating this field . We have checked the BADI ME_PROCESS_PO_CUST and unfortunately we are not able to use this BADI as it getting triggered in enjoy SAP transactions ME21N , ME22N etc. We are not creating the purchase order manually and we are using ME59N for creating Purchase order . Hence we are looking for some user exit/BADI that can be used in ME59N for updating the purchase order header field IHREZ.
    Thanks in advance for your immediate response .
    With regards,
    Joseph Anand B

    TRY using the exist u2022     EXIT_SAPLME59_001
    You can also later on add this field by BAPI_PO_CHANGE

  • User exit or BADI while saving purchase order

    Hello,
    I want to use an user exit or BADI while saving of purchase order. The objective is to check the material group of the line item while saving. We don´t want to allow to save purchase orders for one material group.
    Can you please guide me.
    Thanks
    Srinivasan

    Hi
    The Business Add-In (BAdI) ME_PROCESS_PO_CUST enables you to extend the business logic of the Enjoy purchase order on an individual basis.
    You can thus influence the dialog transactions ME21N, ME22N, ME23N, and ME29N, and the BAPIs BAPI_PO_CREATE1 and BAPI_PO_CHANGE.
    Typical applications for this BAdI include:
    Processing of own objects
    Processing of additional data on standard objects
    Implementation of additional checks and derivationsChange of data in standard fields
    Change in field selection
    you can use this BADI for checking the material group
    Thanks & Regards
    Kishore

  • LTP Planning for Subcontracting Purchase Order

    Hi All,
    I am doing LTP run for the Finished Material.
    Finished Material is having few open subcontracting Purchase order's.
    When I take the LTP run  in MS02, system is considering the Open PO's and adjusting (netting) it with the Planned independent requirements of finished material. This is ok.
    But the planning is not creating depending procurement proposals for the child items.
    It is subcontracting PO of finished material, system suppose to create the dependent requirements.
    In the MRP run it is working fine in MD02. But not working in LTP planning run in MS02 Transaction.
    Rgds /  Shailendra
    Edited by: Shailendra Hadkar on Apr 7, 2010 10:44 AM

    Hi All,
    I have found one BAdi u201CMD_CHANGE_MRP_DATAu201D  for showing up Subcon requirements in MS04 for child materials.
    This BADI "MD_CHANGE_MRP_DATA" requires to implement using method "CONSIDER_RESB".
    But implementation of this BADI using method "CONSIDER_RESB" will open up Dependent requirements/reservations of phantoms in phantom assembly planning and other reservations also.
    How I can implement this BADI for specific Subcon requirements or Specific MRP element??
    Regards,
    Shailendra
    Please refer below post by Nethi Venkata R... 
    LTP Doubt

  • Bad performance updating purchase order (ME22N)

    Hello!
    Recently, we face bad performance updating purchase orders using transaction ME22N. The problem occurs since we implemented change documents for a custom table T. T is used to store additional data to purchase order positions using BAdIs ME_PROCESS_PO_CUST and ME_GUI_PO_CUST.
    I've created a change document C_T for T using transaction SCDO. The update module of the change document is triggered in the method POST of BAdI ME_PROCESS_PO_CUST.
    Checking transaction SM13, I recognized that the update requests of ME22n have status INIT for several minutes before they are processed. I also tried to exclude the call of the update module for change document C_T (in Method POST) - the performance problem still occurs!
    The problem only occurs with transaction ME22N, thus I assume that the reason is the new change document C_T.
    Thanks for your help!
    Greetings,
    Wolfgang

    I agree with vikram, we don't have enough information, even not a small hint on usage of this field, so which answer do you expect (The quality of an answer depends ...) This analysis must be executed on your system...
    From a technical point of view, the BAPI_PO_CHANGE has EXTENSIONIN table parameter, fill it using structure BAPI_TE_MEPOITEM[X] alreading containing CI_EKPODB (*) and CI_EKPODBX (**)
    Regards,
    Raymond
    (*) I guess you have used this include
    (**) I guess you forgot this one (same field names but data element always BAPIUPDATE)

  • What is the BADI  while SAVING purchase order using me22n?

    what is the BADI  while SAVING purchase order using me22n?
    while i will save purchase order through me22n, badi should be fire what is badi for that?
    regards,
    dushyant.

    Dushyant,
    Hopefully you know how to implement the BADI ME_PROCESS_PO_CUST now.
    The following are the codes that you can put in the method "Post".
      DATA: LW_HEADER        TYPE MEPOHEADER,
            LW_POSTED_HEADER TYPE MEPOHEADER,
            LW_VALID         TYPE MMPUR_BOOL,
            ITAB_ITEM        TYPE PURCHASE_ORDER_ITEMS,
            LW_ITEM          TYPE MEPOITEM,
            ITEM_INTERFACE   TYPE PURCHASE_ORDER_ITEM,
            ITAB_ACCT        TYPE PURCHASE_ORDER_ACCOUNTINGS,
            ACCT_INTERFACE   TYPE PURCHASE_ORDER_ACCOUNTING,
            LW_ACCT          TYPE MEPOACCOUNTING,
            LW_POSTED_ACCT   TYPE MEPOACCOUNTING,
            W_ACCT_CHANGED  TYPE C,
            W_GRANT_AMT      TYPE EKPO-NETWR,
            W_FINANCE_AMT    TYPE EKPO-NETWR,
            W_FLAG           TYPE C.
    Check if PO header data is valid
      CLEAR LW_VALID.
      CALL METHOD IM_HEADER->IS_VALID
        RECEIVING
          RE_VALID = LW_VALID.
      CHECK LW_VALID = 'X'.
    PO header data is valid
    Get the newly updated PO header data
      CLEAR LW_HEADER.
      CALL METHOD IM_HEADER->GET_DATA
        RECEIVING
          RE_DATA = LW_HEADER.
    Get the posted PO header data
      CLEAR LW_POSTED_HEADER.
      CALL METHOD IM_HEADER->GET_PERSISTENT_DATA
        IMPORTING
          EX_DATA = LW_POSTED_HEADER
        EXCEPTIONS
          NO_DATA = 1.
      IF SY-SUBRC <> 0.
        CLEAR LW_POSTED_HEADER.
      ENDIF.
    Get PO line items
      REFRESH ITAB_ITEM.
      CALL METHOD IM_HEADER->GET_ITEMS
        RECEIVING
          RE_ITEMS = ITAB_ITEM.
      LOOP AT ITAB_ITEM INTO ITEM_INTERFACE.
    Check if PO line item is valid
        CLEAR LW_VALID.
        CALL METHOD ITEM_INTERFACE-ITEM->IS_VALID
          RECEIVING
            RE_VALID = LW_VALID.
        IF LW_VALID <> 'X'.
    This PO line item is not valid
          CLEAR W_ACCT_CHANGED.
          EXIT.
        ENDIF.
        CLEAR LW_ITEM.
        CALL METHOD ITEM_INTERFACE-ITEM->GET_DATA
          RECEIVING
            RE_DATA = LW_ITEM.
    Get the account interface
        REFRESH ITAB_ACCT.
        CALL METHOD ITEM_INTERFACE-ITEM->GET_ACCOUNTINGS
          RECEIVING
            RE_ACCOUNTINGS = ITAB_ACCT.
        LOOP AT ITAB_ACCT INTO ACCT_INTERFACE.
          CLEAR LW_ACCT.
    Get the newly updated PO item data
          CALL METHOD ACCT_INTERFACE-ACCOUNTING->GET_DATA
            RECEIVING
              RE_DATA = LW_ACCT.
          CLEAR LW_POSTED_ACCT.
    Get the posted PO item data
          CALL METHOD ACCT_INTERFACE-ACCOUNTING->GET_PERSISTENT_DATA
            IMPORTING
              EX_DATA = LW_POSTED_ACCT
            EXCEPTIONS
              NO_DATA = 1.
          IF SY-SUBRC > 0.
            CLEAR LW_POSTED_ACCT.
          ENDIF.
          IF LW_ACCT-LOEKZ <> LW_POSTED_ACCT-LOEKZ OR
             LW_ACCT-KOSTL <> LW_POSTED_ACCT-KOSTL OR
             LW_ACCT-PRCTR <> LW_POSTED_ACCT-PRCTR OR
             LW_ACCT-PS_PSP_PNR <> LW_POSTED_ACCT-PS_PSP_PNR.
    Account assignment was changed
    We will force this PO to go through workflow
            W_ACCT_CHANGED = 'Y'.
          ENDIF.
        ENDLOOP.
      ENDLOOP.

  • New smart form picking enjoy purchase order /SAPDII/SPP_ORDER

    Hi Experts,
    Ours is a new implementation project.
    Requirement is to design a new smart form for purchase order.
    The print program for the purchase order is loaded.
    When I go for print preview the print program is calling the enjoy PO and not my form.
    I checked in the transaction NACE
    PRINT PROGRAM : Z_SMBZA_ZA_FM06P
    FORM ROUTINE :ENTRY_NEU
    FORM : -
    PDF/SMARTFORM : Z_MMPO_ZA
    My print program has 2 includes
    INCLUDE Z_SMBA0_AA_FM06TOP.
    INCLUDE Z_SMBA0_AA_FM06PE02.
    Every thing is working fine except with the following piece of code
    IF NOT tnapr-sform IS INITIAL.
        lf_formname = tnapr-sform.
      ELSE.
        MESSAGE e001(ssfcomposer).
      ENDIF.
    Here I am getting tnapr-form as /SAPDII/SPP_ORDER and not Z_MMPO_ZA
    If I change the field to Z_MMPO_ZA in debugging it works fine and I am getting the output of my form.
    In the table TNAPR the field SFORM  shows Z_MMPO_ZA
    In the table NAST the field PFLD3 shows /SAPDII/SPP_ORDER
    Can some one help me how to make the program by default read my form and not /SAPDII/SPP_ORDER
    Thanks
    Joshi

    Hi,
    IF NOT tnapr-sform IS INITIAL.
    lf_formname = tnapr-sform.
    ELSE.
    MESSAGE e001(ssfcomposer).
    ENDIF.
    In debugging check what is value in TNAPR-KSCHL and confirm whether this is the desired output for PO printing.
    Also check in PO Header --> Messages, what is the output type configured there. If it is not the desired output type, try adding your desired output type there and chek the print preview.
    Also confirm the NACE settings are correct for your Output Type used wihile taking the PO printout.
    Thanks & Regards,
    Harish

  • Data Migration for Open Purchase Order

    Hi, All,
    Is there anyone know how to Count the volume for Open Purchase Order. What's the normal strategy for the Data Migration and Cut-over stage?
    My client want to know how many Open Purchase Order in the legacy system and then determine manual or automatic data migration. If manual, how to do? If automatic, how to do? Because all materials and vendors, plants are different number. How to track? How to find out to match between new and old?
    Thank you very much

    JC,
    Sounds a bit early to be making decisions about the realization phase.  It doesn't sound like you have finished the Blueprinting phase yet, much less the testing phase.
    Anyhow, in my experience I typically use LSMW (Legacy system migration workbench) to load MM master data (material masters), Inventory (WIP, RM, FG, etc) Purchasing Master data (Vendors, Purchase Info Records, Source Lists, Quota Arrangements), and Purchasing transactional documents (POs, PurReqs, Scheduling Agreements, etc).  Depending on the complexity and volume of data, it  may be necessary to write custom programs to load the data.  You will find this out during your requirements gathering.
    It is uncommon but possible to load all of these data manually.  I have never run across a client that wants to pay a consultant's hourly rate to sit at a terminal to peck away loading master data, so if the client intends to have his own users enter the data manually, the project manager should make provision that there will be qualified TRAINED client employees available for this data entry.  I did help with a portion of a conversion once manually; of Sales Credits, but there were only about 30 SD docs to load.   I did this the evening before go-live day, while I was waiting for some of my LSMW projects to complete in the background.
    A good opportunity to 'practice' your data loads is right after you have completed your development and customization, and you have gotten the approval from the client to proceed from the pilot build to the full test environment.  Once you have moved your workbench and customization into the client's test environment, but before integration testing, you can mass load all, or a substantial portion of your conversion data into the qual system.  You can treat it like a dry run for go-live, and fine tune your processes, as well as your LSMW projects.
    Yes, it is good practice to generate comparisons between legacy and SAP even if the client doesn't ask for it. For Purchase orders on the SAP side, you could use any of the standard SAP Purchasing reports, such as ME2W, ME2M, ME2C, ME2L, ME2N.  If these reports do not meet the requirements of the client, you could write a query to display the loaded data, or have an ABAPer write a custom report.
    You didn't ask, but you should also do comparisons of ALL loaded data - including master data.
    It sounds like you are implying that the client wants YOU to extract the legacy data.  For an SAP consultant, this is not very realistic (unless the legacy system is another SAP system).  Most of us do not understand the workings of the myriad legacy systems.  The client is usually expected to produce one or more legacy system technical experts for you to liase with.  You normally negotiate with the technical expert about every facet of of the data migration.  In addition, you will liase with business users, who will help you and the implementation team to logically validate that the final solution (turnkey SAP production system, fully loaded with data) will meet the client's business needs.
    Finally, you mentioned how do you track the mapping of master data between legacy and SAP.  There are many ways to do this.  I normally try to get the legacy person do the conversion on his end, eg, when he gives you the load file, you would like to have already translated the master data and inserted the SAP relevant values into the file.  If this is not possible, I usually use MS Access databases to maintain a master map, and I perform the mapping on a PC.  If your data package is small, you can probably get by using MS Excel or similar.
    Good Luck,
    DB49

  • Availability  check in Enjoy Purchase Order & Requisition

    Hi Experts,
    The availability check is used in 4.7E also but what is difference in Ecc 6.0 or new functionality added
    Can any one plz let me know
    Regards
    Pratap

    Below is capture from sap release documentation :
    Availability Check in Enjoy Purchase Order and Requisition
    (Changed)
    Use
    As of SAP ECC 6.0, SAP_APPL 600, display and checking of availability are invokable separately in the
    Enjoy purchase order and requisition in line with the system behavior on the Sales side.
    You invoke the display and checking of availability in the Enjoy purchase order (transaction code
    ME21N) and the Enjoy purchase requisition (transaction code ME51N) as follows:
    - To display the availability overview, choose Environment -> Availability
    - To check availability, choose the Check Availability icon.
    13.6.16.3 System Behavior After Availability Check for an Item (Changed)
    Use
    If you carry out the availability check for an item of a stock transport order, hitherto the system adopted
    confirmations as per the desired date/time only.
    SAP AG 30
    ______________________________________________________S_A_P_-S_y_s_te_m_
    As of SAP ECC 6.0, SAP_APPL 600, you can define in Customizing how the system reacts if the desired
    quantity cannot be confirmed for the desired date/time.
    You have a choice of two settings:
    - Confirmation as per desired date/time
    This is the standard setting and corresponds to previous system behavior.
    - Delivery proposal
    - Full confirmation
    Effects on Customizing
    You make the settings in the Rule for Adoption of ATP Results in Purchasing field in Customizing for
    Purchasing under Purchase Order -> Set Up Stock Transport Order -> Assign Delivery Type and
    Checking Rule.

  • Enjoy purchase order transaction

    Hi All,
    Can anybody tell me how get idea on Enjoy Purchase Order.
    ie, how to update it ie, using bapi.
    Can anybody explain it in detail.
    regards,
    phaneendra.

    Hi,
    Check reply from vijay babu using BAPI_PO_CREATE1
    BDC for ME21N
    Regards

  • How to set up automatic payment for the purchase order

    Hi, All,
    I have one question how to set up automatically payment for the Rent Office purchase Order?
    There is the requirement from the client. They want to create one kind of purchase order for the Office Rent, then pay the fees in the certain time of every month to the vendor for the rent fees without any invoice. Whatu2019s the normal solution for this kind of purchase order? Is it ERS? Or something else?
    Please give me the details and business flow. Also please tell me how to setup in the SAP and T-code.
    Thanks in advance

    Either you can set up ERS or you can pay directly from the FI side.
    Prerequisites
    Evaluated receipt settlement must be flagged in the purchase order item.
    The vendor must be flagged as being subject to ERS in the vendor master record.
    The goods receipt must refer to a purchase order.
    Goods-receipt-based Invoice Verification must be defined for the purchase order item.
    A tax code must have been maintained in the purchase order item.
    The order price of the materials may not be an estimated price.
    If you flag a vendor as being subject to ERS, the system sets the ERS indicator as a default in each item when you create a purchase order for the vendor. You can prevent this happening for certain vendors by flagging the info record for the material and the vendor as not being subject to ERS.
    In Purchasing, you can delete the default ERS indicator in a purchase order item.
    Choose Logistics Invoice Verification ® Automatic Settlement ® Evaluated Receipt Settlement (ERS).
    The selection screen appears.
    You can use the following criteria to narrow down selection of the transactions to be settled:
    Company code
    Plant
    Goods receipt posting date
    Goods receipt document
    Fiscal year of the goods receipt
    Vendor
    Purchase order and order item
    You can define the selection criteria for the invoice documents by:
    Delivery
    Purchase order
    Purchase order item
    Goods receipt document
    Credit memo
    Invoice
    Currency
    Choose  Execute.
    The system issues a log for Evaluated Receipt Settlement, which displays the following:
    Settled
    In line with your selection criteria, the system displays all the order items that were settled (or if you are working in test mode, which would have been settled).
    Could not be settled
    In line with your selection criteria, the system displays all order items for which ERS is defined but could not be settled. It also lists the reasons.
    If the system reports being unable to invoice a transaction, you should exclude the transaction from ERS to avoid it being included in the log the next time ERS is run.
    Select the item and choose Exclude from ERS.
    The system also generates and possibly sends a message to inform the vendor(s) about the transaction settled, depending on the settings in Customizing.
    You can display the following environment information for the order items selected. To do this, choose Goto ®:
    Display purchase order
    Display invoice
    Display material document
    Display long text

Maybe you are looking for