*&---------------------------------------------------------------------*
*& Report Z_FIND_ENHANCEMENT2
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT Z_FIND_ENHANCEMENT2.

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.

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.

ABAP_增强点查找的更多相关文章

  1. 几种sap增强的查找方法

    ***方法一**************************************** 通过SE30,运行TCODE后,点Evaluate后,查看运行时间分析评估:命中清单. 找以“exit”开 ...

  2. 关于EXIT和BADI增强的查找

    EXIT出口的查找: 方法一: 第一步:通过SE30,输入TCODE(例如ME21N),执行EXCUTE,前台创建一张采购订单.点击TIMES页签,查找EXIT开头的SAP程序.  第二步:这些fun ...

  3. SAP 增强篇 Method1 BADI增强的查找方法

    查找BADI的方法:(1)通过SE24,输入CL_EXITHANDLER,然后在方法GET_INSTANCE中设置断点,然后运行事务代码判断 exit_name的值,操作过程如下:输入se24,然后输 ...

  4. SAP增强总结-第二代增强(SMOD、CMOD)【转载】

    第二代增强比第二代增强安全性提高了很多,第一代增强毕竟是在原标准程序中修改,大部分传递参数都可以直接使用,第二代增强做了一些封装,对用户可以修改的参数做了限制. 1.增强点查找方法 首先根据事物码找到 ...

  5. SAP增强Enhancement

    第一代:基于源码增强(子过程subroutine) 第一代增强基于源代码,是SAP提供的一个空代码的子过程.在这个子过程中用户可以添加自己的代码,控制自己的需求.这类增强集中在一些文件名倒数第二个字符 ...

  6. 对CVE-2014-6271 [破壳漏洞] 的一次不太深入的跟踪

    @firtst:有些事,该你遇到的始终会遇到!2013年,Struts2远程代码执行漏洞闹的满城风雨时,当时还对此一无所知:2014年4月,HeartBleed掀起波涛汹涌时,较快对此予以关注,晚上跑 ...

  7. streamsets 3.5 的一些新功能

    streamsets 3.5 有了一些新的特性以及增强,总之是越来越方便了,详细的可以 查看官方说明,以下简单例举一些比较有意义的. origins 新的pulsar 消费origin jdbc 多表 ...

  8. 写在使用 Linux 工作一年后

    start 去年公司空了几台台式机,当时看了下似乎配置比我用的乞丐版 air 略高一些,而且除了 ssd 以外还有一个 1T 的大硬盘,加上后面可能会有一段时间不做 iOS 了,那就不需要 macOS ...

  9. 【VS开发】【电子电路技术】VPX技术介绍

    VPX技术介绍 杨跃江 2009-12-18 杨跃江 13902479857 中科祥云(深圳)信息产业有限公司 1VPX 技术 新型VPX(VITA 46)标准是自从VME引入后的25年来,对于VME ...

随机推荐

  1. 【题解】长度为素数的路径个数-C++

    Description 对于正整数n (3≤n<20),可以画出n阶的回形矩阵.下面画出的分别是3阶的,4阶的和7阶的回形矩阵: 对于n阶回形矩阵,从左上角出发,每步可以向右或向下走一格,走2* ...

  2. 【CYH-02】NOIp考砸后虐题赛:数学:题解

    赛后放上.

  3. 个人永久性免费-Excel催化剂功能第63波-当前选择区域的上下左右平移功能及跳转窗口左上角

    日常的Excel使用过程中,大部分的时间是在做选择单元格的操作,一般来说都是对指定单元格区域的内容进行一些数据处理.转换生成新数据的过程,那选择指定单元格的步骤,若能够尽最大程度地效率上得到加速,产出 ...

  4. socket发送请求,协程

    1.socket发送请求 #发送请求的方式 #方式一 import requests ret = requests.get("https://www.baidu.com/s?wd=abc&q ...

  5. Linux下gcc编译器的使用

    例:gcc -x -g c helloC -o firstC -x:改变gcc的行为.(注:如果是.c文件则不用加-x) -x c :编译c程序 -x c++ :编译c++程序 -x java :编译 ...

  6. linux初学者-磁盘阵列篇

    linux初学者-磁盘阵列篇 在磁盘的使用中,有时候需要提高磁盘的读写数据速度,就要用到磁盘组——raid,也就是磁盘阵列. 磁盘阵列是由最少两块以上的磁盘组成的,raid有许多模式,在这里将介绍其中 ...

  7. STL map 详细用法

    Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个称为该关键字的值)的数据 处理能力. 需要的库 #include <map> ...

  8. c++容器简单总结

    数据结构 描述 实现头文件 向量(vector) 连续存储的元素 <vector> 列表(list) 由节点组成的双向链表,每个结点包含着一个元素 <list> 双队列(deq ...

  9. JavaScript的面向对象原理之原型链

    二.JavaScript的对象 为了能够清楚的解释这一切,我先从对象讲起.从其他面向对象语言(如Java)而来的人可能认为在JS里的对象也是由类来实例化出来的,并且是由属性和方法组成的. 实际上在JS ...

  10. 机器学习经典分类算法 —— k-近邻算法(附python实现代码及数据集)

    目录 工作原理 python实现 算法实战 约会对象好感度预测 故事背景 准备数据:从文本文件中解析数据 分析数据:使用Matplotlib创建散点图 准备数据:归一化数值 测试算法:作为完整程序验证 ...