1. FunctionModules
Módulosde funçãosão rotinasABAPque são armazenadosemumabibliotecade função
central.Elasnão são específicasdoaplicativo,masdisponível emtodoosistema.OABAP
Workbenchvemcomum grande númerode módulosde funçãopadrão.
Comorotinasde formulários,módulosde funçãopodemencapsularocódigodoprogramae
fornecerumainterface paratroca de dados.OsMódulosde funçãodevempertenceraum
grupochamado de um grupo de funções.
Elespossuemumainterface fixaparatroca de dados.Issotorna maisfácil para você passar
parâmetrosde entradae saída para o módulode função.Por exemplo,você pode atribuir
valorespadrãopara os parâmetrosde entrada.A interface tambémsuportamanipulaçãode
exceção.Istopermite-lhedetectarerrose passá-losde voltaparao programa de chamada
para o manuseio.
Os módulosusama suaprópria áreade memória.Oprogramade chamada e do módulode
funçãonão pode trocar dadosusandouma área de memóriacompartilhada –devemusara
interface domódulode função.Issoevitaefeitoscolateraisdesagradáveis,comoasubstituição
de dados acidentalmente.Você chamaummódulode funçãopeloseunome (que deve ser
único) emum comunicadode funçãode chamada usandoa palavrachave CALL FUNCTION.
FunctionBuilder
O FunctionBuilderpermite desenvolver,testare documentarnovosmódulosde função.Você
tambémpode usá-loparaexibirinformaçõessobre osmódulosde funçãoexistentes.
Criando uma Função
1. Entre na transação SE37.
2. Nomenu Goto,Function Groups,Create Group, crie um novoGrupo de funçãochamado
ZDEVA.
2. 3. Digite a transação SE80, noABAPWorkBenchescolhagrupode funçãoe o seugrupo,clique
com o botãodireitoemcimado nome do seugrupoe escolhaActivate.
3. 4. Volte para a transação SE37.
5. Em FunctionModule,escrevaZF_FUNCAO_DAe clique emCreate.
6.
7. Na aba Import, nos camposrespectivosdigite: Parametername = TEXTO1, Typing = TYPE,
AssociatedType = String.
8. No segundoregistrodigite: Parametername = TEXTO2, Typing = TYPE, Associated Type =
String.
9. Na Aba Export, noscampos respectivosdigite: Parametername = RESULTADO, Typing =
TYPE, AssociatedType = String.
10. Na AbaExceptionsnos camposrespectivosdigite: Exception=DA_ERRO, ShortText = Erro
na funçãoDev Aberto.
11. Na aba Source Code,você pode vero códigogeradoautomaticamente,preenchade
acordo com a imagemabaixo.
4. 12. Clique em Activate para ativara função.
Call Function
Para chamar um módulode função,use a instruçãode funçãode chamada CALL FUNCTION.
Exemplo:
Neste exemplocriamosummodulode funçãonoFunctionBuildere usamosumprograma
para chamar esta função.
Abap
Função
5. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
*&---------------------------------------------------------------------*
*& 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.