2007 Apr 10 12:07 PM
Hi PPL,
Can anybody help me out in explaining me how to find a menu exit or the
Screen exit in a program...I have an requirement where i need to use both of them..
I have already posted this query , but people responded with links which had the
information on these two , but not the way to locate these...
I ll be very grateful for ur advice.
Regards,
Kevin Nick.
2007 Apr 10 12:13 PM
hi kevin
<b>Screen exits</b> are exits that allow you to use a reserved part of the screen (A subscreen) to display or input data.
It is determined be SAP where the sub screen will be displayed.
The syntax is: CALL CUSTOMER-SUBSCREEN
The screen exit is not processed untill the corresponding subscreen has been created in an enhancement project, and the project has been activated.
Note:
Function codes are only processed in the main screens flow logic
You are not allowed to enter a name for the subscreens command field
You are not allowed to define GUI stauses
You are not allowed to enter a value for Next screen
The global data of the program is not available for the subscreen. Data for the subscreen is provided by function modules. These function modules belongs to the same function group as the subscreen
Subscreens are edited with transaction CMOD. When you activate a project containg subscreens, the calling screen is regenerated and the subscreen is displayed next time you display the calling screen
The developer must create the subscreen and the corresponding PBO and PAI modules
How to identify screen exits
Look after CALL CUSTOMER-SUBSCREEN in the screenprogram of the screen you want to modify.
Use transaction CMOD menu Utillities -> SAP enhancements to search for screen exits
<b>MENU EXITS</b>
Menu exits allow you to add your own functionallity to menus. Menu exits are implemented by SAP, and are reserved menu entries in the GUI interface. The developer can add his/her own text and logic for the menu.
Function codes for menu exits all start with "+"
Example
We want to create a new menu item in the Office menu. The text for the menu should be "Run ZTEST", and the menu will
run report ZTEST.
Goto transaction SE43 Area Menu Maintenance
In Area Menu Paramenter type 'S000' (S triple Zero)
Select Change and ignore all the warning screens
Expand the office menu. In the buttom of the office tree you will find a menu named "Customer function"
Double click on the text. In the pop-up screen change the text to "Run ZTEST". Note that the trsnaction code is +C01
Goto transaction SE93 and create transaction +C01 that calls report ZTEST.
Now you will se the menu displayed in the office tree. If you delete transaction +C01 again, the new menu will dissapear.
USER EXITS
User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a functionmodule. The code for the function module is writeen by the developer. You are not writing the code directly in the function module, but in the include that is implemented in the function module.
The naming standard of function modules for functionmodule exits is: EXIT_<program name><3 digit suffix>
The call to a functionmodule exit is implemented as: CALL CUSTOMER.-FUNCTION ❤️ digit suffix>
Example:
The program for transaction VA01 Create salesorder is SAPMV45A
If you search for CALL CUSTOMER-FUNCTION i program SAPMV45A you will find ( Among other user exits):
CALL CUSTOMER-FUNCTION '003'
exporting
xvbak = vbak
xvbuk = vbuk
xkomk = tkomk
importing
lvf_subrc = lvf_subrc
tables
xvbfa = xvbfa
xvbap = xvbap
xvbup = xvbup.
The exit calls function module EXIT_SAPMV45A_003
2. How to find user exits
Display the program where you are searching for and exit and search for CALL CUSTOMER-EXIT
If you know the Exit name, go to transaction CMOD. Choose menu Utillities->SAP Enhancements. Enter the exit name and press enter.
You will now come to a screen that shows the function module exits for the exit.
3. Using Project management of SAP Enhancements
We want to create a project to enahance trasnaction VA01
Go to transaction CMOD
Create a project called ZVA01
Choose the Enhancement assign radio button and press the Change button
In the first column enter V45A0002 Predefine sold-to party in sales document . Note that an enhancement can only be used i 1 project. If the enhancement is allready in use, and error message will be displayed
Press Save
Press Components. You can now see that enhancement uses user exit EXIT_SAPMV45A_002. Double click on the exit.
Now the function module is displayed. Double click on include ZXVVAU04 in the function module
Insert the following code into the include: E_KUNNR = '2155'.
Activate the include program. Go back to CMOD and activate the project.
Goto transaction VA01 and craete a salesorder. Note that Sold-to-party now automatically is "2155"
regards
ravish
plz reward <b>points</b> if helpful
2007 Apr 10 12:13 PM
Hi,
to find menu exit.go to tcode CMOD.in that enter project name create.go to enhancements and click on F4 help of enhancement.give menu in discription field.it will give u list of menu exits.
rgds,
bharat.
2007 Apr 10 12:18 PM
TAKE THE PACKAGE NAME OF THE TCODE < OR PROG> NOW GO TO SMOD . IN ENHANCEMENT INPUT BOX DONT GIVE ANY VALUE AND PRESS F4 IT WILL SHOW A POPUP CLICK INFORMATION SYSTEM HERE GIVE PACKAGE NAME AND YOU CAN FIND 3 CHECK BOXES WITH FN MODULE EXITS SCREEN AREAS MENU ENTRIES. JUST CHOOSE SCREEN FOR SCREEN EXITS AND MENU FOR MENU EXITS. IF YOU ARE NOT ABLE TO SEE THAT JUST CHECK IN THE BELOW ON BUTTON WITH + SYMBOL(YELLOW COLOR) WILL BE THERE CLICK THAT IT WILL EXPAND THE POP UP..
REGARDS
SHIBA DUTTA
2007 Apr 10 12:20 PM
hi.....
for menu exit u will have to create menu bar and exit option in it and finally you need to code for that exit.
and for screen exit u can create it by creating a pf status and then within pf status u will find application toolbar and there u can select the exit button. for that also you need to code for that.
the sample code is as below for screen exit....
PROCESS AFTER INPUT.
MODULE exit_0100 AT EXIT-COMMAND.
***********************************************************
and code in exit module will be like
MODULE exit_0100 INPUT.
IF sy-ucomm = 'MNU_BACK' OR
sy-ucomm = 'MNU_CANCEL' OR
sy-ucomm = 'MNU_EXIT'.
LEAVE PROGRAM.
ENDIF.
ENDMODULE. " exit_0100 INPUT
<b>plz reward pts if helpful.</b>
regards
vijay
2007 Apr 10 12:20 PM
Hi Kevin,
Check this code. This might resolve your problem.
you can use this sample program to find the user exit for a particular application --
&----
*& Report YMS_USEREXITTEST *
*& *
&----
*& *
*& *
&----
REPORT YMS_USEREXITTEST no standard page heading.
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 = tfdir-funcname.
select single * from tadir where pgmid = 'R3TR' and object = 'FUGR' and obj_name eq enlfdir-area.
move : tadir-devclass to v_devclass.
endif.
endif.
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.
skip.
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.
endloop.
write:/(95) sy-uline.
describe table jtab.
skip.
format color col_total intensified on.
write:/ 'No of Exits:' , sy-tfill.
else.
format color col_negative intensified on.
write:/(95) 'No User Exit exists'.
endif.
else.
format color col_negative intensified on.
write:/(95) 'Transaction Code Does Not Exist'.
endif.
at line-selection.
get cursor field field1.
check field1(4) eq 'JTAB'.
set parameter id 'MON' field sy-lisel+1(10).
call transaction 'SMOD' and skip first screen.
Hope this resolves your query.
Reward all the helpful answers.
Regards
2007 Apr 10 12:24 PM
Hi Kevin,
Menu Exits
Menu exits add items to the pulldown menus in standard SAP applications. You can use these menu items to call up your own screens or to trigger entire add-on applications.
SAP creates menu exits by defining special menu items in the Menu Painter. These special entries have function codes that begin with "+" (a plus sign). You specify the menu items text when activating the item in an add-on project.
Screen Exits
Screen exits add fields to screens in R/3 applications. SAP creates screen exits by placing special subscreen areas on a standard R/3 screen and calling a customer subscreen from the standard screens flow logic.
Reward is helpful,
Regards,
Tanmay