EXIT 出口查找程序
SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L1S31 {font-style: italic;color: #808080;}.L1S32 {color: #3399FF;}.L1S33 {color: #4DA619;}.L1S52 {color: #0000FF;}*&---------------------------------*
*&?Report??Z_EXIT_FIND
*&
*&---------------------------------*
*&
*&
*&---------------------------------*
REPORT??Z_EXIT_FIND?NO?STANDARD?PAGE?HEADING.
*REPORT?z_barry_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.