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: 

user exits

Former Member
0 Kudos

Hi,

i have two doubts.pls clarify.

1. what is the defference between enhancement and user-exits?

2. Difference between CMOD and SMOD?

thanks in advance

Janardhan

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hai Kumar

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

In ABAP context , interfaces are only of two types.

1) INBOUND interfaces

2)OUTBOUND Interfaces.

INBOUND:(from external system data is fetched as flat files which is moved to SAP database tables).

in this process we get data in the form of flat files(.txt or .xlx). we will read this data from the files using FM like UPLOAD/WS_UPLOAD/GUI_UPLOAD into internal

tables. And using BDC methods or LSMW tool, we will update the database tables with this data.

OUTBOUND:(Data from SAP dtabase is retrieved adn stored as flatfiles on presentaion server or application server)

In this process we retrieve data using select statements from the database tables and will populate the internal tables. based on the requirement, we will use FM like DOWNLOAD/WS_DOWNLAOD/GUI_DOWNLOAD to write data from internal tables to flat files on th presentation server.

*the above mentioned Fm will work for files on presentaion server(local file system) . IF u want to handle files on the application server, use DATASET.

Other technologies that u mentioned like RFC, BAPI, EDI,ALE, IDOCS etc might be used as apart of interface code.

Regards

Sreeni

4 REPLIES 4

Former Member
0 Kudos

Hai Kumar

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

In ABAP context , interfaces are only of two types.

1) INBOUND interfaces

2)OUTBOUND Interfaces.

INBOUND:(from external system data is fetched as flat files which is moved to SAP database tables).

in this process we get data in the form of flat files(.txt or .xlx). we will read this data from the files using FM like UPLOAD/WS_UPLOAD/GUI_UPLOAD into internal

tables. And using BDC methods or LSMW tool, we will update the database tables with this data.

OUTBOUND:(Data from SAP dtabase is retrieved adn stored as flatfiles on presentaion server or application server)

In this process we retrieve data using select statements from the database tables and will populate the internal tables. based on the requirement, we will use FM like DOWNLOAD/WS_DOWNLAOD/GUI_DOWNLOAD to write data from internal tables to flat files on th presentation server.

*the above mentioned Fm will work for files on presentaion server(local file system) . IF u want to handle files on the application server, use DATASET.

Other technologies that u mentioned like RFC, BAPI, EDI,ALE, IDOCS etc might be used as apart of interface code.

Regards

Sreeni

Former Member
0 Kudos

hi Janajana,

1.

<b>What is User Exits?</b>

The following document is about exits in SAP :-

The R/3 enhancement concept allows you to add your own functionality to SAP’s standard business applications without having to modify the original applications.

SAP creates user exits for specific programs, screens, and menus within standard R/3 applications. These exits do not contain any functionality. Instead, the customer exits act as hooks. You can hang your own add-on functionality onto these hooks.

Types of Exits

There are several different types of user exits. Each of these exits acts as hooks where you can attach or "hang" your own add-ons.

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 item’s 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 screen’s flow logic.

Function Module Exits

Function module exits add functions to R/3 applications. Function module exits play a role in both menu and screen exits.

When you add a new menu item to a standard pull down menu, you use a function module exit to define the actions that should take place once your menu is activated.

Function module exits also control the data flow between standard programs and screen exit fields. SAP application developers create function module exits by writing calls to customer functions into the source code of standard R/3 programs.

These calls have the following syntax:

CALL CUSTOMER-FUNCTION ‘001’.

Field Exits

Field exits allow you to create your own programming logic for any data element in the Dictionary. You can use this logic to carry out checks, conversions, or business-related processing for any screen field. Example: The data element BBBNR identifies a company’s international location number. You might want to set up your R/3 System so that all international location numbers are larger than 100.

The field exit concept lets you create a special function module that contains this logic.

You assign the special function module to the data element BBBNR. You then assign the module to any programs and screens in which users can add new international location numbers. When you activate your field exit, the system automatically triggers your special routine whenever a user enters a company location number.

In 4.6c, you can use "RSMODPRF" program to create field exits.

An example of a user exits :-

MODULE user_exit_0001 INPUT  
    CASE okcode. 
        WHEN 'BACK OR EXIT'. 
            CASE sy-dynnr. 
                    WHEN '100'. 
                         SET SCREEN 0. 
                         LEAVE SCREEN. 
                    WHEN '200'. 
****************************************************************************** 
**** Note that you can write any code that satisfy your needs.                                                     **** 
**** But in this case, this was wrote as a sample code for reference sake.                                    **** 
**** And you can test it.                                                                                **** 
******************************************************************************  
                         SET SCREEN 100. 
                         LEAVE SCREEN. 
             ENDCASE. 
      ENDCASE. 

Here is difference

2.

Regards,

Santosh

Former Member
0 Kudos

hi,

diff between cmod and smod

CMOD is the Project Management of SAP Enhancements (i.e., SMOD Enhancements). SMOD contains the actual enhancements and CMOD is the grouping of those SMOD enhancements.

User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a function module. The code for the function module is written 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 function module exits is:

EXIT_<program name><3 digit suffix>

The call to a functionmodule exit is implemented as:

CALL CUSTOMER.-FUNCTION ❤️ digit suffix>

For Example:

The program for transaction VA01 Create salesorder is SAPMV45A

1. If you search for CALL CUSTOMER-FUNCTION 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.

or use this ABAP program to search for user exits :-

Finding the user-exits of a SAP transaction code

3. Using Project management of SAP Enhancements

You want to create a project to enhance transaction 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 for 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 create a salesorder. Note that Sold-to-party now automatically is "2155"

Regards,

Naveen