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.
DerickYou 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 BTRY 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
SrinivasanHi
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 AMHi 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,
WolfgangI 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
JoshiHi,
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 muchJC,
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
PratapBelow 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 advanceEither 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
-
Album artwork disappeared after an iTunes error... how can I get I back?
I've been using iTunes for years and out of a clear blue sky I get this error message, "iPhone cannot be synced because the sync session failed to start." After trying a few different things I find a fix that works- turn my iPhone all the way off and
-
Whats the difference between high-density and low-density ram?
I bought what I thought was supposed to be a cheap 256 mb chip (pc100 or 133) but the g4 400 read only 128mb, The fellow in the store that sold it flipped out when I told him I had a Mac and said something about high density and low-density.Another g
-
I want to create an offline clickable portfolio that will launch with one file click on a USB device
I want the fastest solution. I could create in Dreamweaver, Muse, Flash or Edge, or InDesign with clickable links. What do you recommend as the best? Is there an export format that would work best as a single clickable file that is cross platform? Is
-
Photoshop Elements 12 install issue [edited by host]
I purchased Photoshop Elements 12 on April 14 2014. I installed it on a PC that Crashed due to a defective Power Supply and Case. I have finally rebuilt the PC and have my Serial Number. How do I get it back on my machine? It is the same motherboar
-
IP address restrictions not working with bea weblogic plugin
We want to implement IP address restrictions via the Sun Java One Web Server admin tool for our application. We are using the Sun Java One Web Server to proxy requests via the Bea Weblogic plugin. However, we cannot get IP address restrictions to wor