Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
Showing results for 
Search instead for 
Did you mean: 

Is there any User exit for ME51

Former Member
0 Kudos


There is one user exit for ME21, that is 'EXIT_SAPMM06E_012'. Is there any user exit for ME51? one more problem is, how to output a value from internal table to screen using user exit. please help me asap.

thanks in advance.

Siva Sankar.


Former Member
0 Kudos

Hi Siva,

I think you can use EXIT_SAPLMEREQ_005 to check Customer's Own Purchase Requisition Data. It's similar with EXIT_SAPMM06E_012 which validates customer fields when saving PO (and also when checking document).

About output a value from internal table to screen, can you elaborate more?

I once added a customer data tab in PO using MM06E005 enhancement which one of the component is EXIT_SAPMM06E_012. You'll need to define the customer extension fields (example: zzusername), added it CI_EKKODB structure, then using screen painter, define a field in for which this zzusername field will be shown

Hopefully this helps you



0 Kudos

Hi Andry,

Thanks for ur quick reply.

I'll explain my problem,

In ME21(creating PO), in Line item details, if \we give material, material description is coming from MAKT table automatically and before saving the PO, standaed SAP allowing user to change the description. I need to restrict here. I wrote one field exit, but its not wrking for ME21. Thats why i'm using this exit. If user changes the description, while saving one message should be given and changed description should be replaced with original one(from MAKT).

To replace it, what should i do. Where in field exit, assign directly to OUTPUT. But here what should i do? Please help asap.


Siva Sankar.

0 Kudos

Dear Mr.Siva,

Can you tell me how you prob get resolved.

Because i am also facing the same prob with our users.

Please help me in this.

Former Member
0 Kudos


following exits are available for me51

Transaction Code - ME52 Change Purchase Requisition

Exit Name Description

AMPL0001 User subscreen for additional data on AMPL

LMEDR001 Enhancements to print program

LMELA002 Adopt batch no. from shipping notification when posting a GR

LMELA010 Inbound shipping notification: Transfer item data from IDOC

LMEQR001 User exit for source determination

LMEXF001 Conditions in Purchasing Documents Without Invoice Receipt

LWSUS001 Customer-Specific Source Determination in Retail

M06B0001 Role determination for purchase requisition release

M06B0002 Changes to comm. structure for purchase requisition release

M06B0003 Number range and document number

M06B0004 Number range and document number

M06B0005 Changes to comm. structure for overall release of requisn.

M06E0004 Changes to communication structure for release purch. doc.

M06E0005 Role determination for release of purchasing documents

ME590001 Grouping of requsitions for PO split in ME59

MEETA001 Define schedule line type (backlog, immed. req., preview)

MEFLD004 Determine earliest delivery date f. check w. GR (only PO)

MELAB001 Gen. forecast delivery schedules: Transfer schedule implem.

MEQUERY1 Enhancement to Document Overview ME21N/ME51N

MEVME001 WE default quantity calc. and over/ underdelivery tolerance

MM06E001 User exits for EDI inbound and outbound purchasing documents

MM06E003 Number range and document number

MM06E004 Control import data screens in purchase order

MM06E005 Customer fields in purchasing document

MM06E007 Change document for requisitions upon conversion into PO

MM06E008 Monitoring of contr. target value in case of release orders

MM06E009 Relevant texts for "Texts exist" indicator

MM06E010 Field selection for vendor address

MM06E011 Activate PReq Block

MMAL0001 ALE source list distribution: Outbound processing

MMAL0002 ALE source list distribution: Inbound processing

MMAL0003 ALE purcasing info record distribution: Outbound processing

MMAL0004 ALE purchasing info record distribution: Inbound processing

MMDA0001 Default delivery addresses

MMFAB001 User exit for generation of release order

MRFLB001 Control Items for Contract Release Order

No of Exits: 36

To find exit for any transaction use the following program








report zfinduserexit.

tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.

tables : tstct.

data : jtab like tadir occurs 0 with header line.

data : field1(30).

data : v_devclass like tadir-devclass.

parameters : p_tcode like tstc-tcode obligatory.

select single * from tstc where tcode eq p_tcode.

if sy-subrc eq 0.

select single * from tadir where pgmid = 'R3TR'

and object = 'PROG'

and obj_name = tstc-pgmna.

move : tadir-devclass to v_devclass.

if sy-subrc ne 0.

select single * from trdir where name = tstc-pgmna.

if trdir-subc eq 'F'.

select single * from tfdir where pname = tstc-pgmna.

select single * from enlfdir where funcname =


select single * from tadir where pgmid = 'R3TR'

and object = 'FUGR'

and obj_name eq enlfdir-area.

move : tadir-devclass to v_devclass.



select * from tadir into table jtab

where pgmid = 'R3TR'

and object = 'SMOD'

and devclass = v_devclass.

select single * from tstct where sprsl eq sy-langu and

tcode eq p_tcode.

format color col_positive intensified off.

write:/(19) 'Transaction Code - ',

20(20) p_tcode,

45(50) tstct-ttext.


if not jtab[] is initial.

write:/(95) sy-uline.

format color col_heading intensified on.

write:/1 sy-vline,

2 'Exit Name',

21 sy-vline ,

22 'Description',

95 sy-vline.

write:/(95) sy-uline.

loop at jtab.

select single * from modsapt

where sprsl = sy-langu and

name = jtab-obj_name.

format color col_normal intensified off.

write:/1 sy-vline,

2 jtab-obj_name hotspot on,

21 sy-vline ,

22 modsapt-modtext,

95 sy-vline.


write:/(95) sy-uline.

describe table jtab.


format color col_total intensified on.

write:/ 'No of Exits:' , sy-tfill.


format color col_negative intensified on.

write:/(95) 'No User Exit exists'.



format color col_negative intensified on.

write:/(95) 'Transaction Code Does Not Exist'.


at line-selection.

get cursor field field1.

check field1(4) eq 'JTAB'.

set parameter id 'MON' field sy-lisel+1(10).

Hope this helps to solve ur problem....

do reward if useful....



Former Member
0 Kudos


Steps to find out the user exits for the T-code.

1. findout the package name for the T-code

2. Go for SE80 and enter the package name and say enter

3. Go for the function group and select the function modules which are under the function group starting with 'X'. like XAMP, XM01, XM06,XMAL and etc... these are the useful exits for our requirements.

Reward me the points if it is useful for you.