Function Builder – Function Module – Call Function – Abap

Publicado: 15 de março de 2014 em Abap

Function Modules 

Módulos de função são rotinas ABAP que são armazenados em uma biblioteca de função central. Elas não são específicas do aplicativo, mas disponível em todo o sistema. O ABAP Workbench vem com um grande número de módulos de função padrão.

Como rotinas de formulários, módulos de função podem encapsular o código do programa e fornecer uma interface para troca de dados. Os Módulos de função devem pertencer a um grupo chamado de um grupo de funções.

Eles possuem uma interface fixa para troca de dados. Isso torna mais fácil para você passar parâmetros de entrada e saída para o módulo de função. Por exemplo, você pode atribuir valores padrão para os parâmetros de entrada. A interface também suporta manipulação de exceção. Isto permite-lhe detectar erros e passá-los de volta para o programa de chamada para o manuseio.

Os módulos usam a sua própria área de memória. O programa de chamada e do módulo de função não pode trocar dados usando uma área de memória compartilhada – devem usar a interface do módulo de função. Isso evita efeitos colaterais desagradáveis, como a substituição de dados acidentalmente. Você chama um módulo de função pelo seu nome (que deve ser único) em um comunicado de função de chamada usando a palavra chave CALL FUNCTION.

Function Builder

O Function Builder permite desenvolver, testar e documentar novos módulos de função. Você também pode usá-lo para exibir informações sobre os módulos de função existentes.

Criando uma Função

  1.  Entre na transação SE37.
  2.  No menu Goto, Function Groups, Create Group, crie um novo Grupo de função chamado ZDEVA.fbuilder_group
  3.  Digite a transação SE80, no ABAP WorkBench escolha grupo de função e o seu grupo, clique com o botão direito em cima do nome do seu grupo e escolha Activate.fbuilder_group_active
  4. Volte para a transação SE37.
  5. Em Function Module, escreva ZF_FUNCAO_DA e clique em Create.
  6. fbuilder_function
  7. Na aba Import, nos campos respectivos digite: Parameter name = TEXTO1, Typing = TYPE, Associated Type = String.
  8. No segundo registro digite: Parameter name = TEXTO2, Typing = TYPE, Associated Type = String.
  9. Na Aba Export, nos campos respectivos digite: Parameter name = RESULTADO, Typing = TYPE, Associated Type = String.
  10. Na Aba Exceptions nos campos respectivos digite: Exception = DA_ERRO, ShortText = Erro na função Dev Aberto.
  11. Na aba Source Code, você pode ver o código gerado automaticamente, preencha de acordo com a imagem abaixo.fbuilder_sourcecode
  12. Clique em Activate para ativar a função.

 Call Function

Para chamar um módulo de função, use a instrução de função de chamada  CALL FUNCTION.

Exemplo:

Neste exemplo criamos um modulo de função no Function Builder e usamos um programa para chamar esta função.

Abap

Função

FUNCTION ZF_FUNCAO_DA.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(TEXTO1) TYPE  STRING
*"     REFERENCE(TEXTO2) TYPE  STRING
*"  EXPORTING
*"     REFERENCE(RESULTADO) TYPE  STRING
*"  EXCEPTIONS
*"      DA_ERRO
*"----------------------------------------------------------------------

IF TEXTO1 NE 'ERRO'.

  CONCATENATE TEXTO1 TEXTO2 INTO RESULTADO SEPARATED BY ' '.

ELSE.

  RAISE DA_ERRO.

ENDIF.

ENDFUNCTION.

Programa

*&---------------------------------------------------------------------*
*& Report  ZFUNCAO
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& Modulo de Função
*&---------------------------------------------------------------------*

REPORT  ZFUNCAO.

DATA R_FUNCAO TYPE STRING.

* Chama função

CALL FUNCTION 'ZF_FUNCAO_DA'
  exporting
    TEXTO1    = 'Desenvolvimento'
    TEXTO2    = 'Aberto'
  importing
    RESULTADO = R_FUNCAO.

WRITE : / 'Retorno da função:', R_FUNCAO.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s