cancel
Showing results for 
Search instead for 
Did you mean: 

Kindly let me the Know Step by Step Procedure of Table Exits. & Field Exits

Former Member
0 Kudos

Dear Members,

Kindly let me the Know Step by Step Procedure of Table Exits. & Field Exits.

it would be better if u explain by Example....

Hoping for your Response...

Thanks & Warm Regards,

Nitin Chandrawanshi

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Nitin,

Please find below the step by step procedure for field exit :-

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

Please reward points if helpful.

Regards.

Srikanta Gope.

srikanta.gope@tcs.com

Former Member
0 Kudos

Hi Srikanta,

Thanks for your Valubale suggestions.

Answers (1)

Answers (1)

former_member239282
Active Participant
0 Kudos

Some examples:

1. Extending Business Content - EXIT_SAPLRSAP_001

data: l_s_icctrcst like icctrcst,

l_s_icctract like icctract,

l_s_icctrsta like icctrsta,

l_tabix like sy-tabix.

case i_isource.

when '0CO_OM_CCA_1'.

loop at c_t_data into l_s_icctrcst.

l_tabix = sy-tabix.

select single * from z0001 where kokrs = l_s_icctrcst-kokrs

and kostl = l_s_icctrcst-kostl.

if sy-subrc = 0.

l_s_icctrcst-zfield1 = z0001-zfield1.

l_s_icctrcst-zfield2 = z0001-zfield2.

modify c_t_data from l_s_icctrcst index l_tabix.

endif.

endloop.

when '0CO_OM_CCA_2'.

...

when '0CO_OM_CCA_3'.

...

when others.

exit.

endcase.

2. User Exit after Data loading

(a) Delete old request

REPORT Z_RSSM_START_SECOND_PROCESS_1 .

TABLES: RSREQDONE, " Request-Data

RSSELDONE, " Selection for current Request

RSICCONT. " Request posted to which InfoCube

DATA: L_T_SELDONE LIKE RSSELDONE OCCURS 0 WITH HEADER LINE.

DATA: L_T_ICUBE LIKE RSICCONT OCCURS 0 WITH HEADER LINE.

DATA: L_LOGSYS LIKE RSSELDONE-LOGSYS.

DATA: L_SOURCE LIKE RSSELDONE-SOURCE.

DATA: L_SELDATE LIKE RSSELDONE-SELDATE.

DATA: L_SELTIME LIKE RSSELDONE-SELTIME.

DATA: BEGIN OF L_T_RNR_DEL OCCURS 0,

ICUBE LIKE RSICCONT-ICUBE,

RNR LIKE RSSELDONE-RNR,

END OF L_T_RNR_DEL.

PARAMETER I_RNR LIKE RSREQDONE-RNR.

***********************

SELECT SINGLE * FROM RSSELDONE WHERE

RNR = I_RNR.

IF SY-SUBRC <> 0. "new rquest does not exist, wrong rnr !!!

EXIT.

ENDIF.

SELECT * FROM RSICCONT INTO TABLE L_T_ICUBE WHERE

RNR = I_RNR.

IF SY-SUBRC <> 0. "New request is not posted to any IC

EXIT. "nothing will be deleted

ENDIF.

L_SOURCE = RSSELDONE-SOURCE.

L_LOGSYS = RSSELDONE-LOGSYS.

L_SELDATE = RSSELDONE-SELDATE.

L_SELTIME = RSSELDONE-SELTIME.

SELECT * FROM RSSELDONE INTO TABLE L_T_SELDONE WHERE

SOURCE = L_SOURCE AND

LOGSYS = L_LOGSYS.

DELETE L_T_SELDONE WHERE

RNR = I_RNR. "new request will be deleted

DELETE L_T_SELDONE WHERE "delete younger requests

SELDATE > L_SELDATE OR

( SELTIME > L_SELTIME AND

SELDATE = L_SELDATE ).

*Sort

SORT L_T_SELDONE BY SELDATE DESCENDING SELTIME DESCENDING.

REFRESH L_T_RNR_DEL.

LOOP AT L_T_SELDONE. " Requests to be deleted

LOOP AT L_T_ICUBE. " Request existing in InfoCubes

SELECT SINGLE * FROM RSICCONT WHERE

ICUBE = L_T_ICUBE-ICUBE AND

RNR = L_T_SELDONE-RNR. "check if posted to IC's

IF SY-SUBRC = 0.

L_T_RNR_DEL-ICUBE = L_T_ICUBE-ICUBE.

L_T_RNR_DEL-RNR = L_T_SELDONE-RNR.

APPEND L_T_RNR_DEL.

ENDIF.

ENDLOOP.

IF NOT L_T_RNR_DEL[] IS INITIAL. " something found for rnr

EXIT.

ENDIF.

ENDLOOP.

LOOP AT L_T_RNR_DEL.

CALL FUNCTION 'RSSM_DELETE_REQUEST'

EXPORTING

REQUEST = L_T_RNR_DEL-RNR

INFOCUBE = L_T_RNR_DEL-ICUBE

EXCEPTIONS

REQUEST_NOT_IN_CUBE = 1

INFOCUBE_NOT_FOUND = 2

REQUEST_ALREADY_AGGREGATED = 3

REQUEST_ALREADY_COMDENSED = 4

OTHERS = 5.

IF SY-SUBRC <> 0.

  • open for error-handling

ENDIF.

ENDLOOP.

      • if it helpful reward point are appreciated