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.
cancel
Showing results for 
Search instead for 
Did you mean: 

Enhancement - Screen exit

Former Member
0 Kudos
186

Hi All,

Requirement is to add couple of fields in Standard transaction.

Please let me know the steps of finding the Exit and development steps.

Thanks in advance.

Ravi

8 REPLIES 8

Former Member
0 Kudos
93

for user exit...

Finding the user-exits of a SAP transaction code

*

  • Finding the user-exits of a SAP transaction code

*

  • Enter the transaction code in which you are looking for the user-exit

  • and it will list you the list of user-exits in the transaction code.

  • Also a drill down is possible which will help you to branch to SMOD.

*

*

report zuserexit 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.

*---End of Program

Screen exits 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

http://www.sappoint.com/abap/userexit.pdf

this is a PDF regarding the exits ....

Former Member
0 Kudos
93

Hi,

You will find your solution here,refer to below threads:

Reward points for useful answers

Rgds,

Former Member
0 Kudos
93

Hi,

send me ur email id i will send u good doc on this topic.

<b>Step by step procedure for creating Field Exits</b>

There are eight steps to creating a field exit:

Step 1: Determine Data Element

Step 2: Go To Field Exit Transaction

Step 3: Create Field Exit

Step 4: Create Function Module

Step 5: Code Function Module

Step 6: Activate Function Module

Step 7: Assign Program/Screen

Step 8: Activate Field Exit

Step 1: Determine Data Element

- Before you can begin adding the functionality for a field exit, you must know the corresponding data element.

- An easy way to determine the data element associated to a particular screen field is to:

Go the appropriate screen.

Position the cursor in the appropriate field.

Press ‘F1’ for field-level help.

Click on the ‘Technical info’ pushbutton (or press ‘F9’) on the help dialog box.

On this Technical Information dialog box, the data element will be specified if the field is 'painted' from the ABAP/4 Dictionary.

Step 2: Go To Field Exit Transaction

- The transaction to create field exits is CMOD.

- You can use the menu path Tools -> ABAP/4 Workbench -> Utilities -> Enhancements -> Project management.

- From the initial screen of transaction CMOD, choose the Text enhancements -> Field exits menu path.

- After choosing this menu path, you will be taken to the field exits screen. From here, you can create a field exit.

NOTE : Even though you use transaction CMOD to maintain field exits, you do not need to create a project to activate field exits.

Step 3: Create Field Exit

- From the field exit screen of transaction CMOD, choose the Field exit -> Create menu path.

- After choosing this menu path, a dialog box will prompt you for the appropriate data element .

- Enter the data element name and click the ‘Continue’ pushbutton.

- Now, you will be able to create the function module associated to the data element’s field exit.

Step 4: Create Function Module

- You will automatically be taken to the Function Library (SE37) after entering a data element name and clicking the ‘Continue’ pushbutton.

- In the ‘Function module’ field, a function module name will be defaulted by the system based on the data element specified. This name will have the following convention:

FIELD_EXIT_<data element>

- You can add an identifier (an underscore followed by a single character ).

- The first function module for a data element’s field exit must be created without an identifier.

- To create the function module, click on the ‘Create’ pushbutton, choose menu path Function module -> Create, or press ‘F5’.

- After choosing to create the function module, you will get the warning: "Function module name is reserved for SAP". This message is just a warning so a developer does not accidentally create a function module in the field exit name range. By pressing ‘Enter’, you will be able to go ahead and create the function module.

- Before coding the function module, you will have to specify the function modules attributes -- function group, application, and short text.

Step 5: Code Function Module

- From the function module’s attributes screen, click on the ‘Source code’ pushbutton or choose the Goto -> Function module menu path to the code of the function module.

- Here you will add your desired functionality for the field exit.

- Remember that field exit’s function module will have two parameters -- one importing parameter called "INPUT" and one exporting parameter called "OUTPUT". These parameters will be set up automatically by the system.

- You must remember to assign a value to the OUTPUT field. Even if the value does not change, it must be moved from the INPUT field to the OUTPUT field.

Step 6: Activate Function Module

- After coding the function module, you must remember to activate it.

- Use the Function module -> Activate menu path to activate the function module.

- At this point, you can return to the field exit transaction.

- You should be able to 'green arrow' back to this transaction.

- When you return to the field exit transaction, you will see an entry for the newly created field exit.

