您的位置:首页 > 其它

查找Exit 和 BADI 的程序

2012-05-16 15:03 267 查看
TABLES : tstc,tadir,modsapt,modact,trdir,tfdir,enlfdir,sxs_attrt,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,

p_pgmna LIKE tstc-pgmna .

DATA wa_tadir TYPE tadir.

DATA: bdc_tab type STANDARD TABLE OF bdcdata,

wa_bdc_tab type bdcdata.

START-OF-SELECTION.

IF NOT p_tcode IS INITIAL.

SELECT SINGLE * FROM tstc WHERE tcode EQ p_tcode.

ELSEIF NOT p_pgmna IS INITIAL.

tstc-pgmna = p_pgmna.

ENDIF.

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 IN ('SMOD', 'SXSD')

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:/(105) sy-uline.

FORMAT COLOR COL_HEADING INTENSIFIED ON.

* SORTING THE INTERNAL TABLE

SORT jtab BY object.

DATA : wf_txt(60) TYPE c,

wf_smod TYPE i ,

wf_badi TYPE i ,

wf_object2(30) TYPE c.

CLEAR : wf_smod, wf_badi , wf_object2.

*GET THE TOTAL SMOD.

LOOP AT jtab INTO wa_tadir.

AT FIRST.

FORMAT COLOR COL_HEADING INTENSIFIED ON.

WRITE:/1 sy-vline,

2 'Enhancement/ Business Add-in',

41 sy-vline ,

42 'Description',

105 sy-vline.

WRITE:/(105) sy-uline.

ENDAT.

CLEAR wf_txt.

AT NEW object.

IF wa_tadir-object = 'SMOD'.

wf_object2 = 'Enhancement' .

ELSEIF wa_tadir-object = 'SXSD'.

wf_object2 = ' Business Add-in'.

ENDIF.

FORMAT COLOR COL_GROUP INTENSIFIED ON.

WRITE:/1 sy-vline,

2 wf_object2,

105 sy-vline.

ENDAT.

CASE wa_tadir-object.

WHEN 'SMOD'.

wf_smod = wf_smod + 1.

SELECT SINGLE modtext INTO wf_txt

FROM modsapt

WHERE sprsl = sy-langu

AND name = wa_tadir-obj_name.

FORMAT COLOR COL_NORMAL INTENSIFIED OFF.

WHEN 'SXSD'.

* FOR BADIS

wf_badi = wf_badi + 1 .

SELECT SINGLE text INTO wf_txt

FROM sxs_attrt

WHERE sprsl = sy-langu

AND exit_name = wa_tadir-obj_name.

FORMAT COLOR COL_NORMAL INTENSIFIED ON.

ENDCASE.

WRITE:/1 sy-vline,

2 wa_tadir-obj_name HOTSPOT ON,

41 sy-vline ,

42 wf_txt,

105 sy-vline.

AT END OF object.

WRITE : /(105) sy-uline.

ENDAT.

ENDLOOP.

WRITE:/(105) sy-uline.

SKIP.

FORMAT COLOR COL_TOTAL INTENSIFIED ON.

WRITE:/ 'No.of Exits:' , wf_smod.

WRITE:/ 'No.of BADis:' , wf_badi.

ELSE.

FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.

WRITE:/(105) 'No userexits or BADis exist'.

ENDIF.

ELSE.

FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.

WRITE:/(105) 'Transaction does not exist'.

ENDIF.

AT LINE-SELECTION.

DATA : wf_object TYPE tadir-object.

CLEAR wf_object.

GET CURSOR FIELD field1.

CHECK field1(8) EQ 'WA_TADIR'.

READ TABLE jtab WITH KEY obj_name = sy-lisel+1(20).

MOVE jtab-object TO wf_object.

CASE wf_object.

WHEN 'SMOD'.

SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).

CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.

WHEN 'SXSD'.

SET PARAMETER ID 'EXN' FIELD sy-lisel+1(20).

CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.

ENDCASE.



文章转载于:http://www.abap-tutorials.com/2009/07/05/user-exits-and-badi-list-for-a-t-code/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