ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

查找增强程序

2019-07-06 09:56:16  阅读:228  来源: 互联网

标签:增强 wa 程序 sy WRITE 查找 vline bdcdata WHERE


*&---------------------------------------------------------------------*
*& Report Z_FIND_EXIT_AND_BADI
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZT_FIND_COMD 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,
'Exit Name',
sy-vline ,
'Description',
sy-vline.
* BADI:
ELSE.
WRITE: /1 sy-vline,
'BADI Name',
sy-vline ,
'Description',
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,
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: /1 sy-vline,
jtab-obj_name HOTSPOT ON,
sy-vline ,
sxs_attrt-TEXT,
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.

 

标签:增强,wa,程序,sy,WRITE,查找,vline,bdcdata,WHERE
来源: https://www.cnblogs.com/WACBZWY/p/11141640.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有