- At this point, the field exit is global. That is, it applies to all screens that use a particular data element. On any screen that uses the data element, the corresponding field exit function module will be triggered, once it is active.

- Also, the field exit will not be triggered yet because it is inactive.

Step 7: Assign Program/Screen

- This step is only needed if you want to make a field exit local.

- To make a field exit local, select the field exit and click on the ‘Assign prog./screen’ pushbutton.

- In the dialog box , indicate the appropriate program name and screen number.

This information indicates that the field exit is local to the specified screen in the specified program.

- In the dialog box, you determine which function module gets executed for the field exit by specifying the identifier in the ‘Fld. Exit’ field.

- If this field is left blank, the function module triggered will be 'FIELD_EXIT_<data element>'.

- If a single-character identifier is entered into the field, the function module triggered will be 'FIELD_EXIT_<data element>_<identifier>'.

Step 8: Activate Field Exit

- The field exit must be active for it to be triggered by the system.

- Activate the field exit by choosing the Field exit -> Activate menu path.

- After assigning the field exit to a change request, its status will change to ‘Active’ and it will be triggered automatically on the appropriate screen(s).

NOTE : In order to activate the field exit the profile parameter abap/fieldexit = YES must be set on all application servers

rgds,

latheesh

Message was edited by: Latheesh Kaduthara

Former Member
0 Kudos
93

Hi Ravikumar,

No direct way, but you can look into SMOD and look for a screen exit in the area your transaction belongs to or you can go to config and read the documentation associated with your transaction area's system modification activity or create and execute your own ABAP code to find one.

Here is a piece of code published previously in this forum.

Reward points if helpful,

Rgds,

Sumana

Former Member
0 Kudos
93

Hi Ravi,

Gimme your Email ID, will forward you a document, it will solve your problem.

Regs,

Venkat Ramanan

Former Member
0 Kudos
93

Hi,

Let me take an example for a purchase order screen exit you hav perform the foll steps::::::::

1.Goto CMOD transation.

2.From the main screen of the Project management transaction, proceed as follows:

Select Enhancement components and choose Change.

3.Choose Edit component.

4.Choose the screen exit and double click on it and

Create your subscreen using the Screen Painter.

5.Design your screen to be added to the standard screen and activate the particular screen and return back to the flow logic .

6.Choose the PAI and PBO to write down the logic.

7.Generate your screen and choose Back (the green arrow) to return to the Project management transaction.

8.Go to the transaction ME22 to view the customer defined screen exit.

9.Enter the purchase order number and press Enter.

10.Go to the menu header --> Details.

11.Purchase number is visible on the standard screen

Also check the following links.

http://help.sap.com/saphelp_47x200/helpdata/en/2b/7d8838754ebb10e10000009b38f8cf/frameset.htm

http://help.sap.com/saphelp_47x200/helpdata/en/c8/1975e643b111d1896f0000e8322d00/frameset.htm

http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction

Please reward.

Former Member
0 Kudos
93

Hai Ravi

User Exits

Screen exits 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

MENU EXITS

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"

Have look at this links

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIOFFI/BCCIOFFI.pdf

http://www.sapgenie.com/abap/ole.htm

http://help.sap.com/saphelp_46c/helpdata/en/59/ae3f2e488f11d189490000e829fbbd/frameset.htm

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIOFFI/BCCIOFFI.pdf

User Exist Finding

Go to se93 and give the tcode to find the main program associated to it.

Go to se38 and give the main program.

Find the package associated to it.Go to->Object Directory Entry.

Go to smod transaction.

Press f4.

Press Information System Button.

Give the Project(Dev Class).

Press enter.

Find the enhancements associated

User Exist System Tables

1. MODSAP & MODSAPT is the table.

2. Where we can give the enhancement name.

3. Component type will be E

for getting the FMs.

E Function exit

S Screens

T Tables

C GUI code

Field Exist Creation

Step by step procedure for creating Field Exits

There are eight steps to creating a field exit:

Step 1: Determine Data Element

Step 2: Go To Field Exit Transaction

Step 3: Create Field Exit

Step 4: Create Function Module

Step 5: Code Function Module

Step 6: Activate Function Module

Step 7: Assign Program/Screen

Step 8: Activate Field Exit

Step 1: Determine Data Element

