User exit/BADI required for coding for the selection custom fields in RSA3
Hi,
I have a requirement in the Datasource extractor. I need to add custom Z fields in the Data souce of the 2LIS_02_SCL and need to include in the selection part. So I have added the custom filed in the append structure and include the check in the selection checkbox in the transaction LBWE under the datasource specified above. For the corresponding custom fields, to be populated in the ALV list, I have written the code in corresponding user exit ZXRSAU01.
Now I can view my custom Z fields in the list as well as on the selection fileds while executing the transaction RSA3. But I need to write code for the selection criteria part. On entering value in the selection criteria of my custom z field, no values are selected to the corresponding query. Please let me know where should i write the coding part for the selection criteria of the Z fields for the Datasource.
On debugging, to my understanding only the standard fields are alone getting filtered by providnig the values in the selection part of the RSA3 tcode. It is called in Macros : Sel < Datasorce> .... and the fetch cursor is included inside the macros.
Please let me know any user exits or Badi;s available for it.
Thanks in advance
Hi shivu,
you might try the BAdI RSU5_SAPI_BADI. A good introduction can be found in the following document:
[Enhancing DataSources with BAdI RSU5_SAPI_BADI|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/3001894b-b1fb-2910-77ba-e80b6f2053b7]
The BAdI is called at the time of extraction, so this would be the right place to populate your additional fields.
Best,
Chris
Similar Messages
-
PA30 : IT2010 & IT 0015. User exit / BADI required to retrieve BETRG value
good day to everyone,
My objective its to retrieve Amount ( BETRG) value in PA30 --> IT2010 and PA30 --> IT0015 screen.
I have tried using the User exits and Badi below. However, there are no structure to retrieve BETRG value when i am i at the IT2010 and IT0015 screen.
-EXIT_SAPFP50M_001 in enhancement PBAS0001
-badi HRPAD00INFTY
Could anyone let me know is there any way to retrieve the BETRG value or any user exit/badi available?
hope to hear from you soon.
Thank you.
Regards,
SWIn PAI of user exit ( ZXPADU02 ) you can get it easily
data i0015 like p0015.
if INNNN-INFTY = '0015'.
call method CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
exporting
PRELP = INNNN
importing
PNNNN = I0015. "here you have record of IT0015 so BETRG is also available
"cast back values to screen fields
call method CL_HR_PNNNN_TYPE_CAST=>PNNNN_TO_PRELP
exporting
PNNNN = I0015
importing
PRELP = INNNN.
endif.
Similar code can be done for IT2010
Regards
Marcin -
User exit in VA01 not triggering on change of custom field
Hello Guys,
We have custom field in SO item (VBAP) for which screen 8459 of SAPMV45A has been enhanced. Now, on the change of the custom field, user exit USEREXIT_MOVE_FIELD_TO_ME_REQ is not getting triggered.
Requirement is to change Purchase Requistion item (setting value of a EBAN field to custom field from 8459 screen) when a SO is created/changed.
Can someone please help!
Regards,
Ashish
Edited by: Ashish Kshatriya on Nov 4, 2009 8:00 PMHi
U can also to try to insert a new MODULE in the PAI of screen-exit where u call the user-exit USEREXIT_MOVE_FIELD_TO_ME_REQ or where u fill the header line of table EBAN just as what that exit does.
U should remember the screen-exit is "yours", so u can insert all module u need, just only save them in the following include:
- MV45AOZZ (PBO module)
- MV45AIZZ (PAI module)
Max -
User exit/BADI required to assign a pushbutton from transactionVA01 to IW51
Hello experts,
I have a requirement wherein the "Create Customer " pushbutton from VA01 Transaction has to be assigned to Tcode: IW51 .
Our aim is to assign this "Create customer" button in IW51 screen instead of VA01 .
Here are the details of the Module pool program.
Standard SAP program: SAPMV45A
Screen: 4701
Button name: BT_IAAN
Is there a standard User Exit/Function exit present for this?
Please provide a reply at the earliest convenience.
Thanks,
Himanshu LimayeHimanshu Limaye,
As far as I know you cannot add a button the the GUI menu without modifying the system..
However there are user-exits available for menu Goto->Enhancements...
Have a look [here|http://pjatkin.users.btopenworld.com/documents/PMCSUserExits.pdf] for the user-exits under the Notification section.
Otherwise its back to the actionbox/QQMA0001 option described above
PeteA -
The FIRST user exit/badi for VF01
I need to know the first user exit/badi/etc... for VF01 (the pricing procedure). We need to change field values BEFORE the first pass through the pricing routine (hits the condition types). We are having an issue where we need to change field values and use those new values in a pricing condition. What happens is the pricing condition is hit before our user exit is hit and so then it fails when it hits the condition a second time. It fails this time because the values are different. I need to change these values before the first pass.
Regards,
DavisHi,
what values are changing???
are you changing the pricing condition values??
OR
are you changing the value that will have an effect the pricing condition value..
Thanks
Naren -
User Exit/BADI for PR (Purchase Requisition )
Hello,
I need to do some validations while saving PR (ME51N, ME52N). Which User Exit / BADI I can use for this purpose? I am using SAP 4.6C
I have to do the validation for the field FIPOS
Regards,
LijoMEREQ001 Customers' Own Data in Purchase Requisition
-
User exit / Badi on save of trip/receipt line
Hi All,
I am trying to find a user exit / BADI that is called when the user either accepts a line of a receipt within a trip or simply saves the trip in total (preferably the latter) and I have been unable to find it.
Any ideas would be great,
Thanks,
Brenton.Hello
In program SAPMWAKA (tcode WAK2) you will find routine MWAKAF03_CALL_PROMOTION_U in which fm PROMOTION_UPDATE is called.
Within this fm you find at the end the coding:
* BADI Aufruf
PERFORM CALL_BADI_INTERF_PROM_UPD USING FXWAKHD.
ENDFUNCTION.
This routine check for implementation of BAdI WAKT_BADI_001. The BAdI method INTERFACE_PROMOTION_DATA is used to "Make Update Data Available to External Applications".
In addition, you should look through the manyfold BAdIs and enhancement spots within package WAKT.
Regards
Uwe -
Hi All,
I have following requirement for USER EXIT/BADI:-
Requirement : If some material number is entered in Transaction ME11 /ME12 , I have to find a user exit/BADI where I will find material group from mara based on EINA-MATNR = MARA-MATNR if that group is within some specific group like CHEM ,POLY,OIL etc. , user will not be allowed to go to next screen and it will show message to user on the first screen itself..
If any one has come across such requirement please help me on this asap.
Thanks.
LokeshHi Lokesh,
i am sending one program using which you can check for the user exits and Badi's used in the respective transaction.
It will surely resolve your issue.
Use the following prog. it will fetch the Exits as well as BADI's for that T Code.
*& Report Z_USEREXIT_DISPLAY
REPORT Z_USEREXIT_DISPLAY
NO STANDARD PAGE HEADING
LINE-SIZE 200 MESSAGE-ID ZZ.
T A B L E D E C L A R A T I O N S *
TABLES: TFTIT,
E071,
E070.
S T R U C T U R E D E C L A R A T I O N S *
TYPES: BEGIN OF X_TSTC,
TCODE TYPE TCODE,
PGMNA TYPE PROGRAM_ID,
END OF X_TSTC.
TYPES: BEGIN OF X_TADIR,
OBJ_NAME TYPE SOBJ_NAME,
DEVCLASS TYPE DEVCLASS,
END OF X_TADIR.
TYPES: BEGIN OF X_SLOG,
OBJ_NAME TYPE SOBJ_NAME,
END OF X_SLOG.
TYPES: BEGIN OF X_FINAL,
NAME TYPE SMODNAME,
MEMBER TYPE MODMEMBER,
INCLUDE(15), "Include name
END OF X_FINAL.
I N T E R N A L T A B L E D E C L A R A T I O N S *
DATA: IT_TSTC TYPE STANDARD TABLE OF X_TSTC WITH HEADER LINE.
DATA: IT_TADIR TYPE STANDARD TABLE OF X_TADIR WITH HEADER LINE.
DATA: IT_JTAB TYPE STANDARD TABLE OF X_SLOG WITH HEADER LINE.
DATA: IT_FINAL TYPE STANDARD TABLE OF X_FINAL WITH HEADER LINE.
V A R I A B L E S D E C L A R A T I O N S *
U S E R I N P U T S S C R E E N *
S E L E C T I O N S C R E E N *
SELECTION-SCREEN: BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-T01.
PARAMETERS: P_TCODE LIKE TSTC-TCODE OBLIGATORY.
SELECTION-SCREEN END OF BLOCK BLK01.
S t a r t o f S e l e c t i o n *
START-OF-SELECTION.
PERFORM GET_TCODES. "Get Tcodes
PERFORM GET_OBJECTS. "Get Objects
E n d o f S e l e c t i o n *
END-OF-SELECTION.
PERFORM DISPLAY_RESULTS. "Display Results
*& Form get_tcodes
Get Tcodes
FORM GET_TCODES.
SELECT TCODE
PGMNA
INTO TABLE IT_TSTC
FROM TSTC
WHERE TCODE = P_TCODE.
IF SY-SUBRC = 0.
SORT IT_TSTC BY TCODE.
ENDIF.
ENDFORM. " get_tcodes
*& Form get_objects
Get Objects
FORM GET_OBJECTS.
DATA: L_FNAME LIKE RS38L-NAME,
L_GROUP LIKE RS38L-AREA,
L_INCLUDE LIKE RS38L-INCLUDE,
L_NAMESPACE LIKE RS38L-NAMESPACE,
L_STR_AREA LIKE RS38L-STR_AREA.
DATA: V_INCLUDE LIKE RODIOBJ-IOBJNM.
DATA: E_T_INCLUDE TYPE STANDARD TABLE OF ABAPSOURCE WITH HEADER
LINE.
DATA: L_LINE TYPE STRING,
L_TABIX LIKE SY-TABIX.
IF NOT IT_TSTC[] IS INITIAL.
SELECT OBJ_NAME
DEVCLASS
INTO TABLE IT_TADIR
FROM TADIR FOR ALL ENTRIES IN IT_TSTC
WHERE PGMID = 'R3TR' AND
OBJECT = 'PROG' AND
OBJ_NAME = IT_TSTC-PGMNA.
IF SY-SUBRC = 0.
SORT IT_TADIR BY OBJ_NAME DEVCLASS.
SELECT OBJ_NAME
INTO TABLE IT_JTAB
FROM TADIR FOR ALL ENTRIES IN IT_TADIR
WHERE PGMID = 'R3TR' AND
OBJECT = 'SMOD' AND
DEVCLASS = IT_TADIR-DEVCLASS.
IF SY-SUBRC = 0.
SORT IT_JTAB BY OBJ_NAME.
ENDIF.
ENDIF.
ENDIF.
*- Get UserExit names
LOOP AT IT_JTAB.
SELECT NAME
MEMBER
INTO (IT_FINAL-NAME, IT_FINAL-MEMBER)
FROM MODSAP
WHERE NAME = IT_JTAB-OBJ_NAME AND
TYP = 'E'.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ENDSELECT.
ENDLOOP.
*- Process it_final contents.
LOOP AT IT_FINAL.
L_TABIX = SY-TABIX.
CLEAR: L_FNAME,
L_GROUP,
L_INCLUDE,
L_NAMESPACE,
L_STR_AREA.
L_FNAME = IT_FINAL-MEMBER.
CALL FUNCTION 'FUNCTION_EXISTS'
EXPORTING
FUNCNAME = L_FNAME
IMPORTING
GROUP = L_GROUP
INCLUDE = L_INCLUDE
NAMESPACE = L_NAMESPACE
STR_AREA = L_STR_AREA
EXCEPTIONS
FUNCTION_NOT_EXIST = 1
OTHERS = 2.
IF SY-SUBRC = 0.
IF NOT L_INCLUDE IS INITIAL.
*- Get Source code of include.
CLEAR: V_INCLUDE, E_T_INCLUDE, E_T_INCLUDE[].
V_INCLUDE = L_INCLUDE.
CALL FUNCTION 'MU_INCLUDE_GET'
EXPORTING
I_INCLUDE = V_INCLUDE
TABLES
E_T_INCLUDE = E_T_INCLUDE.
IF SY-SUBRC = 0.
LOOP AT E_T_INCLUDE.
IF E_T_INCLUDE-LINE CS 'INCLUDE'.
CLEAR L_LINE.
L_LINE = E_T_INCLUDE-LINE.
CONDENSE L_LINE NO-GAPS.
TRANSLATE L_LINE USING '. '.
L_LINE = L_LINE+7(9).
IT_FINAL-INCLUDE = L_LINE.
MODIFY IT_FINAL INDEX L_TABIX TRANSPORTING INCLUDE.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " get_objects
*& Form display_results
Display Results
FORM DISPLAY_RESULTS.
FORMAT COLOR COL_HEADING.
WRITE:/1(150) SY-ULINE.
WRITE:/ SY-VLINE,
2(23) 'Extension Name',
24 SY-VLINE,
25(39) 'Exit Name',
64 SY-VLINE,
65(74) 'Description',
140 SY-VLINE,
141(9) 'Include',
150 SY-VLINE.
WRITE:/1(150) SY-ULINE.
FORMAT RESET.
SORT IT_FINAL BY NAME MEMBER.
LOOP AT IT_FINAL.
CLEAR TFTIT.
SELECT SINGLE STEXT
INTO TFTIT-STEXT
FROM TFTIT
WHERE SPRAS = 'EN' AND
FUNCNAME = IT_FINAL-MEMBER.
WRITE:/ SY-VLINE,
IT_FINAL-NAME COLOR COL_KEY, 24 SY-VLINE,
25 IT_FINAL-MEMBER, 64 SY-VLINE,
65 TFTIT-STEXT, 140 SY-VLINE,
141 IT_FINAL-INCLUDE, 150 SY-VLINE.
WRITE:/1(150) SY-ULINE.
ENDLOOP.
ENDFORM. " display_results
Hope this resolves your query.
Reward all the helpful answers.
Regards -
Hello,
I need to locate a User Exit/Badi where I can get the address information (Street, City, etc) that was modified in transaction XD02 once the user press the save button.
I tried to use the EXIT_SAPMF02D_001 (ZXF04U01) exit but when i get the address information from the ADRC table it's not updated yet.
Is there a way of obtaining this data by the time the user modifies the customer information in XD02 transaction????
Thank you
Felipe VieiraUSER EXIT
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.sapgenie.com/abap/code/abap26.htm
http://www.sap-img.com/abap/what-is-user-exits.htm
http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
http://www.easymarketplace.de/userexit.php
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.sappoint.com/abap/userexit.pdfUser-Exit
http://www.sap-img.com/ab038.htm
http://help.sap.com/saphelp_46c/helpdata/en/64/72369adc56d11195100060b03c6b76/frameset.htm
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.sap-img.com/abap/what-is-user-exits.htm
http://expertanswercenter.techtarget.com/eac/knowledgebaseAnswer/0,295199,sid63_gci982756,00.html
Transaction Code - XD02 Change Customer (Centrally)
Exit Name Description
SAPMF02D User exits: Customer master data
No of Exits: 1
Rewards if useful.........
Minal -
To find out user exit/ badi for the VT01n transaction triggered in Save
Hi Friends,
I have the following requirement and for this appropriate user exit/ badi should be needed which will trigger during saving of the shipment.
Cass shipment type (VTTK-ADD03) field needs to be required and should be automatically populated upon creation of the shipment document. The rules for populating the value (SO, ST, PO and RA) are as follows:
If any of the orders on the shipment are customer order types, then the CASS shipment type should be a SO,
If all of the orders are STO orders, then the Cass shipment type should be "ST",
If all of the orders are PO orders, then the Cass shipment type should be "PO" , and
If all of the orders are customer return orders, then the Cass shipment type should be "RA".
I have tried with the 3 badi available and 7 to 8 user exit, but it won't work.
Thanking a lot in advance for giving the solution.
With Regards,
Ajit.Hi,
This code will give you all the user-exits.
Code:
& Report ZPJA_PM002 (Ver4) &
& PJA Consultancy Services (www.pjas.com) &
& This report attmpts to find Enhancements, Program-Exits, BADIs &
& and Business Transaction Events in a particular program/tcode. &
& Other search options: &
& Program: RPR_ABAP_SOURCE_SCAN &
& FModule: &
& Text Elements: &
& P_DEVC Show user-exits from development class &
& P_LIMIT Limit submit program selection &
& P_FUNC Show function modules &
& P_SUBM Show submit programs &
& S01 Selection data (TCode takes precedence over program name) &
report zpja_pm002
no standard page heading
line-size 221.
data: tabix like sy-tabix,
w_linnum type i,
w_off type i,
w_index like sy-tabix,
w_include like trdir-name,
w_prog like trdir-name,
w_incl like trdir-name,
w_area like rs38l-area,
w_level,
w_fsel like sy-ucomm, " Determination of screen field
w_str(50) type c,
w_funcname like tfdir-funcname.
constants: c_fmod(40) type c value 'Function modules selected: ',
c_subm(40) type c value 'Submit programs selected: ',
c_col1(12) type c value 'Enhanmt Type',
c_col2(40) type c value 'Enhancement',
c_col3(30) type c value 'Program/Include',
c_col4(20) type c value 'Enhancement Name',
c_col5(40) type c value 'Enhancement Description',
c_col6(8) type c value 'Project',
c_col7(1) type c value 'S',
c_col8(12) type c value 'ChangeName',
c_col9(10) type c value 'ChangeDate'.
Work Areas: ABAP Workbench
data: begin of wa_d010inc.
data: master type d010inc-master.
data: end of wa_d010inc.
data: begin of wa_tfdir.
data: funcname type tfdir-funcname,
pname type tfdir-pname,
include type tfdir-include.
data: end of wa_tfdir.
data: begin of wa_tadir.
data: devclass type tadir-devclass.
data: end of wa_tadir.
data: begin of wa_tstc.
data: pgmna type tstc-pgmna.
data: end of wa_tstc.
data: begin of wa_tstcp.
data: param type tstcp-param.
data: end of wa_tstcp.
data: begin of wa_enlfdir.
data: area type enlfdir-area.
data: end of wa_enlfdir.
Work Areas: BADIs
data: begin of wa_sxs_attr.
data: exit_name type sxs_attr-exit_name.
data: end of wa_sxs_attr.
data: begin of wa_sxs_attrt.
data: text type sxs_attrt-text.
data: end of wa_sxs_attrt.
Work Areas: Enhancements
data: begin of wa_modsap.
data: member type modsap-member.
data: end of wa_modsap.
data: begin of wa_modsapa.
data: name type modsapa-name.
data: end of wa_modsapa.
data: begin of wa_modsapt.
data: modtext type modsapt-modtext.
data: end of wa_modsapt.
Work Areas: Business Transaction Events
data: begin of wa_tbe01t.
data: text1 type tbe01t-text1.
data: end of wa_tbe01t.
data: begin of wa_tps01t.
data: text1 type tps01t-text1.
data: end of wa_tps01t.
user-exits
types: begin of ty_mod,
member like modact-member,
name like modact-name,
status like modattr-status,
anam like modattr-anam,
adat like modattr-adat,
end of ty_mod.
data: w_mod type ty_mod.
types: begin of t_userexit,
type(12) type c,
pname like trdir-name,
txt(300),
level type c,
modname(30) type c,
modtext(60) type c,
modattr type ty_mod,
end of t_userexit.
data: i_userexit type standard table of t_userexit with header line.
Function module developmnet classes
types: begin of t_devclass,
clas like trdir-clas,
end of t_devclass.
data: i_devclass type standard table of t_devclass with header line.
types: begin of t_enlfdir,
area type enlfdir-area,
end of t_enlfdir.
data: i_enlfdir type standard table of t_enlfdir with header line.
Submit programs
types: begin of t_submit,
pname like trdir-name,
level,
done,
end of t_submit.
data: i_submit type standard table of t_submit with header line.
Source code
types: begin of t_sourcetab, "#EC * (SLIN lügt!)
line(200), "#EC * (SLIN lügt!)
end of t_sourcetab. "#EC * (SLIN lügt!)
data: sourcetab type standard table of t_sourcetab with header line.
data c_overflow(30000) type c.
Description of an ABAP/4 source analysis token
data: i_stoken type standard table of stokex with header line.
data wa_stoken like i_stoken.
Description of an ABAP/4 source analysis statement
data: i_sstmnt type standard table of sstmnt with header line."#EC NEEDED
keywords for searching ABAP code
types: begin of t_keywords,
word(30),
end of t_keywords.
data: keywords type standard table of t_keywords with header line.
function modules within program
types: begin of t_fmodule,
name like rs38l-name,
pname like trdir-name,
pname2 like trdir-name,
level,
bapi,
done,
end of t_fmodule.
data: i_fmodule type standard table of t_fmodule with header line.
& Selection Options &
selection-screen begin of block selscr1 with frame title text-s01.
parameter: p_pname like trdir-name memory id rid,
p_tcode like syst-tcode,
p_limit(4) type n default 100,
p_devc like rihea-dy_ofn default ' ',
p_func like rihea-dy_ofn default ' ',
p_subm like rihea-dy_ofn default ' '.
selection-screen end of block selscr1.
& START-OF-SELECTION &
start-of-selection.
if p_pname is initial and p_tcode is initial.
message e008(hrfpm). "Make entry on the selection screen
stop.
endif.
ensure P_LIMIT is not zero.
if p_limit = 0.
p_limit = 1.
endif.
perform data_select.
perform get_submit_data.
perform get_fm_data.
perform get_additional_data.
perform data_display.
& Form DATA_SELECT &
form data_select.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Get programs/includes' "#EC NOTEXT
exceptions
system_failure
communication_failure
. "#EC *
determine search words
keywords-word = 'CALL'.
append keywords.
keywords-word = 'FORM'.
append keywords.
keywords-word = 'PERFORM'.
append keywords.
keywords-word = 'SUBMIT'.
append keywords.
keywords-word = 'INCLUDE'.
append keywords.
if not p_tcode is initial.
get program name from TCode
select single pgmna from tstc into wa_tstc-pgmna
where tcode eq p_tcode.
if not wa_tstc-pgmna is initial.
p_pname = wa_tstc-pgmna.
TCode does not include program name, but does have refereve TCode
else.
select single param from tstcp into wa_tstcp-param
where tcode eq p_tcode.
if sy-subrc = 0.
check wa_tstcp-param(1) = '/'.
check wa_tstcp-param+1(1) = '*'.
if wa_tstcp-param ca ' '.
endif.
w_off = sy-fdpos + 1.
subtract 2 from sy-fdpos.
if sy-fdpos gt 0.
p_tcode = wa_tstcp-param+2(sy-fdpos).
endif.
select single pgmna from tstc into wa_tstc-pgmna
where tcode eq p_tcode.
p_pname = wa_tstc-pgmna.
if sy-subrc <> 0.
message e110(/saptrx/asc) with 'No program found for: ' p_tcode."#EC NOTEXT
endif.
else.
message e110(/saptrx/asc) with 'No program found for: ' p_tcode."#EC NOTEXT
endif.
endif.
endif.
Call customer-function aus Program coding
read report p_pname into sourcetab.
if sy-subrc > 0.
message e017(enhancement) with p_pname raising no_program."#EC *
endif.
scan abap-source sourcetab tokens into i_stoken
statements into i_sstmnt
keywords from keywords
overflow into c_overflow
with includes.
if sy-subrc > 0. "keine/syntakt. falsche Ablauflog./Fehler im Skanner
message e130(enhancement) raising syntax_error. "#EC *
endif.
check I_STOKEN for entries
clear w_linnum.
describe table i_stoken lines w_linnum.
if w_linnum gt 0.
w_level = '0'.
w_prog = ''.
w_incl = ''.
perform data_search tables i_stoken using w_level w_prog w_incl.
endif.
endform. "DATA_SELECT
& Form GET_FM_DATA &
form get_fm_data.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Get function module data' "#EC NOTEXT
exceptions
system_failure
communication_failure. "#EC *
Function module data
sort i_fmodule by name.
delete adjacent duplicates from i_fmodule comparing name.
loop at i_fmodule where done ne 'X'.
clear: i_stoken, i_sstmnt, sourcetab, wa_tfdir, w_include .
refresh: i_stoken, i_sstmnt, sourcetab.
store function groups
select single area from enlfdir into wa_enlfdir-area
where funcname = i_fmodule-name.
i_enlfdir-area = wa_enlfdir-area.
append i_enlfdir.
Store development classes
if not wa_enlfdir-area is initial.
select single devclass into wa_tadir-devclass
from tadir where pgmid = 'R3TR'
and object = 'FUGR'
and obj_name = wa_enlfdir-area.
check not wa_tadir-devclass is initial.
move wa_tadir-devclass to i_devclass-clas.
append i_devclass.
endif.
clear wa_tfdir.
select single funcname pname include from tfdir into wa_tfdir
where funcname = i_fmodule-name.
check sy-subrc = 0.
call function 'FUNCTION_INCLUDE_SPLIT'
exporting
program = wa_tfdir-pname
importing
group = w_area.
concatenate 'L' w_area 'U' wa_tfdir-include into w_include.
i_fmodule-pname = w_include.
i_fmodule-pname2 = wa_tfdir-pname.
modify i_fmodule.
read report i_fmodule-pname into sourcetab.
if sy-subrc = 0.
scan abap-source sourcetab tokens into i_stoken
statements into i_sstmnt
keywords from keywords
with includes.
if sy-subrc > 0.
message e130(enhancement) raising syntax_error.
endif.
check i_stoken for entries
clear w_linnum.
describe table i_stoken lines w_linnum.
if w_linnum gt 0.
w_level = '1'.
w_prog = i_fmodule-pname2.
w_incl = i_fmodule-pname.
perform data_search tables i_stoken using w_level w_prog w_incl.
endif.
endif.
endloop.
sort funtion groups
sort i_devclass.
delete adjacent duplicates from i_devclass.
sort i_enlfdir.
delete adjacent duplicates from i_enlfdir.
endform. "GET_FM_DATA
& Form GET_SUBMIT_DATA &
form get_submit_data.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Get submit data' "#EC NOTEXT
exceptions
system_failure
communication_failure
. "#EC *
sort i_submit.
delete adjacent duplicates from i_submit comparing pname.
w_level = '0'.
loop at i_submit where done ne 'X'.
check i_submit-pname ne p_pname. " ensure not the same as origianl program
clear: i_stoken, i_sstmnt, sourcetab.
refresh: i_stoken, i_sstmnt, sourcetab.
read report i_submit-pname into sourcetab.
if sy-subrc <> 0.
delete i_submit.
continue.
else.
scan abap-source sourcetab tokens into i_stoken
statements into i_sstmnt
keywords from keywords
with includes.
if sy-subrc > 0.
continue.
endif.
check i_stoken for entries
clear w_linnum.
describe table i_stoken lines w_linnum.
if w_linnum gt 0.
w_prog = i_submit-pname.
w_incl = ''.
perform data_search tables i_stoken using w_level w_prog w_incl.
endif.
endif.
restrict number of submit program selected for processing
describe table i_submit lines w_linnum.
if w_linnum ge p_limit.
w_level = '1'.
endif.
i_submit-done = 'X'.
modify i_submit.
endloop.
sort i_submit.
delete adjacent duplicates from i_submit comparing pname.
endform. "GET_SUBMIT_DATA
& Form DATA_SEARCH &
form data_search tables p_stoken structure stoken
using p_level p_prog p_incl.
loop at p_stoken.
clear i_userexit.
tabix = sy-tabix + 1.
i_userexit-level = p_level.
if i_userexit-level = '0'.
if p_incl is initial.
i_userexit-pname = p_pname.
else.
concatenate p_pname '/' p_incl into i_userexit-pname.
endif.
else.
if p_incl is initial.
i_userexit-pname = p_prog.
else.
concatenate p_prog '/' p_incl into i_userexit-pname.
endif.
endif.
Include
if p_stoken-str eq 'INCLUDE'.
check p_level eq '0'. " do not perform for function modules (2nd pass)
w_index = sy-tabix + 1.
read table p_stoken index w_index into wa_stoken.
check not wa_stoken-str cs 'STRUCTURE'.
check not wa_stoken-str cs 'SYMBOL'.
read table i_submit with key pname = wa_stoken-str.
if sy-subrc <> 0.
i_submit-pname = wa_stoken-str.
i_submit-level = p_level.
append i_submit.
endif.
endif.
Enhancements
if p_stoken-str eq 'CUSTOMER-FUNCTION'.
clear w_funcname.
read table p_stoken index tabix.
translate p_stoken-str using ''' '.
condense p_stoken-str.
if p_prog is initial.
concatenate 'EXIT' p_pname p_stoken-str into w_funcname
separated by '_'.
else.
concatenate 'EXIT' p_prog p_stoken-str into w_funcname
separated by '_'.
endif.
select single member from modsap into wa_modsap-member
where member = w_funcname.
if sy-subrc = 0. " check for valid enhancement
i_userexit-type = 'Enhancement'.
i_userexit-txt = w_funcname.
append i_userexit.
else.
clear wa_d010inc.
select single master into wa_d010inc-master
from d010inc
where include = p_prog.
concatenate 'EXIT' wa_d010inc-master p_stoken-str into w_funcname
separated by '_'.
i_userexit-type = 'Enhancement'.
i_userexit-txt = w_funcname.
endif.
endif.
BADIs
if p_stoken-str cs 'cl_exithandler='.
w_index = sy-tabix + 4.
read table p_stoken index w_index into wa_stoken.
i_userexit-txt = wa_stoken-str.
replace all occurrences of '''' in i_userexit-txt with space.
i_userexit-type = 'BADI'.
append i_userexit.
endif.
Business transaction events
if p_stoken-str cs 'OPEN_FI_PERFORM'.
i_userexit-type = 'BusTrEvent'.
i_userexit-txt = p_stoken-str.
replace all occurrences of '''' in i_userexit-txt with space.
i_userexit-modname = i_userexit-txt+16(8).
case i_userexit-txt+25(1).
when 'E'.
clear wa_tbe01t.
select single text1 into wa_tbe01t-text1 from tbe01t
where event = i_userexit-txt+16(8)
and spras = sy-langu.
if wa_tbe01t-text1 is initial.
i_userexit-modtext = ''. "#EC NOTEXT
else.
i_userexit-modtext = wa_tbe01t-text1.
endif.
i_userexit-modname+8 = '/P&S'. "#EC NOTEXT
when 'P'.
clear wa_tps01t.
select single text1 into wa_tps01t-text1 from tps01t
where procs = i_userexit-txt+16(8)
and spras = sy-langu.
i_userexit-modtext = wa_tps01t-text1.
i_userexit-modname+8 = '/Process'.
endcase.
append i_userexit.
endif.
Program exits
if p_stoken-str cs 'USEREXIT_'.
i_userexit-type = 'Program Exit'.
i_userexit-txt = p_stoken-str.
replace all occurrences of '''' in i_userexit-txt with space.
append i_userexit.
endif.
Submit programs
if p_stoken-str cs 'SUBMIT'.
check p_level eq '0'. " do not perform for function modules (2nd pass)
check not p_stoken-str cs '_'. " ensure not SUBMIT_XXX
w_index = sy-tabix + 1.
read table p_stoken index w_index into wa_stoken.
check not wa_stoken-str cs '_'. " ensure not SUBMIT_XXX
replace all occurrences of '''' in wa_stoken-str with space.
read table i_submit with key pname = wa_stoken-str.
if sy-subrc <> 0.
i_submit-pname = wa_stoken-str.
i_submit-level = p_level.
append i_submit.
endif.
endif.
Perform routines (which reference external programs)
if p_stoken-str cs 'PERFORM'.
check p_level eq '0'. " do not perform for function modules (2nd pass)
w_index = sy-tabix + 1.
read table p_stoken index w_index into wa_stoken.
if not wa_stoken-ovfl is initial.
w_off = wa_stoken-off1 + 10.
w_str = c_overflow+w_off(30).
find ')' in w_str match offset w_off.
w_off = w_off + 1.
wa_stoken-str = w_str(w_off).
endif.
check wa_stoken-str cs '('.
w_off = 0.
while sy-subrc = 0.
if wa_stoken-str+w_off(1) eq '('.
replace section offset w_off length 1 of wa_stoken-str with ''.
replace all occurrences of ')' in wa_stoken-str with space.
read table i_submit with key pname = wa_stoken-str.
if sy-subrc <> 0.
i_submit-pname = wa_stoken-str.
append i_submit.
endif.
exit.
else.
replace section offset w_off length 1 of wa_stoken-str with ''.
shift wa_stoken-str left deleting leading space.
endif.
endwhile.
endif.
Function modules
if p_stoken-str cs 'FUNCTION'.
clear i_fmodule.
check p_level eq '0'. " do not perform for function modules (2nd pass)
w_index = sy-tabix + 1.
read table p_stoken index w_index into wa_stoken.
if wa_stoken-str cs 'WF_'.
if wa_stoken-str cs 'IDOC'.
break-point.
endif.
if wa_stoken-str cs 'BAPI'.
i_fmodule-bapi = 'X'.
endif.
replace first occurrence of '''' in wa_stoken-str with space.
replace first occurrence of '''' in wa_stoken-str with space.
if sy-subrc = 4. " didn't find 2nd quote (ie name truncated)
clear wa_tfdir.
concatenate wa_stoken-str '%' into wa_stoken-str.
select single funcname into wa_tfdir-funcname from tfdir
where funcname like wa_stoken-str.
if sy-subrc = 0.
i_fmodule-name = wa_tfdir-funcname.
else.
continue.
endif.
else.
i_fmodule-name = wa_stoken-str.
endif.
read table i_fmodule with key name = i_fmodule-name.
if sy-subrc <> 0.
i_fmodule-level = p_level.
append i_fmodule.
endif.
endif.
endloop.
endform. "DATA_SEARCH
& Form GET_ADDITIONAL_DATA &
form get_additional_data.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Get additional data' "#EC NOTEXT
exceptions
system_failure
communication_failure
. "#EC *
loop at i_userexit.
Enhancement data
if i_userexit-type cs 'Enh'.
clear: wa_modsapa.
select single name into wa_modsapa-name from modsap
where member = i_userexit-txt.
check sy-subrc = 0.
i_userexit-modname = wa_modsapa-name.
clear wa_modsapt.
select single modtext into wa_modsapt-modtext from modsapt
where name = wa_modsapa-name
and sprsl = sy-langu.
i_userexit-modtext = wa_modsapt-modtext.
MOH - enhancement to get the project name
clear w_mod.
select single modactmember modactname modattr~status
modattranam modattradat
into w_mod
from modact
inner join modattr
on modattrname = modactname
where modact~member = wa_modsapa-name
and modact~typ = space.
i_userexit-modattr = w_mod.
MOH - eoe
endif.
BADI data
if i_userexit-type eq 'BADI'.
clear wa_sxs_attr.
select single exit_name into wa_sxs_attr-exit_name from sxs_attr
where exit_name = i_userexit-txt.
if sy-subrc = 0.
i_userexit-modname = i_userexit-txt.
else.
i_userexit-modname = 'Dynamic call'. "#EC NOTEXT
endif.
clear wa_sxs_attrt.
select single text into wa_sxs_attrt-text from sxs_attrt
where exit_name = wa_sxs_attr-exit_name
and sprsl = sy-langu.
i_userexit-modtext = wa_sxs_attrt-text.
endif.
modify i_userexit.
endloop.
get enhancements via program package
clear wa_tadir.
select single devclass into wa_tadir-devclass from tadir
where pgmid = 'R3TR'
and object = 'PROG'
and obj_name = p_pname.
if sy-subrc = 0.
clear: wa_modsapa, wa_modsapt.
select name from modsapa into wa_modsapa-name
where devclass = wa_tadir-devclass.
select single modtext from modsapt into wa_modsapt-modtext
where name = wa_modsapa-name
and sprsl = sy-langu.
read table i_userexit with key modname = wa_modsapa-name.
if sy-subrc <> 0.
i_userexit-modtext = wa_modsapt-modtext.
i_userexit-type = 'Enhancement'. "#EC NOTEXT
i_userexit-modname = wa_modsapa-name.
i_userexit-txt = 'Determined from program DevClass'."#EC NOTEXT
i_userexit-pname = 'Unknown'. "#EC NOTEXT
append i_userexit.
endif.
endselect.
endif.
Get IDOCs
loop at i_devclass.
endloop.
endform. "GET_ADDITIONAL_DATA
& Form DATA_DISPLAY &
form data_display.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Prepare screen for display' "#EC NOTEXT
exceptions
system_failure
communication_failure
. "#EC *
sort i_userexit by type txt modname.
delete adjacent duplicates from i_userexit comparing txt modname.
format headings
write: 'Enhancements from main program'. "#EC NOTEXT
write: /.
uline.
format color col_heading.
write: / sy-vline,
(12) c_col1, "Enhanmt Type
sy-vline,
(40) c_col2, "Enhancement
sy-vline,
(30) c_col3, "Program/Include
sy-vline,
(20) c_col4, "Enhancement name
sy-vline,
(60) c_col5, "Enhancement description
sy-vline,
(8) c_col6, "Project
sy-vline,
(1) c_col7, "S
sy-vline,
(12) c_col8, "ChangeName
sy-vline,
(10) c_col9, "ChangeDate
sy-vline.
format reset.
uline.
format lines
loop at i_userexit.
set line colour
case i_userexit-type.
when 'Enhancement'.
format color 3 intensified off.
when 'BADI'.
format color 4 intensified off.
when 'BusTrEvent'.
format color 5 intensified off.
when 'Program Exit'.
format color 6 intensified off.
when others.
format reset.
endcase.
write: / sy-vline,
i_userexit-type,
sy-vline,
i_userexit-txt(40),
sy-vline,
i_userexit-pname(30),
sy-vline,
i_userexit-modname(20),
sy-vline,
i_userexit-modtext(60),
sy-vline,
i_userexit-modattr-name,
sy-vline,
i_userexit-modattr-status,
sy-vline,
i_userexit-modattr-anam,
sy-vline,
i_userexit-modattr-adat no-zero,
sy-vline.
hide: i_userexit-type,
i_userexit-txt,
i_userexit-pname,
i_userexit-modname,
i_userexit-modtext.
endloop.
format reset.
uline.
user-exits from development class of function modules
if p_devc = 'X'.
write: /.
write: / 'User-exits from function module development class'."#EC NOTEXT
write: 157''.
uline (90).
write: 157''.
loop at i_devclass.
clear wa_modsapa.
select name from modsapa into wa_modsapa
where devclass = i_devclass-clas.
select single name modtext into corresponding fields of wa_modsapt
from modsapt
where name = wa_modsapa-name
and sprsl = sy-langu.
format color 3 intensified off.
write: / sy-vline,
(12) 'Enhancement',
sy-vline,
wa_modsapa-name,
sy-vline,
wa_modsapt-modtext,
sy-vline.
endselect.
endloop.
uline (90).
format reset.
endif.
describe table i_fmodule lines w_linnum.
write: / c_fmod , at 35 w_linnum. "#EC NOTEXT
write: 157''.
if p_func = 'X'.
display fuction modules used in program
uline (38).
write: 157''.
loop at i_fmodule.
write: sy-vline,
i_fmodule-name,
sy-vline,
i_fmodule-bapi,
sy-vline.
write: 157''.
endloop.
uline (38).
write: 157''.
endif.
describe table i_submit lines w_linnum.
write: / c_subm , at 35 w_linnum. "#EC NOTEXT
write: 157''.
if p_subm = 'X'.
display submit programs used in program
uline (44).
write: 157''.
loop at i_submit.
write: sy-vline,
i_submit-pname,
sy-vline.
write: 157''.
endloop.
uline (44).
endif.
issue message with number of user-exits displayed
describe table i_userexit lines w_linnum.
message s697(56) with w_linnum.
endform. "DATA_DISPLAY
& User Selection Processing &
at line-selection.
get cursor field w_fsel.
case w_fsel.
when 'I_USEREXIT-MODNAME'.
case i_userexit-type.
when 'Enhancement'.
set parameter id 'MON' field i_userexit-modname.
call transaction 'SMOD' and skip first screen.
when 'BADI'.
check i_userexit-modname ne 'Dynamic call'.
set parameter id 'EXN' field i_userexit-modname.
call transaction 'SE18' and skip first screen.
when 'BusTrEvent'.
submit rfopfi00 with attr_typey_selm = 'A'
with event = i_userexit-modname(8)
via selection-screen
and return.
when others.
endcase.
when 'I_USEREXIT-PNAME'.
check i_userexit-modname ne 'Unknown'.
w_off = 0.
find '/' in i_userexit-pname match offset w_off.
if w_off = 0.
set parameter id 'RID' field i_userexit-pname.
call transaction 'SE38' and skip first screen.
else.
w_off = w_off + 1.
w_prog = i_userexit-pname+w_off.
set parameter id 'RID' field w_prog.
call transaction 'SE38' and skip first screen.
endif.
when others.
endcase.
Feel free to revert back.
--Ragu -
Is there any user exit/ badi to populate the partner bank type for F-63.
Is there any user exit/ badi to populate the partner bank type (field name BSEG-BVTYP) in transaction F-63. There is exit ZFI_FOAP_CDITEMS_00001011 having BKPF and BSEG as only import parameters so I cant change the value for BSEG-BVTYP.
So could you please let me know any exit where I can change the value for BSEG-BVTYP for transaction F-63?
Thanks in Advance,
Steevanhi,
Below r the user exit related to transaction F-63.
Check out if any of them will solve ur Query..
F050S001 FIDCMT, FIDCC1, FIDCC2: Edit user-defined IDoc segment
F050S002 FIDCC1: Change IDoc/do not send
F050S003 FIDCC2: Change IDoc/do not send
F050S004 FIDCMT, FIDCC1, FIDCC2: Change outbound IDoc/do not send
F050S005 FIDCMT, FIDCC1, FIDCC2 Inbound IDoc: Change FI document
F050S006 FI Outgoing IDoc: Reset Clearing in FI Document
F050S007 FIDCCH Outbound: Influence on IDoc for Document Change
F180A001 Balance Sheet Adjustment
FARC0002 Additional Checks for Archiving MM Vendor Master Data
FEDI0001 Function Exits for EDI in FI
RFAVIS01 Customer Exit for Changing Payment Advice Segment Text
RFEPOS00 Line item display: Checking of selection conditions
RFKORIEX Automatic correspondence
SAPLF051 Workflow for FI (pre-capture, release for payment)
Reward points if helpful,
Regards,
Brijesh -
User exit/BADI for Deleting the Empty Handling unit
Hi All,
Can anyone give me the suitable User exit/BADI for the below scenario.
While creating the TO (Transfer order) for a delivery using the transaction code LT12, the system will automatically generate HU (Handling unit) number. If the materials are not found in the storage bin for the selected HU, we have to delete the Handling Unit from the delivery document.
Thanks in advance.
Thanks
Ramesh.Find below couple of User Exits for Transfer Order.
MWMTO001 - EXIT_SAPLL03T_001 (Enhancements for end of transfer order generation)
MWMTO002 - EXIT_SAPLL03T_002 (User Exit at End of TO Confirmation (in Update Task))
The Exits gives you access to LTAK and LTAP.....
Hope this is helpful to you.
Vinodh Balakrishnan -
User Exit & BADI for controling the END user in co06
Hi
I HAVE SOME 2 DOUBTS
1. I need a user exit / BADI for controlling the user to edit a specific document type in co06 (BACKORDER PROCESSING) .
the control should be actve for specfic order type for specfic users
2 DEPENDS ON ORDER TYPE I NEED TO CONTROL THE ALLOCATION , AND HOW TO CHECK THE SAFETY STOCKAnswer cannot be Provided properly , so has to Post more questions . i am jus closing my ques??
-
Need the user exit/BADI name for Reverese order MIGo- ME21N(changing item)
Hi
I have the below requirement.
I am changing the item details in the transaction MIGO transaction,the value of MSEG entries
are got changed.and also it should change in the Purchase order level also(in the table EKKO).
Can anybody tell me the User Exit /BADI name which is triggered in the Reverse order
i.e MIGO -> ME21N.So that i can implement my code in the reverse order in the User Exit/BADI.hi I did not find any paramater type EKPO in the Exporting or changing of any methods in the BADI's given by you...........
-
I have following requirement for USER EXIT/BADI
If some material number is entered in Transaction ME11 /ME12 , I have to find a user exit/BADI where I will find material group from mara based on EINA-MATNR = MARA-MATNR if that group is within some specific group like CHEM ,POLY,OIL etc. , user will not be allowed to go to next screen and it will show message to user on the first screen itself..
If any one has come across such requirement please help me on this asap.
Thanks in advance
SachinHi,
You can use the BADI : ME_PROCESS_PO_CUST and the method
PROCESS_ITEM and write the code.
it will work.
DATA : re_data TYPE mepoitem
*get the item data
CALL METHOD im_item->get_data
RECEIVING
re_data = re_data.
reward if useful
regards,
ANJI
Maybe you are looking for
-
Getting Error ASSERTION_FAILED while activating transformation.
Hi Experts, I am getting an error "The ASSERT condition was violated" while activating a transformation in BI. I applied SAP NOTE 1137447 and I am still getting this error given below. Runtime Errors ASSERTION_FAILED Date and Time 09
-
Add new columns under schedulines tab in SO
Hi Gurus, Can we add new columns in SO schedulines tab?Example between Delivery Date and Order qty. I know that changes in standard programs are not advisable, but I'm not sure if it is actually applicable using user exists or others. Thank you.
-
Festival Submission Video and DVD Formatting
Is there a standard for how DVDs are formatted when they are to be submitted to a festival? Instant play? Menu? How about a slate or bars & tone at the beginning of the video? I know nothing! If there are options, I'd like to keep it simple. Thanks!
-
6220 classic,where are the smileys for sms??
Does the Nokia 6220 classic have the smileys (the picture ones)? I can not find how to activate them.... help me please! Solved! Go to Solution.
-
Unknown username "policykit" in message bus configuration file
dev@null> sudo dbus restart /usr/lib :: Stopping D-BUS system messagebus [DONE] :: Starting D-BUS system messagebus