How to implement F4IF_INT_TABLE_VALUE_REQUEST in search help User Exit?
Hi,
I need to enhanse search help and add F4 functionality to display list of company codes when cursor is in PBUKR field. I put F4IF_INT_TABLE_VALUE_REQUEST
into the user exit but nothing works.
I get error that PROCESS is not defined. If I remove that line there is no error but nothing works.
Can someone tell me what is wrong in the code below.
Thank you.
FUNCTION z_hr_shlp_wbs_element.
""Local interface:
*" TABLES
*" SHLP_TAB TYPE SHLP_DESCR_TAB_T
*" RECORD_TAB STRUCTURE SEAHLPRES
*" CHANGING
*" VALUE(SHLP) TYPE SHLP_DESCR_T
*" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL
TABLES: prps.
DATA: it_prps LIKE prps OCCURS 0 WITH HEADER LINE.
DATA: status_tab LIKE jstat OCCURS 0 WITH HEADER LINE.
DATA: l_posid LIKE prps-posid.
DATA: l_subrc LIKE sy-subrc.
DATA: l_pbukr LIKE prps-pbukr, " Added by vr
value TYPE DDSHIFACE-VALUE.
EXIT immediately, if you do not want to handle this step
IF callcontrol-step <> 'SELONE' AND
callcontrol-step <> 'SELECT' AND
" AND SO ON
callcontrol-step <> 'DISP'.
EXIT.
ENDIF.
------------------------------------------------------ added by vr
PROCESS ON VALUE-REQUEST.
FIELD PRPS-PBUKR MODULE PBUKR.
DATA: BEGIN OF VALUE_TAB OCCURS 0,
LPBUKR LIKE PRPS-PBUKR,
LPOSID LIKE PRPS-POSID,
END OF VALUE_TAB.
DATA: BEGIN OF RETURN_TAB OCCURS 0.
INCLUDE STRUCTURE DDSHRETVAL.
DATA END OF RETURN_TAB.
SELECT PBUKR POSID FROM PRPS UP TO 20 ROWS
INTO TABLE VALUE_TAB WHERE SLWID = 'QLT UDF'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'PBUKR'
WINDOW_TITLE = 'Statusselektion'
VALUE_ORG = 'S' "hierdurch kann die Struktur genommen werden
TABLES
VALUE_TAB = VALUE_TAB
RETURN_TAB = RETURN_TAB
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
end of additions
STEP SELONE (Select one of the elementary searchhelps)
This step is only called for collective searchhelps. It may be used
to reduce the amount of elementary searchhelps given in SHLP_TAB.
The compound searchhelp is given in SHLP.
If you do not change CALLCONTROL-STEP, the next step is the
dialog, to select one of the elementary searchhelps.
If you want to skip this dialog, you have to return the selected
elementary searchhelp in SHLP and to change CALLCONTROL-STEP to
either to 'PRESEL' or to 'SELECT'.
IF callcontrol-step = 'SELONE'.
PERFORM SELONE .........
EXIT.
ENDIF.
STEP PRESEL (Enter selection conditions)
This step allows you, to influence the selection conditions either
before they are displayed or in order to skip the dialog completely.
If you want to skip the dialog, you should change CALLCONTROL-STEP
to 'SELECT'.
Normaly only SHLP-SELOPT should be changed in this step.
IF callcontrol-step = 'PRESEL'.
PERFORM PRESEL ..........
EXIT.
ENDIF.
STEP SELECT (Select values)
This step may be used to overtake the data selection completely.
To skip the standard seletion, you should return 'DISP' as following
step in CALLCONTROL-STEP.
Normally RECORD_TAB should be filled after this step.
Standard function module F4UT_RESULTS_MAP may be very helpfull in this
step.
IF callcontrol-step = 'SELECT'.
Maximum records are set to 0 because the counter for Max records keeps
running, even if you filter out certain records. This is a similar
problem as described in OSS Note 148525.
Feb 3, 2004 LS: devk907353
(maxrecords = 0 defaults to maxrecords 500)
As of release 4.7, it appears that maxrecords is
being considered on the read of the view, rather
than prior to presenting the selection list.
When only 500 records are passed into this exit,
the subsequent evaluation yields very few records
in the selection list. By setting maxrecords to
8000, the entire contents of the view are passed
to this user exit, and therefor the search help
yields a reasonable selection list to the user
(as was the case in release 4.6b).
callcontrol-maxrecords = 0. " devk907353
callcontrol-maxrecords = 8000. " devk907353
PERFORM STEP_SELECT TABLES RECORD_TAB SHLP_TAB
CHANGING SHLP CALLCONTROL RC.
IF RC = 0.
CALLCONTROL-STEP = 'DISP'.
ELSE.
CALLCONTROL-STEP = 'EXIT'.
ENDIF.
EXIT. "Don't process STEP DISP additionally in this call.
ENDIF.
Added by vr, Nov. 2007 ---------------------------
CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'
EXPORTING
PARAMETER = 'PBUKR' " Reference to search help parameter
IMPORTING
VALUE = value
TABLES
SHLP_TAB = shlp_tab
RECORD_TAB = record_tab
CHANGING
SHLP = shlp
CALLCONTROL = callcontrol.
l_pbukr = value.
End of additions by vr ---------------------------
STEP DISP (Display values)
This step is called, before the selected data is displayed.
You can e.g. modify or reduce the data in RECORD_TAB
according to the users authority.
If you want to get the standard display dialog afterwards, you
should not change CALLCONTROL-STEP.
If you want to overtake the dialog on you own, you must return
the following values in CALLCONTROL-STEP:
- "RETURN" if one line was selected. The selected line must be
the only record left in RECORD_TAB. The corresponding fields of
this line are entered into the screen.
- "EXIT" if the values request should be aborted
- "PRESEL" if you want to return to the selection dialog
Standard function modules F4UT_PARAMETER_VALUE_GET and
F4UT_PARAMETER_RESULTS_PUT may be very helpfull in this step.
IF callcontrol-step = 'DISP'.
DEVK909420 Begin
SELECT * FROM prps INTO TABLE it_prps
WHERE belkz = 'X'.
Changed by vr, Nov. 2007
IF l_pbukr <> ''.
SELECT * FROM prps INTO TABLE it_prps
WHERE belkz = 'X'
AND fkstl <> ''
AND pbukr = l_pbukr.
ELSE.
SELECT * FROM prps INTO TABLE it_prps
WHERE belkz = 'X'
AND fkstl <> ''.
ENDIF.
End of changes
DEVK909420 End
SORT it_prps BY posid.
LOOP AT record_tab.
l_posid = record_tab+96(24).
READ TABLE it_prps WITH KEY posid = l_posid.
IF sy-subrc = 0.
CALL FUNCTION 'STATUS_READ'
EXPORTING
objnr = it_prps-objnr
only_active = 'X'
TABLES
status = status_tab.
DEVK909329 Begin
read table status_tab with key inact = ''
stat = 'E0001'.
if sy-subrc is initial.
read table status_tab with key inact = '' "DEVK909345
stat = 'I0002'. "DEVK909345
endif.
DEVK909329 End
ENDIF.
IF sy-subrc NE 0.
DELETE record_tab.
ELSE.
IF record_tab+114(1) EQ '.' AND
record_tab+115(1) EQ '9'.
DELETE record_tab.
ELSE.
DEVK909420 Begin
IF record_tab+102(1) EQ '9'.
DELETE record_tab.
ELSEIF record_tab+104(1) EQ '9'.
DELETE record_tab.
ENDIF.
DEVK909420 End
ENDIF.
ENDIF.
ENDLOOP.
EXIT.
ENDIF.
ENDFUNCTION.
Hi Vitaly,
Process on Value Request and search help exit is entirely two idea to display the f4 values.please remove the PROCESS ON VALUE REQUEST from the function module.write the required select statements after CHECK callcontrol-step EQ 'SELECT' . and pass the value to the function module
CALL FUNCTION 'F4UT_RESULTS_MAP'
TABLES
shlp_tab = shlp_tab
record_tab = record_tab
source_tab = l_record
CHANGING
shlp = shlp
callcontrol = callcontrol
EXCEPTIONS
illegal_structure = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF ( sy-subrc = 0 AND l_record IS INITIAL ).
MESSAGE 'No values found' TYPE 'S'.
ENDIF.
callcontrol-step = 'DISP'.
Find the documentaion for this function module for further help
message edited by
shibu
Similar Messages
-
Need selection screen values in Search help user exit in same report
Hi Experts,
I am using Logical Data Base PNP.
Created a custom search help to validate the records for IT000 based on the selection screen dates.
Enter the DATEs for Data Selection Period and Person selection period in the selection screen.
When I for search help for PERNR field in the same report, I need the selectin screen DATE values to be in user-exit of search help.
This will help me in validating the records for specific employees within the date range of given DATE in selectin period.
As of now it's picking the employees based on the DATE selection of selection screen,
Regards,
PrasadHi,
Go Ahead as mentioned by Satyesh T - (Option two).
Reading Select Options from DYNP_VALUES_READ
reffer the above link for getting more clarity for using 'DYNP_VALUES_READ'
Regards.
Arun -
Search Help User Exit (if "one" entry in hit list, skip hit list and export)
Hi everyone,
I hope you can help me. I spent many hours on this one but I just could not find a solution (by myself and by searching google and searching the SCN).
Problem like thread subject.
I have the requirement to create a search help using search help exit. Done so far. My search help works fine. There´s a Sel Opt and I get the hit list with several entries. "But" I have one problem. If there is only one entry I have to skip the hit list and just export the value straight to the caller.
I just don´t get it to work. I used the function module F4UT_PARAMETER_RESULTS_PUT but there was no value in shlp-interface-value. Record Tab was written, but value is not exported.
Maybe you got some hints for me?`
Best regards
DominikHi Raymond,
I passed as followed:
***CALL FUNCTION 'F4UT_PARAMETER_RESULTS_PUT'
*** EXPORTING
*** PARAMETER = 'DOC_ID'
*** VALUE = ls_disp_data-doc_id
*** fieldname = 'DOC_ID'
*** TABLES
*** SHLP_TAB = SHLP_TAB
*** RECORD_TAB = RECORD_TAB
*** SOURCE_TAB = lt_disp_data
*** CHANGING
*** SHLP = SHLP
*** CALLCONTROL = CALLCONTROL
*** EXCEPTIONS
*** PARAMETER_UNKNOWN = 1
*** OTHERS = 2.
LT_DISP_DATA is filled with one entry only. DOC_ID is the name of the field I want the value to be set.
Update: It´s fixed. I reset the whole thing. I did set callcontrol-step = 'RETURN' after function call, "but" at the end of the coding there was a leftover from previous tries (an empty if callcontrol-step = 'RETURN' -shell). By setting this condition explicitly the "standard flow" was interrupted.
So, in short: I had to delete the empty if-condition for callcontrol-step = RETURN and then it worked.
Thank you all for your feedback, hints and suggestions!
Best regards,
Dominik -
How to make custom append search help tab default for all users?
I've implemented my own search help append and I need to make the F4 search help to display my tab as default for all users. I know that search help stores the last tab used by the user in memory and when user uses the search help next time the last used tab is displayed but I have to make the system display the tab od my search help append always as default tab. Any idea how to do it?
Message was edited by:
Marcin Milczynskihi
<b>Enhancement using Append structures</b>
Append structures allow you to attach fields to a table without actually having to modify the table itself. You can use the fields in append structures in ABAP programs just as you would any other field in the table.
Click on the append structure tab and opt to create new
structure.
Append structures allow you to enhance tables by adding fields to them that are not part of the standard. With append structures; customers can add their own fields to any table or structure they want.
Append structures are created for use with a specific table. However, a table can have multiple append structures assigned to it
Customers can add their own fields to any table or structure they want.
The customer creates append structures in the customer namespace. The append structure is thus protected against overwriting during an upgrade. The fields in the append structure should also reside in the customer namespace, that is the field names should begin with ZZ or YY. This prevents name conflicts with fields inserted in the table by SAP -
How to implement Master-Detail Search in TopLink without using DataControl
Hi,
I am using TopLink and EJB in our requirement. But we are not creating any data controls. Without data controls how to implement master detail search using TopLink and EJB. I did search for a single table. It is working fine. The way i implented is as follows.
1) Taking search parameter from UI and passing it to A delegator class's method.
2) Delegator class's method calls the EJB's NamedQuery which i already created using expression builder.
3) EJB executes the NamedQuery with the parameter we are passing. And it returns the results back to UI.
But as i am new to TopLink, can anyone tell me the procedure to implement Master - Detail search. Here we need to search based on Master table's column.
Waiting for the replies regarding this.
Thanks & Regards,
Suresh KethireddyHi,
I did it successfully. Following is the code.
Session session = getSessionFactory().acquireSession();
UnitOfWork uow = session.acquireUnitOfWork();
ReadAllQuery raq = new ReadAllQuery();
Dept d = new Dept();
d.setLoc(loc);
raq.setExampleObject(d);
List<Dept> res=(List<Dept>)uow.executeQuery(raq);
for(int i=0; i<res.size();i++){
System.out.println("Dept DeptNo ---"+res.get(i).getDeptno());
System.out.println("Dept DeptName ---"+res.get(i).getDname());
System.out.println("Dept Location ---"+res.get(i).getLoc());
List<Emp> eRes=res.get(i).getEmpCollection();
for(int j=0; j<eRes.size();j++){
System.out.println(" Emp No ---"+eRes.get(j).getEmpno());
System.out.println(" Emp Name ---"+eRes.get(j).getEname());
System.out.println("Emp HireDate ---"+eRes.get(j).getHiredate());
System.out.println(" Emp Job ---"+eRes.get(j).getJob());
System.out.println(" Emp Mgr ---"+eRes.get(j).getMgr());
System.out.println(" Emp Sal ---"+eRes.get(j).getSal());
But now my question is, i want to search by providing Dept param as well Emp(Which is child table) param also. Is it possible?
I tried in 2 ways like this.
1) Emp emp = new Emp();
emp.setEname(eName);
dept.addEmp(emp);
raq.setExampleObject(dept);
2) Emp e = new Emp();
e.setEname("ADAMS");
List<Emp> list = new ArrayList();
list.add(e);
d.setEmpCollection(list);
raq.setExampleObject(d);
But in both cases i failed to search based on the values i am passing to Emp.
Is there any other way to achieve my requirement?
Any help on this is great.
Thanks & Regards,
Suresh K -
Web dynpro for abap how to create a customize search help in alv column
hi:
Web dynpro for abap how to create a customize search help in alv column and put search help value into alv column?
Are there specific examples ?
thanks!!HI:
I want to created a freely programed help which include date&time,and put help value to alv column.
I have created a freely programed help in web dynpro for abpa application,I refer:
**************** - WebDynpro for ABAP
but have a problem!
If you focus on the the input field in the first row, you get the value help
However if I go to the second row and focus on the same input field in this column, I don't get the value help:
What is a good way to solve similar problems?
thanks -
How to implement this? please help
In my java class, I have a string array called strarray which hold serveral elements, some of the elements have the same value , for example, the first element is "swimming", the forth element is also swimming. I use a for loop to get each element and give it to arrayHolder which is also a array with the same size as strarray. Now, what I want is: I defined a Vector called element I want this vector to filter out the element from arrayHolder, get the name of non-duplicated name from the arrayHolder, the result should be inside the element vector (swimming,walking,running,dancing), no duplicated name. My code is like follows:
import java.util.*;
import java.io.*;
public class arrayTest{
public static void main(String arg[]){
String[] strarray={"swimming","running","walking","swimming","dancing","running"};
String[] arrayHolder=new String[strarray.size];
Vector element=new Vector();
for(int i=0;i<strarray.length();i++){
arrayHolder[ i ]=strarray[ i ];
/* What should I do next to get the non-duplicated element from arrayHolder and
* add them into the element vector????
I did not finnish it, since I am a little bit confused, how to implement? Need some help. thanks.
Message was edited by:
MellonNot sure if I see the use of strArray & arrayHolder (I've not looked at your code - you might use code tags next time (check the "code" button above the message textarea), but may I suggest using a Map of some sort instead of a Vector? It will prevent duplicates for you.
Good Luck
lee -
How to copy a standard search help to another field
Hi All,
I have a BSP screen in that for one input field i need to copy the standard search help for the Business Partner. Could any one guide me how to copy the standard search help for the business partner into the input field in the BSP screen.
Thanks In advance for the help...
Thanks,
SAP SAPHi,
the BP search is its own web client UI component. For the integration you could check any standard transaction UI component like the BT115H_SLSO, as those contain several partner fields.
Best Regards,
Michael -
How to find an existing search help?
Hi Friends,
How to find an existing search help for some certain fields? for example search help "H_TVKO" is for "Help view for Sales Organizations"[for the field VKORG], and search help "MAT1" is for "Find Material Number"[for the field MATNR]...... but how to find these search helps for a certain field?
Thanks a lot!!Hello Qiwei,
You can find the search help using their table and fields name.
simply you have to point the cursor on same field for which you want to see search help in SE11.and then in same window search help tab available click on this..
It will show all search help which is having same field.
Have a Nice Day.
Regards,
Sujeet
Edited by: Sujeet on Jan 14, 2009 10:41 AM -
How to remove additional of search help?
In complex standard of search help S_MAT1 has added the additional of search search help ZTEST_SEARCH, now I wish to remove the additional of search help ZTEST_SEARCH, but at removal attempt the error stands out: "Because of use in objects of the dictionary it is impossible to spend removal".
We look magazine of use for additional of search help ZTEST_SEARCH - shows use only in standard of search help S_MAT1. And how to be, how to remove additional of search help?hi,
try to do the where used list of ZTEST_SEARCH for all the objects, programs, function moduels, exits, screens etc etc....any of the object may be using your search help.......
hope this helps,
thanks,
tanmaya -
How can we identify what are all user exits are there for sales orders,deli
Dear All,
How can we identify what are all user exits are there for sales orders,deliverys and invoices
thanks
nitchel vHi Nitchel
There are many ways to find out the user exits..
For example for VA01.
Goto Transaction ie VA01:
goto System-- Status
doubleclick on the program name ie SAPMV45A
SE38 -> Enter the program name and in the program( SAPMV45A) goto -- attributes
get the package name from here ie VA
note the package(VA) and get back to main screen
goto SMOD tcode and click on find button in the package spec giv the package name ie VA and execute it
you will find list of exits available
check out the exit that suits ur requirement
goto cmod and create a new project and implement in that user exit.
You will get the following exits in SMOD..
SDTRM001 Reschedule schedule lines without a new ATP check
V45A0001 Determine alternative materials for product selection
V45A0002 Predefine sold-to party in sales document
V45A0003 Collector for customer function modulpool MV45A
V45A0004 Copy packing proposal
V45E0001 Update the purchase order from the sales order
V45E0002 Data transfer in procurement elements (PRreq., assembly
V45L0001 SD component supplier processing (customer enhancements
V45P0001 SD customer function for cross-company code sales
V45S0001 Update sales document from configuration
V45S0003 MRP-relevance for incomplete configuration
V45S0004 Effectivity type in sales order
V45W0001 SD Service Management: Forward Contract Data to Item
V46H0001 SD Customer functions for resource-related billing
V60F0001 SD Billing plan (customer enhancement) diff. to billing
For Delivery you will get .. here the package name will be VL.
V02V0001 Sales area determination for stock transport order
V02V0002 User exit for storage location determination
V02V0003 User exit for gate + matl staging area determination (h
V02V0004 User Exit for Staging Area Determination (Item)
V50PSTAT Delivery: Item Status Calculation
V50Q0001 Delivery Monitor: User Exits for Filling Display Fields
V50R0001 Collective processing for delivery creation
V50R0002 Collective processing for delivery creation
V50R0004 Calculation of Stock for POs for Shipping Due Date List
V50S0001 User Exits for Delivery Processing
V53C0001 Rough workload calculation in time per item
V53C0002 W&S: RWE enhancement - shipping material type/time slot
V53W0001 User exits for creating picking waves
VMDE0001 Shipping Interface: Error Handling - Inbound IDoc
VMDE0002 Shipping Interface: Message PICKSD (Picking, Outbound)
VMDE0003 Shipping Interface: Message SDPICK (Picking, Inbound)
VMDE0004 Shipping Interface: Message SDPACK (Packing, Inbound)
For Billing VF01..Package is VF..
SDVFX007 User exit: Billing plan during transfer to Accounting
SDVFX008 User exit: Processing of transfer structures SD-FI
SDVFX009 Billing doc. processing KIDONO (payment reference numbe
SDVFX010 User exit item table for the customer lines
SDVFX011 Userexit for the komkcv- and kompcv-structures
V05I0001 User exits for billing index
V05N0001 User Exits for Printing Billing Docs. using POR Procedu
V60A0001 Customer functions in the billing document
V60P0001 Data provision for additional fields for display in lis
V61A0001 Customer enhancement: Pricing
Or another way is ..
- Get the program name for that T-Code
- Go to that program
- In that program, search for word 'EXIT' or 'CUSTOMER-FUNCTION' by using where-used list which will give u the list of user exits for that program
And also you can check in the tables in SE16 for user exits..
MODSAP - Stores SAP Enhancements
MODSAPT - Stores SAP Enhancements - Short Texts
MODACT - Stores Modifications
And there are other ways as well , pls check the forum for this ,
Regards,
Vvieks
Note : If you have any specific requirement then pls let us know , we will guide you -
How to access the global data in user exit.
Hi All,
How to access the global data in user exit.
the question is that when we were writing a code in the FM. i need to read data from the standard program like newly created documen and this document number need to be accessed in my program.
this document number is not imported to the FM i needed to access for frther proceed.
Thanks in advance.Hi,
See the below PDF file by Jeff Goldstein. There you can find all the details about accessing data outside of the exit.
[SAP User Exits and the People Who Love Them|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/208811b0-00b2-2910-c5ac-dd2c7c50c8e8]
This will help you to solve your problem.
Regards
Karthik D
Edited by: Karthik D on Dec 2, 2008 4:18 PM -
Regarding how to find out a program is User Exit/executable
Hi,
Can anybody tell me how can we find wether a particular program is used in executable program (or) user exit program?
One thing we can find out is wether the program type is 'I' or 'R' etc..
Thanks in advance.
Thanks,
Deep.Hi...
See the following links..
it helps you a lot..
how can we C the USER_EXITS in Z programs
how can we find the list of user exits for a transaction
How to find the active user exits in my client
How to find user exits for a transaction
Hope it helps you...
Let me know if u have any more doubt...
Reward points if useful......
Suresh....... -
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 -
How to get status profile (STSMA) in user exit ILOM0001
Hi ABAPers,
I am currently working on user exit ILOM0001 (Check before saving a functional location) and need to get information about status profile (STSMA). I have checked parameters that is imported into this user exit (DATA_IFLO, DATA_IFLO_OLD, DATA_IFLOS) and none of them have STSMA.
Could anybody help me how to get this field STSMA into user exit ILOM0001?
Appreciate it.
Thanks
Regards
HadiDear Kolla,
Really appreciate your answer, but
I don't want to generate or make settlement receiver.
I was building a script in user exit IW010009,
And the issue is I can not capture the content of field settlement receiver.
If we want to capture screen field, ex. equnr, we can use structure CAUFVD,
when i see the technical detail in this field, the structure for settlement is DKOBR, field EMPGE, but i cannot call it on debug.
Kindly need your help on this issue.
Maybe you are looking for
-
How can i access the internet using a non-wireless...
Before upgrading my BT broadband to BT Infinity, I was able to connect my two desktop PC's to the BTHUB2 without a problem. One of them is running Windows 7 and has a wireless connection, the other is running Windows XP and does not have a wireless a
-
Sorenson Squeeze 3 from Final cut
Does anyone know the best settings to export to get a high quality video to show on a PC with output to a projector with or without Sorenson squeeze? Any Comments welcome! Thanks, Ed
-
Hello every one,happy new year!
Hello, I am a loyal user of Apple, with Apple for a long time, I want to know about siri siri when support for the Chinese? Why can not support the iPhone 4? This is not unfair iphone4 users? My E-mail: [email protected], I hope to give a good explan
-
Accessing a Item master from across multiple operating units
HI, We have created two operating units and two inventory org's. we have created an item in teh item master and assigned to the inventory org. now we have a scenario. one inventory org belongs to one OU and another inventory belongs to another OU. i
-
DP90 pricing date missing in DMR item data
Background: Im implementing sales pricing discounts for sales orders generated from service orders via RRB. Currently, we create service orders to capture costs then use RRB (DP90/DP95) to create DMR documents to bill customers for the services. C