sexta-feira, 5 de outubro de 2012

Função - FUNCTION_EXISTS


*  Tudo bem aee pessoal, hoje vou mostrar uma função que verifica se existe
* a função que você informou, alem disso essa função retorna algumas
* informações um pouco mais detalhada que podem te ajudar no desenvolvimento.
*  Juntamente estou passando uma função de busca de funções, usando o
* comando 'AT SELECTION-SCREEN ON VALUE-REQUEST FOR' onde eu já usei em
* alguns programas de posts passados, mas em pouco tempo estarei fazendo um
* post somente sobre isso. t+ e bons estudos.
*&---------------------------------------------------------------------*
REPORT function_exists.

* Declaração dos retornos da função
DATA :
  vg_group     TYPE rs38l-area,
  vg_include   TYPE rs38l-include
  .

* tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
p_fname TYPE rs38l-name. " Nome da função
SELECTION-SCREEN END OF BLOCK   b1.

* Procedimento executando antes do processo normal do programa
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
  PERFORM f_busca_func.

* Inicio do processo
START-OF-SELECTION.
* Verifica a existencia do função informada.
  PERFORM f_check_func.
* Exibe o resultado
  PERFORM f_exibe_returno.





*&---------------------------------------------------------------------*
*&      Form  F_BUSCA_FUNC
*&---------------------------------------------------------------------*
FORM f_busca_func .

* Função que executa o match code para funções.
 
CALL FUNCTION 'F4_FUNCTIONMODULE'
   EXPORTING
     group                    = '*'
     object                   = p_fname
     suppress_selection       = 'X'
*   DISPLAY_ONLY             =
*   MULTIPLE_SELECTION       =
*   VARIANT                  =
   IMPORTING
     RESULT                   = p_fname
*   GROUP                    =
*   UCOMM                    =
* TABLES
*   MULTIPLE_OBJECTS         =
            .

ENDFORM.                    " F_BUSCA_FUNC

*&---------------------------------------------------------------------*
*&      Form  F_CHECK_FUNC
*&---------------------------------------------------------------------*
FORM f_check_func .
* Função que verifica a existencia da função informada,
  CALL FUNCTION 'FUNCTION_EXISTS'
    EXPORTING
      funcname           = p_fname
    IMPORTING
      group              = vg_group
      include            = vg_include
    EXCEPTIONS
      function_not_exist = 1
      OTHERS             = 2.

ENDFORM.                    " F_CHECK_FUNC

*&---------------------------------------------------------------------*
*&      Form  F_EXIBE_RETURNO
*&---------------------------------------------------------------------*
FORM f_exibe_returno .

* Verifica se o retorno 'Grupo de funções' retornou com valor.
 
IF vg_group IS INITIAL.
* Exibe mensagem
    WRITE : 'Função inexistente'.

  ELSE.
* Exibe dados correspondentes
    WRITE :
      'Função  : ', p_fname, /
      'Grupo   : ', vg_group, /
      'Include : ', vg_include, /
    .
  ENDIF.
ENDFORM.                    " F_EXIBE_RETURNO



Comentários
0 Comentários

Nenhum comentário:

Postar um comentário