Professional Documents
Culture Documents
Busca Exit - Badis Nas Transações
Busca Exit - Badis Nas Transações
*&---------------------------------------------------------------------*
*& AN *
*& Data : 28.05.2009 *
*&---------------------------------------------------------------------*
*& Busca Exit's/Badis para Transa��es *
*&---------------------------------------------------------------------*
*& PF-STATUS *
*&---------------------------------------------------------------------*
*& MAIN Copiar do Programa BDLVTREE *
*&---------------------------------------------------------------------*
*& TEXT *
*&---------------------------------------------------------------------*
*& 001 Par�metros de Sele��o *
*& 002 C�digo Transacional Inv�lido *
*& 003 C�digo de Idioma Inexistente *
*& 004 Erro ao Encontrar Pacote Desenvolv. da Transa��o *
*& 005 Amplia��es *
*& 006 Raiz *
*& 007 Fun��es *
*& 009 N�o Existe Amplia��es para esta Transa��o *
*& 010 N�o Existe Badis para esta Transa��o *
*& 011 Exit's *
*& 012 Badi's *
*& 013 Badi *
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* TYPES *
*----------------------------------------------------------------------*
TYPES: BEGIN OF type_tstc,
tcode TYPE tstc-pgmna,
pgmna TYPE tstc-pgmna,
END OF type_tstc,
BEGIN OF type_obj,
pgmid TYPE tadir-pgmid ,
object TYPE tadir-object ,
obj_name TYPE modsap-name ,
END OF type_obj,
BEGIN OF type_modsap,
name TYPE modsap-name ,
typ TYPE modsap-typ ,
member TYPE tftit-funcname,
END OF type_modsap,
BEGIN OF type_badi,
pgmid TYPE tadir-pgmid ,
object TYPE tadir-object ,
obj_name TYPE sxs_attrt-exit_name,
END OF type_badi,
BEGIN OF type_modact,
name TYPE modact-name ,
typ TYPE modact-typ ,
member TYPE modact-member,
END OF type_modact,
BEGIN OF type_aux,
pgmid TYPE tadir-pgmid ,
object TYPE tadir-object ,
obj_name TYPE modact-member ,
END OF type_aux.
*----------------------------------------------------------------------*
* TABELAS *
*----------------------------------------------------------------------*
DATA: t_objetos TYPE TABLE OF type_obj , "Objetos referente as Exit's
t_mylist TYPE TABLE OF snodetext , "Tabela TREE
t_modsap TYPE TABLE OF type_modsap, "Amplia��es
t_modsapt TYPE TABLE OF modsapt , "Descri��es Amplia��es
t_obj_badi TYPE TABLE OF type_badi , "Objetos referente as Badi's
t_sxs_attrt TYPE TABLE OF sxs_attrt , "Descri��es Badi's
t_tftit TYPE TABLE OF tftit , "Texto Breve Modulos de Fun��o
t_modact TYPE TABLE OF modact , "Projetos
t_modtext TYPE TABLE OF modtext , "Descri��es dos Projetos
t_modsap_b TYPE TABLE OF type_modsap, "Amplia��es
t_tftit_b TYPE TABLE OF tftit , "Texto Breve Modulos de Fun��o
t_bdcdata TYPE TABLE OF bdcdata . "Mapeamento de Telas
*----------------------------------------------------------------------*
* VARI�VEIS *
*----------------------------------------------------------------------*
DATA v_ttext TYPE tstct-ttext. "Descri��o da Transa��o
*----------------------------------------------------------------------*
* ESTRUTURAS *
*----------------------------------------------------------------------*
DATA: st_tstc TYPE type_tstc , "C�digo Transa��o
st_modsap TYPE type_modsap. "Uso Structure
*----------------------------------------------------------------------*
* TELA DE SELE��O *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* p_tcode -> C�digo Transacional *
* p_langu -> Idioma *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* AT SELECTION SCREEN *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON p_tcode.
AT SELECTION-SCREEN ON p_langu.
*----------------------------------------------------------------------*
* START OF SELECTION *
*----------------------------------------------------------------------*
START-OF-SELECTION.
* Seleciona Dados
PERFORM: z_seleciona_dados,
* Monta Relat�rio
z_monta_relat ,
*&---------------------------------------------------------------------*
*& Form Z_VERIFICA_TCODE *
*&---------------------------------------------------------------------*
* Verifica C�digo Informado *
*----------------------------------------------------------------------*
FORM z_verifica_tcode.
CLEAR st_tstc.
*&---------------------------------------------------------------------*
*& Form Z_VERIFICA_LANGU *
*&---------------------------------------------------------------------*
* Verifica Idioma Informado *
*----------------------------------------------------------------------*
FORM z_verifica_langu.
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_DADOS *
*&---------------------------------------------------------------------*
* Seleciona Dados *
*----------------------------------------------------------------------*
FORM z_seleciona_dados.
* Seleciona TADIR
PERFORM z_seleciona_tadir USING st_tstc-pgmna
'R3TR'
'PROG'
CHANGING vl_classe
vl_subrc.
* Seleciona TRDIR
PERFORM z_seleciona_trdir CHANGING vl_subc
vl_subrc.
IF vl_subrc IS INITIAL.
CASE vl_subc.
WHEN 'F'.
* Seleciona TFDIR
PERFORM z_seleciona_tfdir CHANGING vl_funcname
vl_subrc.
IF vl_subrc IS INITIAL.
* Seleciona ENLFDIR
PERFORM z_seleciona_enlfdir USING vl_funcname
CHANGING vl_area
vl_subrc.
ENDIF.
IF vl_subrc IS INITIAL.
* Seleciona TADIR
PERFORM z_seleciona_tadir USING vl_area
'R3TR'
'FUGR'
CHANGING vl_classe
vl_subrc.
ENDIF.
WHEN OTHERS.
ENDCASE.
ENDIF.
ENDIF.
IF vl_classe IS INITIAL.
MESSAGE text-004 TYPE 'I'.
EXIT.
ENDIF.
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_TADIR *
*&---------------------------------------------------------------------*
* Seleciona TADIR *
*----------------------------------------------------------------------*
FORM z_seleciona_tadir USING p_name TYPE c
p_pgmid TYPE c
p_object TYPE c
CHANGING p_classe TYPE tadir-devclass
p_subrc TYPE sysubrc.
CLEAR: p_classe,
p_subrc .
p_subrc = sy-subrc.
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_TRDIR *
*&---------------------------------------------------------------------*
* Seleciona TRDIR *
*----------------------------------------------------------------------*
FORM z_seleciona_trdir CHANGING p_subc TYPE trdir-subc
p_subrc TYPE sysubrc.
CLEAR: p_subc ,
p_subrc .
p_subrc = sy-subrc.
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_TFDIR *
*&---------------------------------------------------------------------*
* Seleciona TFDIR *
*----------------------------------------------------------------------*
FORM z_seleciona_tfdir CHANGING p_funcname TYPE tfdir-funcname
p_subrc TYPE sysubrc.
CLEAR: p_funcname,
p_subrc .
p_subrc = sy-subrc.
ENDFORM. " Z_SELECIONA_TFDIR
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_ENLFDIR *
*&---------------------------------------------------------------------*
* Seleciona ENLFDIR *
*----------------------------------------------------------------------*
FORM z_seleciona_enlfdir USING p_funcname TYPE tfdir-funcname
CHANGING p_area TYPE c
p_subrc TYPE sysubrc.
CLEAR: p_area ,
p_subrc.
p_subrc = sy-subrc.
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_OBJETOS *
*&---------------------------------------------------------------------*
* Seleciona Objetos, Tabela TADIR *
*----------------------------------------------------------------------*
FORM z_seleciona_objetos TABLES p_table
USING p_classe TYPE tadir-devclass
p_object TYPE c.
REFRESH p_table.
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_TSTCT *
*&---------------------------------------------------------------------*
* Seleciona Texto Breve da Transa��o, Tabela TSTCT *
*----------------------------------------------------------------------*
FORM z_seleciona_tstct.
CLEAR v_ttext.
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_MODSAP *
*&---------------------------------------------------------------------*
* Seleciona Amplia��es, Tabela MODSAP *
*----------------------------------------------------------------------*
FORM z_seleciona_modsap TABLES p_objetos
p_modsap STRUCTURE st_modsap.
REFRESH p_modsap.
tl_obj[] = p_objetos[].
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_TFTIT *
*&---------------------------------------------------------------------*
* Seleciona Texto Breve M�dulo de Fun��o, Tabela TFTIT *
*----------------------------------------------------------------------*
FORM z_seleciona_tftit TABLES p_modsap STRUCTURE st_modsap
p_tftit STRUCTURE tftit.
REFRESH p_tftit.
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_MODSAPT *
*&---------------------------------------------------------------------*
* Seleciona Texto Breve Amplia��es, Tabela MODSAPT *
*----------------------------------------------------------------------*
FORM z_seleciona_modsapt.
REFRESH t_modsapt.
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_SXS_ATTRT *
*&---------------------------------------------------------------------*
* Seleciona Texto Breve Badi, Tabela SXS_ATTRT *
*----------------------------------------------------------------------*
FORM z_seleciona_sxs_attrt.
REFRESH t_sxs_attrt.
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_MODACT *
*&---------------------------------------------------------------------*
* Seleciona Projetos, Tabela MODACT *
*----------------------------------------------------------------------*
FORM z_seleciona_modact.
REFRESH t_modact.
tl_obj[] = t_obj_badi[].
*&---------------------------------------------------------------------*
*& Form Z_SELECIONA_MODTEXT *
*&---------------------------------------------------------------------*
* Seleciona Texto Breve Projeto, Tabela MODTEXT *
*----------------------------------------------------------------------*
FORM z_seleciona_modtext.
REFRESH t_modtext.
*&---------------------------------------------------------------------*
*& Form Z_MONTA_RELAT *
*&---------------------------------------------------------------------*
* Monta Relat�rio *
*----------------------------------------------------------------------*
FORM z_monta_relat.
REFRESH t_mylist.
IF t_objetos[] IS INITIAL.
MESSAGE text-009 TYPE 'I'.
ENDIF.
IF t_obj_badi[] IS INITIAL.
MESSAGE text-010 TYPE 'I'.
ENDIF.
CLEAR: sl_modsap ,
sl_modsapt,
sl_tftit .
CLEAR sl_objetos.
ENDLOOP.
CLEAR: sl_sxs_attrt,
sl_modact ,
sl_modtext ,
sl_modsap ,
sl_tftit .
IF sy-subrc IS INITIAL.
READ TABLE t_modtext INTO sl_modtext
WITH KEY name = sl_modact-name
BINARY SEARCH.
ENDIF.
CLEAR sl_obj_badi.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form Z_PREENCHE_MYLIST *
*&---------------------------------------------------------------------*
* Preenche Tabela Hier�rquica T_MYLIST *
*----------------------------------------------------------------------*
FORM z_preenche_mylist USING p_name
p_color
p_intensiv
p_text
p_tlength
p_tlevel
p_tcolor
p_tintensiv
p_text1
p_tlength1
p_tcolor1
p_tintensiv1
p_badi
p_text2
p_tlength2
p_tcolor2
p_tintensiv2
p_text3
p_tlength3
p_tcolor3
p_tintensiv3.
sl_mylist-name = p_name.
sl_mylist-color = p_color.
sl_mylist-intensiv = p_intensiv.
sl_mylist-text = p_text.
sl_mylist-tlength = p_tlength.
sl_mylist-tlevel = p_tlevel.
sl_mylist-tcolor = p_tcolor.
sl_mylist-tintensiv = p_tintensiv.
sl_mylist-text1 = p_text1.
sl_mylist-tlength1 = p_tlength1.
sl_mylist-tcolor1 = p_tcolor1.
sl_mylist-tintensiv1 = p_tintensiv1.
*&---------------------------------------------------------------------*
*& Form Z_MONTA_TREE *
*&---------------------------------------------------------------------*
* Monta ALV TREE *
*----------------------------------------------------------------------*
FORM z_monta_tree.
*&---------------------------------------------------------------------*
*& Form Z_MONTA_DRAW *
*&---------------------------------------------------------------------*
* Monta DRAW TREE *
*----------------------------------------------------------------------*
FORM z_monta_draw.
*&---------------------------------------------------------------------*
*& Form z_user_command *
*&---------------------------------------------------------------------*
* User Command TREE *
*----------------------------------------------------------------------*
FORM z_user_command TABLES nodes STRUCTURE seucomm
USING command
CHANGING exit
list_refresh.
CASE command.
WHEN 'TRSL'.
CASE nodes-name.
WHEN text-005.
SET PARAMETER ID 'MON' FIELD nodes-text.
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
exit = space.
WHEN text-007.
SET PARAMETER ID 'LIB' FIELD nodes-text.
CALL TRANSACTION 'SE37'.
exit = space.
WHEN text-013.
IF vl_cursor EQ 'NODELIST-TEXT2'.
SET PARAMETER ID 'MON_KUN' FIELD nodes-text2.
CALL TRANSACTION 'CMOD'.
ELSE.
* Preenche Mapeamento da Transa��o SE18
PERFORM z_preenche_bdc USING nodes-text.
CALL TRANSACTION 'SE18' USING t_bdcdata MODE 'E'.
ENDIF.
ENDCASE.
ENDCASE.
list_refresh = 'X'.
ENDFORM. "z_user_command
*&---------------------------------------------------------------------*
*& Form Z_PREENCHE_BDC *
*&---------------------------------------------------------------------*
* Preenche Tabela BDCDATA *
*----------------------------------------------------------------------*
FORM z_preenche_bdc USING p_name TYPE c.
REFRESH t_bdcdata.
*&---------------------------------------------------------------------*
*& Form Z_INSERE_BDC *
*&---------------------------------------------------------------------*
* Insere Tabela BDCDATA *
*----------------------------------------------------------------------*
FORM z_insere_bdc USING p_tela
p_campo
p_val.
CASE p_tela.
WHEN 'X'.
sl_bdcdata-dynbegin = p_tela.
sl_bdcdata-program = p_campo.
sl_bdcdata-dynpro = p_val.
WHEN OTHERS.
sl_bdcdata-fnam = p_campo.
sl_bdcdata-fval = p_val.
ENDCASE.
***********************************************************************
** TABELAS
***********************************************************************
*TABLES: sscrfields.
*
***********************************************************************
** GRUPO DE TIPOS
***********************************************************************
*TYPE-POOLS: icon.
*
**--------------------------------------------------------------------*
** TELA DE SELE��O
**--------------------------------------------------------------------*
*SELECTION-SCREEN: FUNCTION KEY 1. "Declara��o do Bot�o
*PARAMETERS: p_dummy TYPE char10.
*
*INITIALIZATION.
* PERFORM cria_botao.
*
*AT SELECTION-SCREEN.
* IF sy-ucomm = 'FC01'.
* BREAK-POINT.
* ENDIF.
*
**&---------------------------------------------------------------------*
**& Form cria_botao
**&---------------------------------------------------------------------*
*FORM cria_botao .
*
** Estrutura para descrever o bot�o
* DATA: wa_button TYPE smp_dyntxt.
*
* wa_button-text = 'Botao Log de Erros'.
* wa_button-icon_id = icon_error_protocol.
* wa_button-icon_text = 'Log de Erros'.
* wa_button-quickinfo = 'Visualizar Log de Erros'.
*
* sscrfields-functxt_01 = wa_button.
*
*ENDFORM. " cria_botao
**********************************************************************