* 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
* 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