*&---------------------------------------------------------------------*
*& 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 with header line.
data: field1().
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-.
selection-screen skip.
parameters: p_tcode like tstc-tcode obligatory.
selection-screen skip.
parameters: exit radiobutton group default 'X',
badi radiobutton group .
selection-screen end of block a01. define bdc_program.
clear bdcdata_wa.
bdcdata_wa-program = &.
bdcdata_wa-dynpro = &.
bdcdata_wa-dynbegin = &.
append bdcdata_wa to bdcdata_tab.
end-of-definition.
define bdc_detail.
clear bdcdata_wa.
bdcdata_wa-fnam = &.
bdcdata_wa-fval = &.
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 . " 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 .
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: /() 'Transaction Code - ',
() p_tcode,
() tstct-ttext.
skip.
if not jtab[] is initial. " IF 2
write: /() sy-uline.
format color col_heading intensified on.
* Exit:
if exit = 'X'.
write: / sy-vline,
'Exit Name',
sy-vline ,
'Description',
sy-vline.
* BADI:
else.
write: / sy-vline,
'BADI Name',
sy-vline ,
'Description',
sy-vline.
endif.
write:/() 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: / sy-vline,
jtab-obj_name hotspot on,
sy-vline ,
modsapt-modtext,
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: / sy-vline,
jtab-obj_name hotspot on,
sy-vline ,
sxs_attrt-text,
sy-vline.
endif.
endloop.
write: /() 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: /() 'No User Exit exists'.
endif. " IF 2
else. " IF 1
format color col_negative intensified on.
write: /() '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() eq 'JTAB'.
* For exit:
if exit = 'X'.
set parameter id 'MON' field sy-lisel+().
call transaction 'SMOD' and skip first screen.
* For BADI:
else.
clear: bdcdata_wa, bdcdata_tab[].
bdc_program 'SAPLSEXO' '' 'X'.
bdc_detail 'BDC_CURSOR' 'G_IS_BADI'.
bdc_detail 'BDC_OKCODE' '=ISSPOT'.
bdc_detail 'G_IS_BADI' 'X'.
bdc_program 'SAPLSEXO' '' 'X'.
bdc_detail 'BDC_CURSOR' 'G_BADINAME'.
bdc_detail 'BDC_OKCODE' '=SHOW'.
bdc_detail 'G_BADINAME' sy-lisel+().
opt-dismode = 'E'.
opt-defsize = 'X'.
call transaction 'SE18' using bdcdata_tab options from opt.
endif.

查找增强出口和BADI程序的更多相关文章

  1. 【ABAP系列】SAP ABAP模块-查找系统出口或BADI的方法

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP模块-查找系统出 ...

  2. 查找SAP标准程序用户出口及BADI的方法

    查找SAP标准事务代码中使用的BADI: 在SE24中,查看类对象CL_EXITHANDLER,在其方法(Methods)GET_INSTANCE 的第14行打断点,之后运行事务代码: 当有BADI将 ...

  3. sap 三代出口(BADI)的查找方法

    sap 三代出口(BADI)的查找方法 对于根据事务代码查找对应的BADI,网上介绍的方法很多,但总结下来无非就两种方法,在此把它记录下来,方便以后自己查阅了.(1)通过SE24,输入CL_EXITH ...

  4. SAP 增强-出口选找方法-全部

    ■ SAP 中如何寻找增强 方法一:利用TCODE寻找增强(第二代的增强) 执行一个程序(源代码后附),在选择屏幕处输入你所需要增强的程序TCODE,执行後,就会出现一个列表,那里就有关于如何增强这个 ...

  5. ABAP FIELD-SYMBOLS 有大作用- 将没有可改参数的增强出口变得也能改主程序的值了

    看下图代码: report  z_xul_test2 中 定义了 全局变量 G_DATA1 , 分别调用了 z_xul_tes1 中的 form  和 function zbapi_test , 这两 ...

  6. ABAP FIELD-SYMBOLS 有大作用- 将没有可改參数的增强出口变得也能改主程序的值了

    看下图代码: report  z_xul_test2 中 定义了 全局变量 G_DATA1 , 分别调用了 z_xul_tes1 中的 form  和 function zbapi_test , 这两 ...

  7. page61-将二分查找重写为一段面向对象的程序

    1 将二分查找重写为一段面向对象的程序 (用于在整数集合中进行查找的一种抽象数据类型) public class StaticSETofInts [API] StaticSETofInts(int[] ...

  8. SAP ABAP 查找用户出口

    1.查找事物代码程序名 2.查找用户出口 T-CODE:SE80 在子例程中查找以USEREXIT开头的子程序.

  9. SAP基本搜索帮助及增强出口

    se11创建基本搜索帮助时,各个参数的含意 选择方法   指定命中列表的数据来源,可以是数据库表,视图,CDS.如果指定了搜索帮助出口函数则该字段可以不输,数据来源可以在出口中自行指定 对话类型: 输 ...

随机推荐

  1. base64与byte[]之间转换

    主要是根据BASE64Encoder 和BASE64Decoder 进行操作实现,具体例子如下: BASE64Encoder encode = new BASE64Encoder(); //将byte ...

  2. 题目描述: k一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    时间限制:1秒     空间限制:32768k 斐波那契数列指的是这样一个数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,9 ...

  3. vs快捷键大全

    前言 作为一个.net开发员,你还在用鼠标去点击相应的操作么?如果你回答是,那么你太low了! 一个很厉害的程序员不会是那种这鼠标到处狂点的人,他们肯定会很多快捷键,所以为了离他们更近一步,我们必须学 ...

  4. Tomcat去除项目名称和端口号,直接使用ip地址访问项目的方法

    网站开发过程中,一般的工程访问路径是 http://112.74.51.37/projectName如何设置成http://112.74.51.37/ 解决方法: 首先,进入tomcat的安装目录下的 ...

  5. 后端学 Angular 2 —— 组件间通信

    1. 父组件向子组件传递信息 使用@Input 子组件的属性用 @Input 进行修饰,在父组件的模板中绑定变量 例子: import { Component, OnInit, Input } fro ...

  6. tensorflow安装日志(PIP)

    最近刚刚接触深度学习,安装一下tf 环境:华硕Z170主板.i7 6700k.GTX1070.Ubuntu16.04.Python2.7 在这之前先装好了cuda8.0.cudnn5.0.caffe整 ...

  7. Fragment全解析系列(二):正确的使用姿势

    作为一个稳定的app,从后台且回到前台,一定会在任何情况都能恢复到离开前的页面,并且保证数据的完整性. 如果你没看过本系列的第一篇,为了方便后面文章的介绍,先规定一个"术语",安卓 ...

  8. Java进行post和get传参数

    http://www.cnblogs.com/zhuawang/archive/2012/12/08/2809380.html get和post方法 import java.io.BufferedRe ...

  9. 【转】关于phpcms的学习

    在实现PHPCMS网站过程中,根据业务需求,我们遇到很多问题,特此总结如下,以便大家参考学习. [1]PHPCMS V9系统目录简析 在研究所有问题之前,请先了解一下系统的文件目录结构,具体如下图所示 ...

  10. HTML5 CANVAS 实现图片压缩和裁切

    原文地址:http://leonshi.com/2015/10/31/html5-canvas-image-compress-crop/?utm_source=tuicool&utm_medi ...