*&---------------------------------------------------------------------* *& Autor: Pathelle Romanholi Chaves Morais * *& 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 * *&---------------------------------------------------------------------* REPORT z_busca_exit_badi NO STANDARD PAGE HEADING. *----------------------------------------------------------------------* * 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 * *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME. PARAMETERS : p_tcode TYPE tstc-tcode OBLIGATORY, p_langu TYPE spras OBLIGATORY DEFAULT sy-langu. SELECTION-SCREEN END OF BLOCK b2. SELECTION-SCREEN END OF BLOCK b1. *----------------------------------------------------------------------* * p_tcode -> Código Transacional * * p_langu -> Idioma * *----------------------------------------------------------------------* *----------------------------------------------------------------------* * AT SELECTION SCREEN * *----------------------------------------------------------------------* AT SELECTION-SCREEN ON p_tcode. * Verifica Código Informado PERFORM z_verifica_tcode. AT SELECTION-SCREEN ON p_langu. * Verifica Idioma Informado PERFORM z_verifica_langu. *----------------------------------------------------------------------* * START OF SELECTION * *----------------------------------------------------------------------* START-OF-SELECTION. * Seleciona Dados PERFORM: z_seleciona_dados, * Monta Relatório z_monta_relat , * Monta ALV TREE z_monta_tree , * Monta DRAW TREE z_monta_draw . *&---------------------------------------------------------------------* *& Form Z_VERIFICA_TCODE * *&---------------------------------------------------------------------* * Verifica Código Informado * *----------------------------------------------------------------------* FORM z_verifica_tcode. CLEAR st_tstc. SELECT SINGLE tcode pgmna FROM tstc INTO st_tstc WHERE tcode EQ p_tcode. IF NOT sy-subrc IS INITIAL. MESSAGE text-002 TYPE 'E'. ENDIF. ENDFORM. " Z_VERIFICA_TCODE *&---------------------------------------------------------------------* *& Form Z_VERIFICA_LANGU * *&---------------------------------------------------------------------* * Verifica Idioma Informado * *----------------------------------------------------------------------* FORM z_verifica_langu. SELECT SINGLE spras FROM t002 INTO p_langu WHERE spras EQ p_langu. IF NOT sy-subrc IS INITIAL. MESSAGE text-003 TYPE 'E'. ENDIF. ENDFORM. " Z_VERIFICA_LANGU *&---------------------------------------------------------------------* *& Form Z_SELECIONA_DADOS * *&---------------------------------------------------------------------* * Seleciona Dados * *----------------------------------------------------------------------* FORM z_seleciona_dados. DATA: vl_classe TYPE tadir-devclass, vl_subc TYPE trdir-subc , vl_funcname TYPE tfdir-funcname, vl_area TYPE enlfdir-area , vl_subrc TYPE sysubrc . * Seleciona TADIR PERFORM z_seleciona_tadir USING st_tstc-pgmna 'R3TR' 'PROG' CHANGING vl_classe vl_subrc. IF NOT vl_subrc IS INITIAL. * 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. * Seleciona Objetos, Tabela TADIR (Exit's) PERFORM: z_seleciona_objetos TABLES t_objetos USING vl_classe 'SMOD' , * Seleciona Texto Breve da Transação, Tabela TSTCT z_seleciona_tstct , * Seleciona Ampliações, Tabela MODSAP (Exit's) z_seleciona_modsap TABLES t_objetos t_modsap , * Seleciona Texto Breve Módulo de Função, Tabela TFTIT (Exit's) z_seleciona_tftit TABLES t_modsap t_tftit , * Seleciona Texto Breve Ampliações, Tabela MODSAPT z_seleciona_modsapt , * Seleciona Objetos, Tabela TADIR (Badi's) z_seleciona_objetos TABLES t_obj_badi USING vl_classe 'SXSD' , * Seleciona Texto Breve Badi, Tabela SXS_ATTRT z_seleciona_sxs_attrt , * Seleciona Projetos, Tabela MODACT z_seleciona_modact , * Seleciona Texto Breve Projeto, Tabela MODTEXT z_seleciona_modtext , * Seleciona Ampliações, Tabela MODSAP (Badi's) z_seleciona_modsap TABLES t_obj_badi t_modsap_b, * Seleciona Texto Breve Módulo de Função, Tabela TFTIT (Badi's) z_seleciona_tftit TABLES t_modsap_b t_tftit_b . ENDFORM. " Z_SELECIONA_DADOS *&---------------------------------------------------------------------* *& 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 . SELECT SINGLE devclass FROM tadir INTO p_classe WHERE pgmid EQ p_pgmid AND object EQ p_object AND obj_name EQ p_name. p_subrc = sy-subrc. ENDFORM. " Z_SELECIONA_TADIR *&---------------------------------------------------------------------* *& 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 . SELECT SINGLE subc FROM trdir INTO p_subc WHERE name EQ st_tstc-pgmna. p_subrc = sy-subrc. ENDFORM. " Z_SELECIONA_TRDIR *&---------------------------------------------------------------------* *& 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 . SELECT SINGLE funcname FROM tfdir INTO p_funcname WHERE pname EQ st_tstc-pgmna. 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. SELECT SINGLE area FROM enlfdir INTO p_area WHERE funcname EQ p_funcname. p_subrc = sy-subrc. ENDFORM. " Z_SELECIONA_ENLFDIR *&---------------------------------------------------------------------* *& 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. SELECT pgmid object obj_name FROM tadir INTO TABLE p_table WHERE devclass EQ p_classe AND pgmid EQ 'R3TR' AND object EQ p_object. ENDFORM. " Z_SELECIONA_OBJETOS *&---------------------------------------------------------------------* *& Form Z_SELECIONA_TSTCT * *&---------------------------------------------------------------------* * Seleciona Texto Breve da Transação, Tabela TSTCT * *----------------------------------------------------------------------* FORM z_seleciona_tstct. CLEAR v_ttext. SELECT SINGLE ttext FROM tstct INTO v_ttext WHERE sprsl EQ p_langu AND tcode EQ p_tcode. ENDFORM. " Z_SELECIONA_TSTCT *&---------------------------------------------------------------------* *& Form Z_SELECIONA_MODSAP * *&---------------------------------------------------------------------* * Seleciona Ampliações, Tabela MODSAP * *----------------------------------------------------------------------* FORM z_seleciona_modsap TABLES p_objetos p_modsap STRUCTURE st_modsap. DATA tl_obj TYPE TABLE OF type_obj. REFRESH p_modsap. CHECK NOT p_objetos[] IS INITIAL. tl_obj[] = p_objetos[]. SELECT name typ member FROM modsap INTO TABLE p_modsap FOR ALL ENTRIES IN tl_obj WHERE name EQ tl_obj-obj_name AND typ EQ 'E'. SORT p_modsap BY name ASCENDING. ENDFORM. " Z_SELECIONA_MODSAP *&---------------------------------------------------------------------* *& 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. CHECK NOT p_modsap[] IS INITIAL. SELECT spras funcname stext FROM tftit INTO TABLE p_tftit FOR ALL ENTRIES IN p_modsap WHERE spras EQ p_langu AND funcname EQ p_modsap-member. SORT p_tftit BY funcname ASCENDING. ENDFORM. " Z_SELECIONA_TFTIT *&---------------------------------------------------------------------* *& Form Z_SELECIONA_MODSAPT * *&---------------------------------------------------------------------* * Seleciona Texto Breve Ampliações, Tabela MODSAPT * *----------------------------------------------------------------------* FORM z_seleciona_modsapt. REFRESH t_modsapt. CHECK NOT t_objetos[] IS INITIAL. SELECT sprsl name modtext FROM modsapt INTO TABLE t_modsapt FOR ALL ENTRIES IN t_objetos WHERE sprsl EQ p_langu AND name EQ t_objetos-obj_name. SORT t_modsapt BY name ASCENDING. ENDFORM. " Z_SELECIONA_MODSAPT *&---------------------------------------------------------------------* *& Form Z_SELECIONA_SXS_ATTRT * *&---------------------------------------------------------------------* * Seleciona Texto Breve Badi, Tabela SXS_ATTRT * *----------------------------------------------------------------------* FORM z_seleciona_sxs_attrt. REFRESH t_sxs_attrt. CHECK NOT t_obj_badi[] IS INITIAL. SELECT exit_name sprsl text FROM sxs_attrt INTO TABLE t_sxs_attrt FOR ALL ENTRIES IN t_obj_badi WHERE exit_name EQ t_obj_badi-obj_name AND sprsl EQ p_langu. SORT t_sxs_attrt BY exit_name ASCENDING. ENDFORM. " Z_SELECIONA_SXS_ATTRT *&---------------------------------------------------------------------* *& Form Z_SELECIONA_MODACT * *&---------------------------------------------------------------------* * Seleciona Projetos, Tabela MODACT * *----------------------------------------------------------------------* FORM z_seleciona_modact. DATA tl_obj TYPE TABLE OF type_aux. REFRESH t_modact. CHECK NOT t_obj_badi[] IS INITIAL. tl_obj[] = t_obj_badi[]. SELECT name typ member FROM modact INTO TABLE t_modact FOR ALL ENTRIES IN tl_obj WHERE member EQ tl_obj-obj_name AND typ EQ 'E'. SORT t_modact BY member ASCENDING. ENDFORM. " Z_SELECIONA_MODACT *&---------------------------------------------------------------------* *& Form Z_SELECIONA_MODTEXT * *&---------------------------------------------------------------------* * Seleciona Texto Breve Projeto, Tabela MODTEXT * *----------------------------------------------------------------------* FORM z_seleciona_modtext. REFRESH t_modtext. CHECK NOT t_modact[] IS INITIAL. SELECT sprsl name modtext FROM modtext INTO TABLE t_modtext FOR ALL ENTRIES IN t_modact WHERE sprsl EQ p_langu AND name EQ t_modact-name. SORT t_modtext BY name ASCENDING. ENDFORM. " Z_SELECIONA_MODTEXT *&---------------------------------------------------------------------* *& Form Z_MONTA_RELAT * *&---------------------------------------------------------------------* * Monta Relatório * *----------------------------------------------------------------------* FORM z_monta_relat. DATA: sl_objetos TYPE type_obj , sl_modsap TYPE type_modsap , sl_modsapt TYPE modsapt , sl_tftit TYPE tftit , sl_obj_badi TYPE type_badi , sl_sxs_attrt TYPE sxs_attrt , sl_modact TYPE type_modact , sl_modtext TYPE modtext . 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. IF t_objetos[] IS INITIAL AND t_obj_badi[] IS INITIAL. EXIT. ENDIF. * Preenche Tabela Hierárquica T_MYLIST PERFORM z_preenche_mylist USING p_tcode 6 1 p_tcode 10 1 6 1 v_ttext 30 6 2 space space space space space space space space space. IF NOT t_objetos[] IS INITIAL. PERFORM z_preenche_mylist USING text-011 5 1 text-011 10 2 5 1 text-011 30 5 2 space space space space space space space space space. ENDIF. LOOP AT t_objetos INTO sl_objetos. CLEAR: sl_modsap , sl_modsapt, sl_tftit . READ TABLE t_modsapt INTO sl_modsapt WITH KEY name = sl_objetos-obj_name BINARY SEARCH. CHECK sy-subrc IS INITIAL. * Preenche Tabela Hierárquica T_MYLIST PERFORM z_preenche_mylist USING text-005 4 1 sl_objetos-obj_name 10 3 4 1 sl_modsapt-modtext 50 4 2 space space space space space space space space space. READ TABLE t_modsap INTO sl_modsap WITH KEY name = sl_objetos-obj_name BINARY SEARCH. CHECK sy-subrc IS INITIAL. READ TABLE t_tftit INTO sl_tftit WITH KEY funcname = sl_modsap-member BINARY SEARCH. * Preenche Tabela Hierárquica T_MYLIST PERFORM z_preenche_mylist USING text-007 7 1 sl_modsap-member 30 4 7 1 sl_tftit-stext 50 7 2 space space space space space space space space space. CLEAR sl_objetos. ENDLOOP. IF NOT t_obj_badi[] IS INITIAL. PERFORM z_preenche_mylist USING text-012 5 1 text-012 10 2 5 1 text-012 30 5 2 space space space space space space space space space. ENDIF. LOOP AT t_obj_badi INTO sl_obj_badi. CLEAR: sl_sxs_attrt, sl_modact , sl_modtext , sl_modsap , sl_tftit . READ TABLE t_modact INTO sl_modact WITH KEY member = sl_obj_badi-obj_name BINARY SEARCH. IF sy-subrc IS INITIAL. READ TABLE t_modtext INTO sl_modtext WITH KEY name = sl_modact-name BINARY SEARCH. ENDIF. READ TABLE t_sxs_attrt INTO sl_sxs_attrt WITH KEY exit_name = sl_obj_badi-obj_name BINARY SEARCH. * Preenche Tabela Hierárquica T_MYLIST PERFORM z_preenche_mylist USING text-013 4 1 sl_obj_badi-obj_name 10 3 4 1 sl_sxs_attrt-text 50 4 2 'X' sl_modact-name 10 6 2 sl_modtext-modtext 25 2 2. READ TABLE t_modsap_b INTO sl_modsap WITH KEY name = sl_obj_badi-obj_name BINARY SEARCH. CHECK sy-subrc IS INITIAL. READ TABLE t_tftit_b INTO sl_tftit WITH KEY funcname = sl_modsap-member BINARY SEARCH. * Preenche Tabela Hierárquica T_MYLIST PERFORM z_preenche_mylist USING text-007 7 1 sl_modsap-member 30 4 7 1 sl_tftit-stext 50 7 2 space space space space space space space space space. CLEAR sl_obj_badi. ENDLOOP. ENDFORM. " Z_MONTA_RELAT *&---------------------------------------------------------------------* *& 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. DATA sl_mylist TYPE snodetext. 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. IF NOT p_badi IS INITIAL. sl_mylist-text2 = p_text2. sl_mylist-tlength2 = p_tlength2. sl_mylist-tcolor2 = p_tcolor2. sl_mylist-tintensiv2 = p_tintensiv2. IF NOT p_text3 IS INITIAL. sl_mylist-text3 = p_text3. sl_mylist-tlength3 = p_tlength3. sl_mylist-tcolor3 = p_tcolor3. sl_mylist-tintensiv3 = p_tintensiv3. ENDIF. ENDIF. APPEND sl_mylist TO t_mylist. ENDFORM. " Z_PREENCHE_MYLIST *&---------------------------------------------------------------------* *& Form Z_MONTA_TREE * *&---------------------------------------------------------------------* * Monta ALV TREE * *----------------------------------------------------------------------* FORM z_monta_tree. CHECK NOT t_mylist[] IS INITIAL. SET PF-STATUS 'MAIN'. CALL FUNCTION 'RS_TREE_CONSTRUCT' TABLES nodetab = t_mylist EXCEPTIONS tree_failure = 1 id_not_found = 2 wrong_relationship = 3 OTHERS = 4. IF NOT sy-subrc IS INITIAL. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " Z_MONTA_TREE *&---------------------------------------------------------------------* *& Form Z_MONTA_DRAW * *&---------------------------------------------------------------------* * Monta DRAW TREE * *----------------------------------------------------------------------* FORM z_monta_draw. CHECK NOT t_mylist[] IS INITIAL. CALL FUNCTION 'RS_TREE_LIST_DISPLAY' EXPORTING callback_program = sy-repid callback_user_command = 'Z_USER_COMMAND'. ENDFORM. " Z_MONTA_DRAW *&---------------------------------------------------------------------* *& Form z_user_command * *&---------------------------------------------------------------------* * User Command TREE * *----------------------------------------------------------------------* FORM z_user_command TABLES nodes STRUCTURE seucomm USING command CHANGING exit list_refresh. DATA vl_cursor TYPE char30. GET CURSOR FIELD vl_cursor. 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. PERFORM z_insere_bdc USING: 'X' 'SAPLSEXO' '0100' , space 'BDC_OKCODE' '=ISSPOT' , space 'G_IS_BADI' 'X' , 'X' 'SAPLSEXO' '0100' , space 'BDC_OKCODE' '=SHOW' , space 'G_BADINAME' p_name . ENDFORM. " Z_PREENCHE_BDC *&---------------------------------------------------------------------* *& Form Z_INSERE_BDC * *&---------------------------------------------------------------------* * Insere Tabela BDCDATA * *----------------------------------------------------------------------* FORM z_insere_bdc USING p_tela p_campo p_val. DATA sl_bdcdata TYPE bdcdata. 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. APPEND sl_bdcdata TO t_bdcdata. ENDFORM. " Z_INSERE_BDC