出口和BADI查詢
*&---------------------------------------------------------------------*
*& Report Z_FIND_EXIT_AND_BADI
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
report z_find_exit_and_badi no standard page heading.
*&---------------------------------------------------------------------*
*& Enter the transaction code that you want to search through in order
*& to find which Standard SAP User Exits and BADIs
*&
*&---------------------------------------------------------------------*
*& For field 'SUBC' of table 'TRDIR':
*& M Module Pool
*& F Function group
*& S Subroutine Pool
*& J Interface pool
*& K Class pool
*& T Type Pool
*& X XSLT Program
*&---------------------------------------------------------------------*
*& Tables
*&---------------------------------------------------------------------*
tables: tstc , " SAP Transaction Codes
tadir , " Directory of Repository Objects
modsapt , " SAP Enhancements - Short Texts
sxs_attrt, " SAP BADI - short text
modact , " Modifications
trdir , " System table TRDIR
tfdir , " Function Module
enlfdir , " Additional Attributes for Function Modules
tstct . " Transaction Code Texts
*&---------------------------------------------------------------------*
*& Variables
*&---------------------------------------------------------------------*
data: jtab like tadir occurs 0 with header line.
data: field1(30).
data: v_devclass like tadir-devclass.
data: object like tadir-object.
data: bdcdata_wa type bdcdata,
bdcdata_tab type table of bdcdata.
data: opt type ctu_params.
*&---------------------------------------------------------------------*
*& Selection Screen Parameters
*&---------------------------------------------------------------------*
selection-screen begin of block a01 with frame. title text-001.
selection-screen skip.
parameters: p_tcode like tstc-tcode obligatory.
selection-screen skip.
parameters: exit radiobutton group 1 default 'X',
badi radiobutton group 1.
selection-screen end of block a01.
define bdc_program.
clear bdcdata_wa.
bdcdata_wa-program = &1.
bdcdata_wa-dynpro = &2.
bdcdata_wa-dynbegin = &3.
append bdcdata_wa to bdcdata_tab.
end-of-definition.
define bdc_detail.
clear bdcdata_wa.
bdcdata_wa-fnam = &1.
bdcdata_wa-fval = &2.
append bdcdata_wa to bdcdata_tab.
end-of-definition.
*&---------------------------------------------------------------------*
*& Start of main program
*&---------------------------------------------------------------------*
start-of-selection.
if exit = 'X'.
bject = 'SMOD'. " User-exit!
else.
bject = 'SXSD'. " BADI!
endif.
* Validate Transaction Code:
select single * from tstc where tcode eq p_tcode.
* Find Repository Objects for transaction code:
if sy-subrc eq 0. " IF 1
select single * from tadir where pgmid = 'R3TR'
and object = 'PROG'
and obj_name = tstc-pgmna."Program
* name!
move: tadir-devclass to v_devclass. " Package
if sy-subrc ne 0.
select single * from trdir where name = tstc-pgmna.
if trdir-subc eq 'F'. " Function Group
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 object = object
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. " IF 2
write: /(95) sy-uline.
format color col_heading intensified on.
* Exit:
if exit = 'X'.
write: /1 sy-vline,
2 'Exit Name',
22 sy-vline ,
23 'Description',
95 sy-vline.
* BADI:
else.
write: /1 sy-vline,
2 'BADI Name',
22 sy-vline ,
23 'Description',
95 sy-vline.
endif.
write:/(95) sy-uline.
loop at jtab.
* EXIT:
if exit = 'X'.
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,
22 sy-vline ,
23 modsapt-modtext,
95 sy-vline.
* BADI:
else.
select single * from sxs_attrt where sprsl = sy-langu
and exit_name =
jtab-obj_name.
format color col_normal intensified off.
write: /1 sy-vline,
2 jtab-obj_name hotspot on,
22 sy-vline ,
23 sxs_attrt-text,
95 sy-vline.
endif.
endloop.
write: /(95) sy-uline.
describe table jtab.
skip.
format color col_total intensified on.
if exit = 'X'.
write: / 'No of Exits:', sy-tfill.
else.
write: / 'No of BADIs:', sy-tfill.
endif.
else. " IF 2
format color col_negative intensified on.
write: /(95) 'No User Exit exists'.
endif. " IF 2
else. " IF 1
format color col_negative intensified on.
write: /(95) 'Transaction Code Does Not Exist'.
endif. " IF 1
* Take the user to SMOD for the Exit that was selected:
at line-selection.
get cursor field field1.
check field1(4) eq 'JTAB'.
* For exit:
if exit = 'X'.
set parameter id 'MON' field sy-lisel+1(10).
call transaction 'SMOD' and skip first screen.
* For BADI:
else.
clear: bdcdata_wa, bdcdata_tab[].
bdc_program 'SAPLSEXO' '0100' 'X'.
bdc_detail 'BDC_CURSOR' 'G_IS_BADI'.
bdc_detail 'BDC_OKCODE' '=ISSPOT'.
bdc_detail 'G_IS_BADI' 'X'.
bdc_program 'SAPLSEXO' '0100' 'X'.
bdc_detail 'BDC_CURSOR' 'G_BADINAME'.
bdc_detail 'BDC_OKCODE' '=SHOW'.
bdc_detail 'G_BADINAME' sy-lisel+1(20).
opt-dismode = 'E'.
opt-defsize = 'X'.
call transaction 'SE18' using bdcdata_tab options from opt.
endif.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-1595635/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 根據TCode查詢User Exit and BADI
- 查詢一個事務程式碼所使用的BADI
- SQL查詢的:子查詢和多表查詢SQL
- oracle 精確查詢和模糊查詢Oracle
- MySQL聯結查詢和子查詢MySql
- 排序和查詢排序
- Elasticsearch中的Term查詢和全文查詢Elasticsearch
- MySQL之連線查詢和子查詢MySql
- 順序查詢和二分查詢
- SSH:hiberate實現資料的查詢(單查詢和全查詢)
- Hibernate通常是三種:hql查詢,QBC查詢和QBE查詢:
- MySQL——優化巢狀查詢和分頁查詢MySql優化巢狀
- MySQL全面瓦解11:子查詢和組合查詢MySql
- 理解索引(中):MySQL查詢過程和高階查詢索引MySql
- 物件點查詢和中括號查詢的區別物件
- 字串查詢和替換字串
- elasticsearch 查詢(match和term)Elasticsearch
- 查詢SGA和PGA大小
- 陣列的查詢(搜尋):線性查詢和二分法查詢陣列
- BAdI簡介
- BAdI: Web ItemWeb
- BAdI: InfoSpoke with TransformationORM
- 區分關聯子查詢和非關聯子查詢
- exist-in和關聯子查詢-非關聯子查詢
- c++map 查詢元素和list查詢元素速度對比C++
- Java 查詢和高亮Word文字Java
- Java陣列排序和查詢Java陣列排序
- 成語收錄和查詢
- 表空間查詢和管理
- 03_查詢和檢索
- cassandra的索引查詢和排序索引排序
- 全文索引和查詢概念索引
- 表和索引並行查詢索引並行
- 通訊錄查詢和新增
- 資料的儲存和查詢分離不利查詢效能 - thenewstack
- 關於MySQL 通用查詢日誌和慢查詢日誌分析MySql
- 如何找東西?查詢演算法之順序查詢和二分查詢詳解演算法
- 查詢之折半查詢