abap--一個功能非常全面的增強出口查找工具(僅供學(xué)習(xí))_第1頁
abap--一個功能非常全面的增強出口查找工具(僅供學(xué)習(xí))_第2頁
abap--一個功能非常全面的增強出口查找工具(僅供學(xué)習(xí))_第3頁
abap--一個功能非常全面的增強出口查找工具(僅供學(xué)習(xí))_第4頁
abap--一個功能非常全面的增強出口查找工具(僅供學(xué)習(xí))_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、2007/03/19/1533453.aspx2006/09/16/1231652.aspx2006/09/16/1230344.aspx2005/02/05/281437.aspx*&-&* *& Report: Z_USEREXIT (V9) &* *&-&* *& This report attmpts to find Enhancements, Program-Exits, BADIs &* *& and Business Transaction Events in a particular program/tco

2、de. &* *& Last updated: 09 May 2007 &* *&-&* *& Selection Texts: *& P_ALV ALV format *& P_AUTH Include authority-check search *& P_BADI Display BADIs *& P_BTE Display business trans events *& P_DEVC Show development class exits *& P_EXIT Display user e

3、xits *& P_FUNC Show function modules *& P_LIMIT Limit no. of submits to search *& P_LST Standard list format *& P_PNAME Program name *& P_PROG Display program exits *& P_SUBM Show submits *& P_TCODE Transaction code *& P_TEXT Search for text *& P_WFLOW Display wor

4、kflow links *&-&* *& Text symbols: *& M01 Enter TCode or program *& M02 Enter at least one scope criteria *& S01 Selection data (TCode takes precedence over program name) *& S02 Scope criteria *& S03 Display criteria *&-&* report z_userexit no standard page he

5、ading line-size 201. tables: sxs_attr, tobjt, tstct, "TCode texts trdirt, "Program texts sxc_exit. "BADI exits type-pools: slis. "Globale Typen fr generische Listbausteine data: tabix like sy-tabix, w_linnum type i, w_off type i, w_index like sy-tabix, w_include like trdir-name,

6、w_prog like trdir-name, w_incl like trdir-name, w_area like rs38l-area, w_level, w_str(50) type c, w_cnt(2) type c, w_funcname like tfdir-funcname, w_fsel like sy-ucomm, " Determination of screen field w_gridtxt(70) type c. "ALV grid title constants: c_fmod(40) type c value 'Function m

7、odules searched: ', c_subm(40) type c value 'Submit programs searched: ', c_devc(60) type c value 'User-exits from development classes in function modules', c_col1(12) type c value 'Enhanmt Type', c_col2(40) type c value 'Enhancement', c_col3(30) type c value '

8、;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

9、9;, c_x type c value 'X'. * 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

10、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_enlfd

11、ir. * 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: e

12、nd 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 w

13、a_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:

14、 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, colour(4) type c, end of t_userexit. data: i_userexit type standard table of t_userexit with header line. * Function module developmnet classes types: be

15、gin of t_devclass, clas like trdir-clas, end of t_devclass. data: i_devclass type standard table of t_devclass 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

16、code types: begin of t_sourcetab, "#EC * (SLIN lgt!) line(200), "#EC * (SLIN lgt!) end of t_sourcetab. "#EC * (SLIN lgt!) 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

17、 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_keyword

18、s. 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 li

19、ne. * ALV definitions data i_fieldcat type slis_t_fieldcat_alv with header line. data i_layout type slis_layout_alv. data i_sort type slis_t_sortinfo_alv with header line. *&-&* *& Selection Options &* *&-&* selection-screen begin of block selscr1 with frame title text-s01. p

20、arameter: p_pname like trdir-name, p_tcode like syst-tcode, p_limit(4) type n default 500. selection-screen skip. selection-screen end of block selscr1. selection-screen begin of block selscr2 with frame title text-s02. parameter: p_badi as checkbox default c_x, p_bte as checkbox default c_x, p_exit

21、 as checkbox default c_x, p_prog as checkbox default c_x, p_wflow as checkbox, p_auth as checkbox. selection-screen skip. parameter: p_text(40) type c. selection-screen end of block selscr2. selection-screen begin of block selscr3 with frame title text-s03. parameter: p_alv radiobutton group rad1 de

22、fault 'X', p_lst radiobutton group rad1. selection-screen skip. parameter: p_devc like rihea-dy_ofn default ' ' modif id a01, p_func like rihea-dy_ofn default ' ' modif id a01, p_subm like rihea-dy_ofn default ' ' modif id a01. selection-screen end of block selscr3. *

23、&-&* *& START-OF-SELECTION &* *&-&* start-of-selection. if p_pname is initial and p_tcode is initial. message i000(g01) with text-m01. stop. endif. if p_badi is initial and p_exit is initial and p_bte is initial and p_wflow is initial and p_auth is initial and p_prog is initi

24、al. message i000(g01) with text-m02. 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 &* *&-&* *&

25、&* *&-&* 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 . &

26、quot;#EC * * get TCode name for ALV grid title clear w_gridtxt. if not p_tcode is initial. select single * from tstct where tcode = p_tcode and sprsl = sy-langu. concatenate 'TCode:' p_tcode tstct-ttext into w_gridtxt separated by space. endif. * get program name for ALV grid title if not p_

27、pname is initial. select single * from trdirt where name = p_pname and sprsl = sy-langu. concatenate 'Program:' p_pname tstct-ttext into w_gridtxt separated by space. endif. * determine search words keywords-word = 'CALL'. append keywords. keywords-word = 'FORM'. append keywo

28、rds. keywords-word = 'PERFORM'. append keywords. keywords-word = 'SUBMIT'. append keywords. keywords-word = 'INCLUDE'. append keywords. keywords-word = 'AUTHORITY-CHECK'. append keywords. if not p_tcode is initial. * get program name from TCode select single pgmna fro

29、m 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 reference 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) =

30、 '/'. 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-pg

31、mna. if sy-subrc <> 0. message s110(/saptrx/asc) with 'No program found for: ' p_tcode."#EC NOTEXT stop. endif. else. message s110(/saptrx/asc) with 'No program found for: ' p_tcode."#EC NOTEXT stop. endif. endif. endif. * Call customer-function aus Program coding rea

32、d 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. "#EC if sy-subrc > 0. &quo

33、t;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_

34、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

35、' 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

36、ne c_x. clear: i_stoken, i_sstmnt, sourcetab, wa_tfdir, w_include . refresh: i_stoken, i_sstmnt, sourcetab. 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 prog

37、ram = 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

38、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-pna

39、me2. w_incl = i_fmodule-pname. perform data_search tables i_stoken using w_level w_prog w_incl. endif. endif. endloop. * store development classes if p_devc = c_x. loop at i_fmodule. clear: wa_tadir, wa_enlfdir. select single area from enlfdir into wa_enlfdir-area where funcname = i_fmodule-name. ch

40、eck 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. i_fmodule-done =

41、 c_x. modify i_fmodule. endloop. sort i_devclass. delete adjacent duplicates from i_devclass. endif. endform. "GET_FM_DATA *&-&* *& Form GET_SUBMIT_DATA &* *&-&* *& &* *&-&* form get_submit_data. * data selection message to sap gui call function 'SAPG

42、UI_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'

43、;. loop at i_submit where done ne c_x. clear: i_stoken, i_sstmnt, sourcetab. refresh: i_stoken, i_sstmnt, sourcetab. read report i_submit-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

44、> 0. * message e130(enhancement) raising syntax_error. 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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論