查找badiexit
*?Program?Title:查找用戶出口跟BADI
*
*?Created?by:? ??????????????????????????????????
*
*?Description:??查找用戶出口跟BADI???輸入相應的Tcode
*?Module?name:?無
*?Type:?REPORT
*?Special?note:?None
**----------------------------------------------------------------------
*?Associated?program:?No?programs?are?associated
*-----------------------------------------------------------------------
*?Restriction:??No?restriction
REPORT??ZUSER_EXIT?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.
————————————————
版權聲明:本文為CSDN博主「SAP劍客」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zhongguomao/article/details/8030035
總結
以上是生活随笔為你收集整理的查找badiexit的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sockscap on linux: w
- 下一篇: SAP_ABAP_BADI AND NE