- Before you can begin adding the functionality for a field exit, you must know the corresponding data element.

- An easy way to determine the data element associated to a particular screen field is to:

Go the appropriate screen.

Position the cursor in the appropriate field.

Press ‘F1’ for field-level help.

Click on the ‘Technical info’ pushbutton (or press ‘F9’) on the help dialog box.

On this Technical Information dialog box, the data element will be specified if the field is 'painted' from the ABAP/4 Dictionary.

Step 2: Go To Field Exit Transaction

- The transaction to create field exits is CMOD.

- You can use the menu path Tools -> ABAP/4 Workbench -> Utilities -> Enhancements -> Project management.

- From the initial screen of transaction CMOD, choose the Text enhancements -> Field exits menu path.

- After choosing this menu path, you will be taken to the field exits screen. From here, you can create a field exit.

NOTE : Even though you use transaction CMOD to maintain field exits, you do not need to create a project to activate field exits.

Step 3: Create Field Exit

- From the field exit screen of transaction CMOD, choose the Field exit -> Create menu path.

- After choosing this menu path, a dialog box will prompt you for the appropriate data element .

- Enter the data element name and click the ‘Continue’ pushbutton.

- Now, you will be able to create the function module associated to the data element’s field exit.

Step 4: Create Function Module

- You will automatically be taken to the Function Library (SE37) after entering a data element name and clicking the ‘Continue’ pushbutton.

- In the ‘Function module’ field, a function module name will be defaulted by the system based on the data element specified. This name will have the following convention:

FIELD_EXIT_<data element>

- You can add an identifier (an underscore followed by a single character ).

- The first function module for a data element’s field exit must be created without an identifier.

- To create the function module, click on the ‘Create’ pushbutton, choose menu path Function module -> Create, or press ‘F5’.

- After choosing to create the function module, you will get the warning: "Function module name is reserved for SAP". This message is just a warning so a developer does not accidentally create a function module in the field exit name range. By pressing ‘Enter’, you will be able to go ahead and create the function module.

- Before coding the function module, you will have to specify the function modules attributes -- function group, application, and short text.

Step 5: Code Function Module

- From the function module’s attributes screen, click on the ‘Source code’ pushbutton or choose the Goto -> Function module menu path to the code of the function module.

- Here you will add your desired functionality for the field exit.

- Remember that field exit’s function module will have two parameters -- one importing parameter called "INPUT" and one exporting parameter called "OUTPUT". These parameters will be set up automatically by the system.

- You must remember to assign a value to the OUTPUT field. Even if the value does not change, it must be moved from the INPUT field to the OUTPUT field.

Step 6: Activate Function Module

- After coding the function module, you must remember to activate it.

- Use the Function module -> Activate menu path to activate the function module.

- At this point, you can return to the field exit transaction.

- You should be able to 'green arrow' back to this transaction.

- When you return to the field exit transaction, you will see an entry for the newly created field exit.

- At this point, the field exit is global. That is, it applies to all screens that use a particular data element. On any screen that uses the data element, the corresponding field exit function module will be triggered, once it is active.

- Also, the field exit will not be triggered yet because it is inactive.

Step 7: Assign Program/Screen

- This step is only needed if you want to make a field exit local.

- To make a field exit local, select the field exit and click on the ‘Assign prog./screen’ pushbutton.

- In the dialog box , indicate the appropriate program name and screen number.

This information indicates that the field exit is local to the specified screen in the specified program.

- In the dialog box, you determine which function module gets executed for the field exit by specifying the identifier in the ‘Fld. Exit’ field.

- If this field is left blank, the function module triggered will be 'FIELD_EXIT_<data element>'.

- If a single-character identifier is entered into the field, the function module triggered will be 'FIELD_EXIT_<data element>_<identifier>'.

Step 8: Activate Field Exit

- The field exit must be active for it to be triggered by the system.

- Activate the field exit by choosing the Field exit -> Activate menu path.

- After assigning the field exit to a change request, its status will change to ‘Active’ and it will be triggered automatically on the appropriate screen(s).

NOTE : In order to activate the field exit the profile parameter abap/fieldexit = YES must be set on all application servers

Thanks & regards

Sreenivasulu P

Former Member
0 Kudos
93

Hello Ravi,

You need to specify which is the transaction. As you have already received lot of response related to program to find the exit , u can use one of them also