ZFIND_EXIT_BADI
*&---------------------------------------------------------------------*
*& Report ZFIND_EXIT_BADI
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z_find_userexit_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'.
object = 'SMOD'. " User-exit!
ELSE.
object = '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.
ZFIND_EXIT_BADI的更多相关文章
随机推荐
- Spring Boot 默认配置无法访问静态资源
问题:将资源放在resources/static目录下,Spring boot不能加载 解决:在启动文件中,添加如下红字部分. @SpringBootApplication @Configuratio ...
- Spring拓展接口之BeanPostProcessor,我们来看看它的底层实现
前言 开心一刻 小明:“妈,我被公司开除了”,妈:“啊,为什么呀?”, 小明:“我骂董事长是笨蛋,公司召开高层会议还要起诉我”,妈:“告你诽谤是吧?”,小明:“不是,他们说要告我泄露公司机密” Bea ...
- xtu字符串 B. Power Strings
B. Power Strings Time Limit: 3000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java c ...
- php引入PHPMailer发送邮件
昨天做了一个发送邮件的功能,如果直接用mail()函数,需要拥有自己的邮件服务器,所有引入PHPMailer类方便快捷,简单写一下开发步骤: 一.拥有自己的邮箱账号(作为发件人邮箱) 分两种情况: 1 ...
- [luoguP2618] 数字工程(DP)
传送门 离线处理... 先线性筛一遍. 直接预处理出所有答案. 注意要用push,用乘法,常数小. #include <cstdio> #include <cstring> # ...
- HDU 4651 (生成函数)
HDU 4651 Partition Problem : n的整数划分方案数.(n <= 100008) Solution : 参考资料: 五角数 欧拉函数 五边形数定理 整数划分 一份详细的题 ...
- ASP.NET Core小技巧
设定开发环境为开发模式,呈现具体错误内容 dotnet run启动时,会在环境变量中查找ASPNETCORE_ENVIRONMENT变量的值,如果没有,则默认会当做Production来处理,隐藏错误 ...
- hdu6080(最小环)
题目 http://acm.hdu.edu.cn/showproblem.php?pid=6080 分析 很妙的思路,将里面的点集当作A,将外面的点集当作B 然后O(n^2)枚举两两B点,设一个是u, ...
- SVN 学习笔记-高级操作
所谓高级操作,只是曲高和寡,其实都不怎么用的.但是关键时候,可能会很有用. 这个高级只是针对基本操作而言.有些操作可能也是比较基本的. 清除锁 有时候我们在操作的时候,可能系统崩溃了,或者SVN非正常 ...
- 石家庄地铁查询PSP0级
一.需求 :地铁(石家庄地铁)线路查询 二. 学生:洪鼎淇 合作对象:宋子健 时间记录日志: 日期 开始时间 结束时间 中断时间 净时间 活动 2019/3/30 10:00 14:0 ...