Whereused List of Field exits
Can anyone let me know how a field exit is called in SAP.
Or a Whereused list of a fieldexit Or How to find the entry point of a field exit.
For e.g. if I want to know where the funtion FIELD_EXIT_PRCTR is used, through SE37 whereused list its give 0 entries found possilble called dynamically. So How do I know from where or when its. called.
If you tell to put a break point I tried testing the same but it deosn't go in or I am not able to find the entry point to it.
Please help! Thanks in Advance.
Edited by: sainaini on Jan 17, 2011 1:16 PM
Edited by: sainaini on Jan 17, 2011 1:17 PM
Edited by: Thomas Zloch on Jan 17, 2011 1:24 PM
Hi Sainaini,
according to the documentation, the screen exit mentioned will work for all screens that have input fields for data element PRCTR. This works only for screens generated after the FIELD_EXIT function is active.
Field exits are only taken into account during screen generation if the parameter abap/fieldexit = 'YES' is set in the system profile.
Field exits (obsolete as far as I know) can not be debugged because they are executed by screen processor before PAI, not by ABAP runtime system.
Read documentation for RSMODPRF SAP Report as suggested.
Regards,
Clemens
Similar Messages
-
How to find out the list of field exists for a particular transaction
Hi all,
Can u please help me find out the list of field exits available for a particular Tcode?
Is it similar to User exit or . . . . ?
Thanks,
C.Selvaraj
SAP-QMCreate a program and add this code to find user exit
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 - ', "#EC NOTEXT
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', "#EC NOTEXT
21 sy-vline ,
22 'Description', "#EC NOTEXT
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. "#EC NOTEXT
else.
format color col_negative intensified on.
write:/(95) 'No User Exit exists'. "#EC NOTEXT
endif.
else.
format color col_negative intensified on.
write:/(95) 'Transaction Code Does Not Exist'. "#EC NOTEXT
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.
Rewards if useful........................
Minal -
Field Exit - How do I show list for user to select?
Hi,
I am writing a field exit for Group Asset on TCode AS01. The field exit will check a custom table to give the user an option to select values from a dropdown list.
Any suggestions on how to do this? I understand how to force a value in the field by putting it in OUTPUT, but not sure how to allow the user to select from a list?
Thanks!!!Thanks for the replies!
I'm not sure how to attach a search help to it because it is a field on a standard SAP screen that already has a search help.
This is probably not going to be very clean, but let me give more details as to what I'm trying to accomplish.
There is a field "Group Asset" that is on t-codes AS01, AS01, AS11. There is already a search help provided by SAP. The functional person wants me to create a field-exit to check a custom table based on Company Code, Cost Center, and Asset Class importing PIDs. If there is only one group asset that fits the criteria, then I will just place it in the field. If there are multiple group assets, then the user has to select which one and place it in the field.
I appreciate any suggestions. Thanks!!!
Mark -
Use of field exit for validation of KNTTP in ME51N
Hi All,
I've a client who is still running on SAP 4.6C. There is a requirement to validate the Account Assignment Field KNTTP based on the document type, and if the validation fails, to raise an error message. As there is no standard user exit that I've been able to find for this field, and we don't want to modify standard screens, I've created a field exit against the KNTTP field and generated the FM FIELD_EXIT_KNTTP, and activated it, but it doesn't work.
As this is the first Field Exit I've coded could someone please assist me with understanding the following: in the parameters list is the value of INPUT the value of, in this instance, the KNTTP field and also is it possible to read other screen data within this FM, for example, if the KNTTP value eq 9, can I read the BSART field of the current transaction, and if so, how do I reference it (BSART, EKKO-BSART, MEREQ_TOPLINE-BSART, parameter id BSA, etc)?
Any suggestions on how to debug the process would be greatly appreciated as well.
Any help would be greatly appreciated.
Regards,
SteveDue to lack of assistance, we were unable to pursue this requirement - the users were not happy, but what can you do, huh!
-
How can we find the list of user exits for a transaction
hi all
iam new in user exits please send the basic details
how can we find the list of user exit for a perticular transaction and how can we determine that a particulr user exit is used for a field
regards
jagadishhi,
check the below links for userexits
http://help.sap.com/saphelp_46c/helpdata/en/64/72369adc56d11195100060b03c6b76/frameset.htm
FAQ's
http://http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc
http://www.easymarketplace.de/userexit.php
http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
1. what is the defference between enhancement and user-exits?
http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
Re: difference between user exits & customer exits
Some Questions ! Plz help...
http://searchsap.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid21_gci1190924_tax299358,00.html?bucket=ETA
2. Difference between CMOD and SMOD?
http://www.sap-img.com/abap/what-is-the-difference-between-smod-and-cmod.htm
http://www.sap-img.com/abap.htm
http://sap.ittoolbox.com/groups/technical-functional/sap-r3-dev/diff-between-cmod-and-smod-236095
http://sap.ittoolbox.com/groups/technical-functional/sap-r3-dev/diff-between-cmod-and-smod-236107
check these links..
http://www.sapgenie.com/abap/tips_and_tricks.htm
http://www.sap-img.com/abap/field-exits-smod-cmod-questions-and-answers.htm
http://www.sap-img.com/abap/what-is-user-exits.htm
passing selet-option variable to subrouine...
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.
Written by : SAP Basis, ABAP Programming and Other IMG Stuff
http://www.sap-img.com/*
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
if u want to find the function exit
then check the below code
REPORT ZV_FIND_EXIT 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.
or
1. in se11, goto table MODSAP
View table contents
2. in Type field, enter 'E' (for function exit)
3. For that tcode, u should know the program name.
eg. SAPLLMOB
4. then type SAPLLMOB and execute
or
REPORT z34331_user_exit .
TABLES : tstc, "SAP Transaction Codes
tadir, "Directory of Repository Objects
modsapt, "SAP Enhancements - Short Texts
modact, "Modifications
trdir, "System table TRDIR
tfdir, "Function Module
enlfdir, "Additional Attributes for Function Modules
tstct. "Transaction Code Texts
DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
DATA : field1(30).
DATA : v_devclass LIKE tadir-devclass.
SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP.
PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK a01.
START-OF-SELECTION.
Validate Transaction Code
SELECT SINGLE * FROM tstc
WHERE tcode EQ p_tcode.
Find Repository Objects for transaction code
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 = enlfdir-area.
MOVE : tadir-devclass TO v_devclass.
ENDIF.
ENDIF.
Find SAP Modifactions
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.
Take the user to SMOD for the Exit that was selected.
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.
Regards,
Naveen -
Need a document for field exit....urgent
Can any one please send a document for field exit or have a simple document on how to work on a field exit with screen shots. pls send it ...its urgent
Thanks and regards
Nandha kumar RHi,
A field exit is a type of user exit.
A user exit is a hook where you can inject your own add-on functionality or behavior to SAPs standard business applications without having to modify the original applications.
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.
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 companys 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.
Field exits (SMOD/CMOD) Questions and Answers
1. Field exit was created with CMOD, but is not processed when calling the screen.
- Since the field exit is not processed until PAI, an action must be triggered on the screen (Return, Save, ...).
- Set profile parameter abap/fieldexit to YES and restart the system.
- After activating the function module FIELD_EXIT... and the field exit, leave the transaction on whose screen the field exit is to be executed. The screen is not generated until the transaction is started.
- Do not work on different application servers since there may be some delay before the field exit is activated.
- The profile parameter must be set on all or none of the application servers.
- If the field exit is to only be active on specific screens, check whether you chose the correct program and the correct screen
number (take care with subscreens).
- Using SE51 -> Field list, check that the screen field does have a reference to a data element. In the name of the field exit use the name of the data element and not the field name.
- After transport, field exits are marked as active but will not be processed.
Tip: First try deactivating the field exit once more and then afterwards, activate it again.
2. How is performance affected by setting abap/fieldexit?
- If a screen is generated and the profile parameter is set, a check is run on 2 tables (TDDIR, TDDIRS) to see whether a field exit must be generated for the respective field. In practice, the screen load is not generated until the screen is selected after an
update. The user should not notice any difference because screen generation is very fast.
3. Can you read the contents of other screen fields in the field exit?
- In principle, every field exit can store its value in the global variables of the function group (TOP) and hence make them
available to other field exits. Note here that field exits are always called and not only if an entry is made in the field or if the field is empty. In addition, it is not possible to make any assumptions about the order in which the field exits will be called in the future.
4. How does the field exit behave on step loop fields ?
- After the user has entered data, the field exit is called in PAI as often as there are visible fields in the step loop. The system
variable SY-STEPL is incremented each time. If a new value is assigned to the field, it is displayed in the module between LOOP and ENDLOOP. This module is also called once for each visible step loop line.
5. Can field exits be debugged ?
- No. Field exits must be tested separately in the ABAP/4 Development Workbench. For errors which only occur in the screen environment, it is helpful to write interesting variable to the file system using TRANSFER... . These can then be analysed there.
6. What can you do if the field contents are no longer transported to to ABAP/4.
- Check whether a value is assigned to the field OUTPUT.
7. When is the field exit called if a conversion exit is attached to the
data element ?
- The field exit is called after the conversion exit. This means that the INPUT field receives the data in the same format as the
ABAP/4 program also receives it.
8. Although a global field exit is inactive, a function module is called which does not exist (for example FIELD_EXIT_PROGRAMM_@)
- This is an error in the kernel which no longer occurs as of 3.0C. As a temporary measure, it is useful to assign a program and a screen which do not exist to the field exit and then activate the field exit.
9. Field exit is not visible in CMOD, although created.
- If you want to create a field exit for a data element, a function module is proposed with the name FIELD_EXIT_. This
function module must exist for the field exit to work. If you do not create this function module, but do create one with a suffix,
the data element is not displayed in CMOD.
10. Field exit is not executed although it is active.
- Fields which do not have the 'Input field' attribute usually do not trigger a field exit. The field exit is designed to allow an
extended input check. It is therefore only called for input fields - even if they are not ready for input at runtime of the application by LOOP AT SCREEN.
This rule does not apply, however, if the field is located within a steploop. Here the field will be always activated, even if it is
invisible.
- Field exits can only be executed for fields that are directly related tothe dictionary. If the relation is indirect, i.e. via an ABAP declaration ( LIKE ), no field exit can be executed.
11. Field exits on check buttons do not work
- Field exits are only intended for input fields. As check buttons count as graphical elements, you cannot install field exits on
them.
12. Field exits do not work on selection screens
SAP Field Exits
From 4.6c onwards, Field exits will no more be supported by SAP. They removed the function of field exit but they had given lot of flexibility through userexit.
However, if you still required it, here is how to activate it :-
First called up transaction CMOD.
Then called up transaction PRFB.
or
Activation of the field exits and assignment of the dynpros can also be carried out using program RSMODPRF. For this purpose, the program must be started without parameters (input fields remain blank). If required, new field exits can be created using program RSMODPRF (see the program documentation).
REFER THIS LINK ALSO.
defining screen fields using FIELD-SYMBOL
Thanks,
Shankar -
Hi,
Field exit was created with CMOD, but is not processed when calling the screen.
Thanks,
BijuHi Biju,
Please find below an extract on how to approach the problem
1. The field exit was created with CMOD, but is not processed when the screen is called.
Field exits can be defined only for data elements whose name is shorter than 19 characters. The name of the data element plus the prefix "FIELD_EXIT_" must not exceed the maximum length of a function module name (30).
Since the field exit is not processed until PAI, an action must be triggered on the screen (choose enter, save, and so on).
Set the profile parameter abap/fieldexit = YES and restart the system.
After activating the function module FIELD_EXIT... and the field exit, leave the transaction on whose screen you want to execute the field exit. The relevant screen is only generated when the transaction is called.
Do not work on different application servers since there may be some delay before the field exit is activated.
The profile parameter must be set on all or no application servers.
If the field exit is to only be active on specific screens, check whether you chose the correct program and the correct screen number (take care with subscreens).
Use transaction SE51 to generate the screen on which the exit should be active. It is possible that it was not correctly generated. If you want to be sure that all screens that use the data element are regenerated, you can copy the report rsmodfdg from the correction instructions and start it with transaction SE38. The report uses the affected data element as the input parameter and regenerates all screens that use the data element.
Use transaction SE51 and choose 'Field list' to check that the screen field actually has a reference to a data element. In the name of the field exit, use the name of the data element and not the field name.
After the transport, field exits are marked as active but are not processed. Tip: First try to deactivate the field exit once more and then activate it again.
http://www.saptechies.com/faqs-field-exits-cmod/
Regards
Byju -
Hi to all experts,
I need to assign F4 help to a headertext field for MIGO tcode . I have searched all the exits but couldnt find field exit for it. What are the different options fulfilling this requirement.Please help me outHi,
The following are the enhancement/Business Add ins, Please use the appropriate exit for your requirement
Enhancement/ Business Add-in Description
Enhancement
MB_CF001 Customer Function Exit in the Case of Updating a Mat. Doc.
MBCF0011 Read from RESB and RKPF for print list in MB26
MBCF0010 Customer exit: Create reservation BAPI_RESERVATION_CREATE1
MBCF0009 Filling the storage location field
MBCF0007 Customer function exit: Updating a reservation
MBCF0006 Customer function for WBS element
MBCF0005 Material document item for goods receipt/issue slip
MBCF0002 Customer function exit: Segment text in material doc. item
Business Add-in
MB_DOCUMENT_UPDATE BADI when updating material document: MSEG and MKPF
MB_DOC_BADI_INTERNAL BAdIs During Creation of a Material Document (SAP Internal)
MB_ME_CSGMT_BADI_SAP BAdI: Consignment Processing - Stock Transfer
MB_MIGO_BADI BAdI in MIGO for External Detail Subscreens
MB_MIGO_ITEM_BADI BAdI in MIGO for Changing Item Data
MB_PHYSINV_INTERNAL Connection: Core Inventory and Retail AddOn
MB_QUAN_CHECK_BADI BAdI: Item Data at Time of Quantity Check
MB_RESERVATION_BADI MB21/MB22: Check and Complete Dialog Data
MB_RESERVATION_SCR Screen BAdI for Retrofit DFPS
MB_RESERVATION_UPCHD BAdI for Creation and Changing of Manual Reservations
MB_RES_BAPI_CHANGE BAdI: Execution of Changes to Reservation Fields
MB_RES_BAPI_CREATE1 BAdI: Adoption of Customer's Own Fields as Reserv. Fields
MB_RES_BAPI_DETAIL1 BAdI: Display of Customer's Own Fields in Reservations
MB_STOR_LOC_BADI_GTS BADI to Check and Change Storage Location (GTS Fct. Only)
MB_DOCUMENT_BADI_SAP BADI for Creation and Changing of a Material Document
ARC_MM_EBAN_CHECK BAdI: Enhancement of Archivability Check (MM_EBAN)
ARC_MM_EBAN_PRECHECK BAdI: Enhancement of Archivability Check (MM_EBAN)
ARC_MM_EBAN_WRITE BAdI: Enhancement of Scope of Archiving (MM_EBAN)
ARC_MM_EINA_CHECK BAdI: Enhancement of Archivability Check (MM_EINA)
ARC_MM_EINA_WRITE BAdI: Enhancement of Scope of Archiving (MM_EINA)
ARC_MM_INVBEL_CHECK BAdI: Enhancement of Archivability Check (MM_INVBEL)
ARC_MM_INVBEL_WRITE BAdI: Enhancement of Scope of Archiving (MM_INVBEL)
ARC_MM_MATBEL_CHECK Prüfung ADD-ON-spezifischer Kriterien für MM_MATBEL
ARC_MM_MATBEL_WRITE Check Add-On-Specific Data for MM_MATBEL
MB_CHECK_LINE_BADI BAdI: Check Line Before Copying to the Blocking Tables
MB_CIN_LMBMBU04 posting of gr
MB_CIN_MM07MFB7 BAdI for India Version exit in include MM07MFB7
MB_CIN_MM07MFB7_QTY Proposal of quantity from Excise invoice in GR
MB_DOCUMENT_BADI BAdIs During Creation of a Material Document -
hi friends,
i am new to field exit.i want to write field exit for ebeln.
when user tries to change po number error message should get display.
what logic i have to write in function module.
can any any one help me plz .
sonuin se38 execute report RSMOPRF ...
there you give element name of EBELN field...
and execute..
you'l get field exit created for EBELN...
in this field exit do your coding....
activate the fields exit...
in se38 again execute RSMODPRF.. and w/o giving any element name... execute...
you'l get list of all the field exits ...
there select exit for EBELN... and activate it...
Regards,
Sharayu -
How could I work with them?
Yes you can.
SE 38 --> Prog RSMODPRF
http://www.sapdevelopment.co.uk/enhance/fexits.htm
But Have a look at OSS note 29377 as well:
Symptom
Problems and questions concerning field exits
Other terms
FAQ, Q+A, SMOD/CMOD, field exits
Reason and Prerequisites
Note
Field exits are frozen on the 4.6C maintenance level and are not further developed. This means that the existing functionality is kept with all restrictions (see also the last item below). Existing exits can be further used and are called at runtime as usual.
Existing exits can be maintained using program RSMODPRF (run the
program using transaction SE38). Activation of the field exits and
assignment of the dynpros can also be carried out using program
RSMODPRF. For this purpose, the program must be started without
parameters (input fields remain blank).
If required, new field exits can be created using program
RSMODPRF (see the program documentation).
Solution
1. Field exit was created with CMOD, but is not processed when calling the screen.
Since the field exit is not processed until PAI, an action must be triggered on the screen (Return, Save, ...).
Set profile parameter abap/fieldexit to YES and restart the system.
After activating the function module FIELD_EXIT... and the field exit, leave the transaction on whose screen the field exit is to be executed. The screen is not generated until the transaction is started.
Do not work on different application servers since there may be some delay before the field exit is activated.
The profile parameter must be set on all or none of the application servers.
If the field exit is to only be active on specific screens, check whether you chose the correct program and the correct screen number (take care with subscreens).
Generate the screen on which the exit should be active using SE51. It is possible that it was not correctly generated. If you want to be sure that all screens that use the data element are regenerated, you can transfer Report rsmodfdg from the correction instructions and start it with SE38. The Report uses the affected data element as the input parameter and regenerates all screens that use the data element.
Using SE51 -> Field list, check that the screen field does have a reference to a data element. In the name of the field exit, use the name of the data element and not the field name.
After transport, field exits are marked as active but will not be processed. Tip: First try deactivating the field exit once more and then activate it again.
2. How is performance affected by setting abap/fieldexit?
If a screen is generated and the profile parameter is set, a check is run on 2 tables (TDDIR, TDDIRS) to see whether a field exit must be generated for the respective field. In practice, the screen load is not generated until the screen is selected after an update. The user should not notice any difference because screen generation is very fast.
3. Can you read the contents of other screen fields in the field exit?
In principle, every field exit can store its value in the global variables of the function group (TOP) and hence make them available to other field exits. Note here that field exits are always called, not only if an entry is made in the field or if the field is empty. In addition, it is not possible to make any assumptions about the order in which the field exits will be called in the future.
4. How does the field exit behave on step loop fields ?
After the user has entered data, the field exit is called in PAI as often as there are visible fields in the step loop. The system variable SY-STEPL is incremented each time. If a new value is assigned to the field, it is displayed in the module between LOOP and ENDLOOP. This module is also called once for each visible step loop line.
5. Can field exits be debugged ?
No. Field exits must be tested separately in the ABAP/4 Development Workbench. For errors which only occur in the screen environment, it is helpful to write interesting variables to the file system using TRANSFER... . These can then be analysed there.
6. What can you do if the field contents are no longer transported to ABAP/4?
Check whether a value is assigned to the field OUTPUT.
7. When is the field exit called if a conversion exit is attached to the data element?
The field exit is called after the conversion exit. This means that the INPUT field receives the data in the same format as the ABAP/4 program receives it.
8. Although a global field exit is inactive, a function module is called which does not exist (for example FIELD_EXIT_PROGRAMM_@). This can lead to an ABAP dump error when function module FIELD_EXIT_<data element name> is called.
This is an error in the kernel which no longer occurs as of Release 3.0C. As a temporary measure, it is useful to assign a program and a screen which do not exist to the field exit and then activate the field exit.
Due to performance reasons, the active/inactive indicator is stored in the screenload. This can cause inconsistencies between Source and Load. Generate the affected screen with se51. If you want to be sure that all screens that use the data element are regenerated, you can transfer Report rsmodfdg from the correction instructions and start it with se38. The Report uses the affected data element as the input parameter and regenerates all screens that use the data element.
9. Field exit is not visible in CMOD, although created.
If you want to create a field exit for a data element, a function module is proposed with the name FIELD_EXIT_<data_element>. This function module must exist for the field exit to work. If you do not create this function module, but do create one with a suffix, the data element is not displayed in CMOD.
10. Field exit is not executed although it is active.
Fields which do not have the 'Input field' attribute usually do not trigger a field exit. The field exit is designed to allow an extended input check. It is therefore only called for input fields - even if they are not ready for input at runtime of the application by LOOP AT SCREEN.
This rule does not apply, however, if the field is located within a steploop. Here the field will be always activated, even if it is invisible.
Field exits can only be executed for fields that are directly related to the dictionary. If the relation is indirect, i.e. via an ABAP declaration (<fieldname> LIKE <dictionary element>), no field exit can be executed.
11. Field exits do not work on selection screens.
Results from the previous item since ABAP-internal fields and never the original Dictionary fields are used on selection screens.
12. Field exists do not work on check buttons.
Field exits are only intended for input fields. As check buttons count as graphical elements, you cannot install field exits on them.
13. How can all screens that use a data element be generated?
If you want to be sure that all screens that use a specific data element are regenerated, you can transfer Report rsmodfdg from the correction instructions into a customer report (e.g. zsmodfdg). The Report regenerates all screens. In this way, you can ensure that active field exits refer to screens and that inactive exits cannot be called on any screen. The Report uses the affected data element as the input parameter. The affected data element is in the name of the exit: FIELD_EXIT_<data element name>.
14. Restriction of usage
Field exit technology was developed for input fields on dynpros and cannot be used for other/new dynpro elements. This means that this technology does not offer support for the new ScreenPainter elements such as graphical elements (e.g. checkbuttons, radiobuttons, dropdown listboxes), controls (except for table controls which are supported like a step loop), or selection screens.
Erwan -
Hi,
In the new system ECC 5.0, the Field Exits implemented in the older system customer are discontinued.
Does any one know if there is a migration strategy for the Field Exits? Or how these should be re-implemented in the new systemHi Rohit,
Ypu may need to start looking into <b>BADI</b> instead.
I think this is new SAP direction. Having said that field list still work for ECC 5.0.
Hope this will help.
Regards,
Ferry Lianto -
TabStrip and Field Exit......
Hi Friends,
I need the complete step by step working process of <i><b>"Tabstrip and FieldStrip"</b></i>.Also any sample code will be highly appreciated.
Points will be rewarded for Requirement.
Thanx ,
Mandeep.Hi,
<b>TABSTRIP</b>
Tabstrip is used to display multiple subscreens on the same area of the screen in designing transactions
see the links related to Module pool, in which you find the Tabstrip
Check the below link:
http://wiki.ittoolbox.com/index.php/FAQ:What_is_module_pool_program_in_abap%3F
http://help.sap.com/saphelp_46c/helpdata/en/35/26b1aaafab52b9e10000009b38f974/content.htm
http://sap.mis.cmich.edu/sap-abap/abap09/sld011.htm
http://sap.mis.cmich.edu/sap-abap/abap09/index.htm
http://www.geocities.com/ZSAPcHAT
http://www.allsaplinks.com/files/using_table_in_screen.pdf
http://help.sap.com/saphelp_webas630/helpdata/en/9f/db9cdc35c111d1829f0000e829fbfe/content.htm
http://www.sapdevelopment.co.uk/dialog/dialoghome.htm
http://www.sap-img.com/
http://help.sap.com/saphelp_46c/helpdata/en/08/bef2dadb5311d1ad10080009b0fb56/content.htm
http://www.sapgenie.com/links/abap.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c9/5472fc787f11d194c90000e8353423/frameset.htm
You can also check the transaction ABAPDOCU which gives you lot of sample programs.
Also you can see the below examples...
Go to se38 and give demodynpro and press F4.
YOu will get a list of demo module pool programs.
One more T-Code is ABAPDOCU.
YOu can find more examples there.
See the prgrams:
DEMO_DYNPRO_TABLE_CONTROL_1 Table Control with LOOP Statement
DEMO_DYNPRO_TABLE_CONTROL_2 Table Control with LOOP AT ITAB
http://www.geocities.com/ZSAPcHAT
http://www.allsaplinks.com/files/using_table_in_screen.pdf
<b>FIELD-EXIT</b>
http://www.erpgenie.com/abap/fieldexits.htm
http://www.sap-basis-abap.com/sapab014.htm
V4.6c onwards no longer supports field exits!!! In any case here's how to activate them:
Activation of the field exits and assignment of the dynpros is carried out using program RSMODPRF. For this purpose, the program must be started without parameters (input fields remain blank). If required, new field exits can be created using program RSMODPRF (see below for documentation).
Field Exits for Data Elements
Description
Maintenance transaction for creating and activating field exits
As part of the extension concept, SAP allows you to install a field exit for each screen field. Similar to the conversion exit, the system branches at the field exit at DCI (DATA COMMUNICATIONS INPUT) to a function module, if the field is an input field and a function code was triggered. The function module must adhere to the following naming convention:
Prefix: FIELD_EXIT_
Infix: <Data element name>
Suffix: _0 to _9 (optional), _A to _Z
The interface is automatically generated during the creation of the function module, and has 2 parameters:
Import parameter: INPUT
Export parameter: OUTPUT
After a function code has been triggered the contents of the field are made available to the FB via the "INPUT" import parameter. You can edit this and, when changed, make it available to the ABAP/4 processor in "OUTPUT". The input field contents are usually passed on: you can simply write OUTPUT = INPUT.
If, e.g., you have activated the field exit for the data element 'PROGRAM', then the fields of all the screens, which refer to the data element 'PROGRAM', branch to the function module FIELD_EXIT_PROGRAM. This includes the field 'Program' of the initial screen SAPMS38M0100 in transaction SE38, for example.
If you do not want the function module to be accessed from all screens, assign particular screens to the data element PROGRAM. By allocating an exit number, it is also possible to branch to other function modules with the corresponding suffix _0 ... _Z.
Example: You have assigned screen SAPMS38M0100 and exit number 5 to data element 'PROGRAM'. The corresponding field on SAPMS38M0100 branches to FIELD_EXIT_PROGRAMM_5.
As soon as you activate an exit, the corresponding screens are invalidated.
Note: Field exits are only taken into account during screen generation if the parameter abap/fieldexit = 'YES' is set in the system profile.
Requirement
Set the profile parameter abap/fieldexit = 'YES' before system start.
Limitations
The following ABAP statements are not allowed in the function modules of field exits:
BREAK-POINT,
CALL SCREEN, CALL DIALOG, CALL TRANSACTION, SUBMIT,
COMMIT WORK, ROLLBACK WORK,
COMMUNICATION RECEIVE,
EXIT FROM STEP-LOOP,
MESSAGE I, MESSAGE W.
Note:
Field exits cannot be edited with the debugger.
You should not use any external Performs in field exits. The ABAP processor shares the table work areas of externally called programs with those of the first caller. This could lead to errors at field exits that can hardly be analyzed, as field exits are sometimes slipped into the flow of the program at unforeseen events.
Questions and answers on field exits
1. A field exit was created with the CMOD and activated, but it does not get executed when the screen is called.
Since the field exit is not executed until DCI, some action must occur in the screen (e.g. press Return, saving....).
Set the abap/fieldexit profile parameter to YES and start the system again.
After the FIELD_EXIT... function module has been activated and the field exit has been activated, the transaction in whose screen the field exit is to be executed must be terminated. The screen is not generated until it is called.
Do not work on different application servers, otherwise there may be a delay before the field exit becomes active.
The profile parameter must be set either on all application servers or on none.
If the field exit is to be active in certain screens only, then you should check whether you have selected the correct program and the correct screen number (Careful with SUBSCREENS Do not rely on the F1 information for the field!
2. How does setting abap/fieldexit affect the performance?
If a screen is generated and the profile parameter is set, then the system checks in 2 tables (TDDIR, TDDIRS) to see whether a field exit has to be generated for the field. In practice the screen load after a Put is not generated until the screen is called. The user will not experience a noticeable delay, since screen generation is extremely fast.
3. Can the contents of other screen fields be read in a field exit?
In principle all fields can be copied to global variables in the TOP or the function group. However, since the order in which the field exits are called is not guaranteed, this possibility should not be used.
4. How does the field exit work in step-loop fields?
After data input to DCI the field exit will be called as many times as fields are visible on the step-loop. The SY-STEPL system variable is incremented each time. If a new value is assigned to be field, then it will be visible in the module between LOOP. ENDLOOP. This module will also be called as many times as there are visible step-loop lines.
5. Can field exits be debugged?
No. Field exits have to be tested in isolation in the development environment. To analyze problems that occur only in the screen environment, the relevant variables can be written to the file system using TRANSFER... and can be analyzed there.
6. What should one do if the field contents are not getting transported to ABAP/4?
Check whether you have assigned a value to the OUTPUT field.
7. When does the field exit get called in the case that there is a conversion exit attached to the data element?
The field exit will be called after the conversion exit. This means that the INPUT field contains the data in the same form as that in which the ABAP/4 program also gets them
Regards,
Priyanka. -
How to find T-codes for a list of User exits
Hi All,
We have been provided with the list of user exits found in the system. I need to find the T-codes where these user-exits have been used.
Can anyone provide pointers for this?
Thanks and Regards,
Sridevi Sridharuse logic of the program....
*& Report ZCG_USER_EXIT_FIND
*& Utility program to find out the User Exits within a transaction
REPORT ZCG_USER_EXIT_FIND.
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. -
Hi experts,
I am trying to write a field exit for Quantity field (data element: co_menge) in the backflush compnent list of MFBF transaction. What exactly I want to do is that whenever the material entered is of the type FERT then the user must enter a negative quantity, if he fails to do so, he should either get a message or it should automatically be converted to a negative quantity.
I have used RSMODPRF program to create the field exit and the function module contains the following code (just an example):
FUNCTION FIELD_EXIT_CO_MENGE_A.
""Local Interface:
*" IMPORTING
*" REFERENCE(INPUT)
*" EXPORTING
*" REFERENCE(OUTPUT)
if input > 0.
message 'fieldexit:' type 'S'.
output = input * -1.
endif.
ENDFUNCTION.
I need this field exit to be activated only for this screen, and not everywhere this data element is used.
I have already set the SAP System profile abap/fieldexit parameter to YES.
Kindly assist.Hi,
Just execute RSMODPRF program without any entry in selection -screen,
then select ur dataelement and then press change and there u can define the program screen no in which u want to do this change to be activated.
<b>Assign Program/Screen.</b>
After giving the program name and screen name.. activae it..
Then it will work for only the program u gave in the dataelement assigning.....
not for all the programs it uses...
Cheers,
Simha. -
How do I de-activate a field exit?
All,
A field exit has been implemented for the material field at TCODE MM01/02/03 which does not allow me to access to these 3 TCODE. I know field exit can't be debugged. Is there anyway for me to exclude/deactivate this field exit? THanks in advance.Hello,
First Go tcode in CMOD in the command window enter tcode =PRFB , this would give list of all the Field Exit development in the system, click on any of the checkboxes go to menu FieldExit in that select Deactivate
regards
Suresh Nair
Maybe you are looking for
-
Win 7 boot from VHD "License Error: Booting from VHD is not supported on this system"
I am trying to set up my TP 500 model 2242-CTO to boot from a virtual hard drive, per the instructions at http://blogs.technet.com/keithcombs/archive/2009/05/22/dual-boot-from-vhd-using-windows-7-and-window... I get all the way thru the Win 7 setup
-
JLabel ImageIcon not opaque.
Hi I am having a little problem with my program that I am trying to develop. I have created a JFrame and instead of having the background the usual grey I have used an image. I then wanted to create some nice big buttons with nice smooth curved edges
-
Hi Friends; I just want to share my new post entery on my blog which is related wiht OracleAs10g step by step guide(with screen shoots). I belive it will be helpful for users who can make this upgrade process... Document prepared for R12.0.6 on AIX O
-
Quotes and apostrophes show as question marks when published to my server
imac intel core 2 duo 24" Mac OS X (10.4.9)
-
Supporting issues and resolves
Hello All, Could any one please send me a sample supporting issues and resolves for fico. if any of you have issues for the fico please send it across to my mail id [email protected] any help will be greatly appriciated and in the form of reward poin