abap 增强查找小程序
*&---------------------------------------------------------------------*
*& Report ZEXIT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZEXIT_LZX.
TABLES: TSTC , "SAPTransaction Codes
TADIR , " Directory of Repository Objects
MODSAPT , " SAP Enhancements - Short Texts
SXS_ATTRT, " SAPBADI- 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.
DATA: L_NAME LIKE MODSAP-NAME,
L_MEMBER LIKE MODSAP-MEMBER,
L_STEXT LIKE TFTIT-STEXT.
*&---------------------------------------------------------------------*
*& 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'.
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 = OBJECT "SMOD
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: /(100) SY-ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
* Exit:
IF EXIT = 'X'.
WRITE: /1 SY-VLINE,
2 'Exit Name',
22 SY-VLINE ,
23 'Description',
100 SY-VLINE.
* BADI:
ELSE.
WRITE: /1 SY-VLINE,
2 'BADI Name',
22 SY-VLINE ,
23 'Description',
100 SY-VLINE.
ENDIF.
WRITE:/(100) 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 ON.
WRITE: /1 SY-VLINE,
2 JTAB-OBJ_NAME HOTSPOT ON,
22 SY-VLINE ,
23 MODSAPT-MODTEXT,
100 SY-VLINE.
CLEAR: L_NAME,
L_MEMBER,
L_STEXT.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
SELECT MODSAP~NAME
MODSAP~MEMBER
INTO (L_NAME,L_MEMBER)
FROM MODSAP
WHERE MODSAP~NAME = JTAB-OBJ_NAME
AND MODSAP~TYP <> ''
.
IF L_MEMBER IS NOT INITIAL.
SELECT SINGLE TFTIT~STEXT
INTO L_STEXT
FROM TFTIT
WHERE TFTIT~FUNCNAME = L_MEMBER
.
ENDIF.
WRITE: /1 SY-VLINE,
5 L_MEMBER,
22 SY-VLINE ,
23 L_STEXT,
100 SY-VLINE.
ENDSELECT.
* 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,
100 SY-VLINE.
ENDIF.
ENDLOOP.
WRITE: /(100) 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: /(100) 'No User Exit exists'.
ENDIF. " IF 2
ELSE. " IF 1
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE: /(100) '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.
abap 增强查找小程序的更多相关文章
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- 微信小程序开发心得
微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司 ...
- 微信应用号(小程序)开发IDE配置(第一篇)
2016年9月22日凌晨,微信宣布“小程序”问世,当然只是开始内测了,微信公众平台对200个服务号发送了小程序内测邀请.那么什么是“小程序”呢,来看微信之父怎么说 看完之后,相信大家大概都有些明白了吧 ...
- TODO:小程序开发过程之体验者
TODO:小程序开发过程之体验者 1. 小程序开发过程,先下载开发者并安装开发者工具,现在腾讯开放测试了,普通用户也可以登录开发者工具,如图普通用户登录为调试类型,但是只能建立无AppID的项目 如果 ...
- TODO:即将开发的第一个小程序
TODO:即将开发的第一个小程序 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验.个人理解小程序是寄宿在微信平台上的一个前端框架,具有跨平台功能, ...
- 微信小程序体验(2):驴妈妈景区门票即买即游
驴妈妈因为出色的运营能力,被腾讯选为首批小程序内测单位.驴妈妈的技术开发团队在很短的时间内完成了开发任务,并积极参与到张小龙团队的内测问题反馈.驴妈妈认为,移动互联网时代,微信是巨大的流量入口,也是旅 ...
- 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)
转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...
- 微信小程序(微信应用号)组件讲解
这篇文章主要讲解微信小程序的组件. 首先,讲解新建项目.现在有句话:招聘三天以上微信小程序开发,这个估计只能去挖微信的工程师了.技术新,既然讲解,那我们就从开始建项目讲解. 打开微信web开发者工具, ...
- 神技!微信小程序(应用号)抢先入门教程(附最新案例DEMO-豆瓣电影)持续更新
微信小程序 Demo(豆瓣电影) 由于时间的关系,没有办法写一个完整的说明,后续配合一些视频资料,请持续关注 官方文档:https://mp.weixin.qq.com/debug/wxadoc/de ...
随机推荐
- 【托业】【跨栏】TEST04
16~20 16 17 18 19 20 REVIEW TEST4
- 关闭 synactive guixt. 在sap gui的右上角一个标志里,将 active guixt 选项去掉即可。
关闭 synactive guixt. 在sap gui的右上角一个标志里,将 active guixt 选项去掉即可.
- Git常用功能记录
1. git查看某个文件的修改历史 git log --pretty 然后使用下面的命令可列出文件的所有改动历史,注意,这里着眼于具体的一个文件,而不是git库,如果是库,那改动可多了去了- git ...
- 怎么eclipse或MyEclipse中添加javaSe的源码
怎么eclipse或MyEclipse中添加javaSe的源码 有时在eclipse里我们调用java提供给我们的方法,我们有时需要查看java提供给我们的调用方法的源码或java提供给我们的核心类的 ...
- Oracle debug
执行慢的使用使用debug环境变量,可以收集详细的日志 rootcrs.pl/roothas.pl执行慢 参考如下文档设置debug环境变量,重现问题并收集详细日志. How to turn on r ...
- ubuntu安装zabbix 3.2(转)
转自:http://www.zabbix.org.cn/viewtopic.php?f=13&t=1096本人略做了写修改. 准备工作 apt-get update apt-get upgra ...
- 我对MVC的理解
1. MVC :M模型 V视图 C控制器 1.1 模型是用来处理业务逻辑的,里面由许多类构成 1.2 视图是用来显示界面的 1.3 控制器是一个中间人,它通过视图的提交方式(post, ...
- 北京大学Cousera学习笔记--8-计算导论与C语言基础--C的运算部分
赋值运算符 1.两边类型不同:赋值时要进行类型转换,右边要转换到左边 2.长数赋值短数 最后的部分截断赋值给短数 3.短数赋给长数 数不变 4.符号位赋值 --计算机不区分符号位数字位,直接赋值 表达 ...
- C#中类成员的执行顺序
先进行细分: 类的成员分为:字段.属性.方法.构造方法 成员的修饰符:静态成员.实例成员 层次结构:父类.子类 先不考虑继承关系,执行顺序为: 静态字段静态构造方法实例字段实例构造方法属性和方法是在调 ...
- NuGet的简单使用
什么是NuGet? NuGet(读作New Get)是用于微软.NET开发平台的软件包管理器,是一个Visual Studio的扩展.在使用Visual Studio开发基于.NET Framewor ...