找出口程序
************************************************************************
*?Program?Title:查找用戶出口跟BADI
*
*?Created?by:毛建?????????????????????????????????????Date?:2012年9月28日
*
*?Description:??查找用戶出口跟BADI???輸入相應的Tcode
*?Module?name:?無
*?Type:?REPORT
*?Special?note:?None
**----------------------------------------------------------------------
*?Associated?program:?No?programs?are?associated
*-----------------------------------------------------------------------
*?Restriction:??No?restriction
************************************************************************
REPORT??Z_FIND_EXIT_BADI?NO?STANDARD?PAGE?HEADING.
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.
??????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.
??????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.
*?Program?Title:查找用戶出口跟BADI
*
*?Created?by:毛建?????????????????????????????????????Date?:2012年9月28日
*
*?Description:??查找用戶出口跟BADI???輸入相應的Tcode
*?Module?name:?無
*?Type:?REPORT
*?Special?note:?None
**----------------------------------------------------------------------
*?Associated?program:?No?programs?are?associated
*-----------------------------------------------------------------------
*?Restriction:??No?restriction
************************************************************************
REPORT??Z_FIND_EXIT_BADI?NO?STANDARD?PAGE?HEADING.
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.
??????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.
??????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.
總結
- 上一篇: SAP MM MoveMent Type
- 下一篇: 关于SmartForm和ScriptFo