SAP ABAP - Sub-rotinas
Uma sub-rotina é uma seção reutilizável de código. É uma unidade de modularização dentro do programa onde uma função é encapsulada na forma de código-fonte. Você transfere uma parte de um programa para uma sub-rotina para obter uma visão geral melhor do programa principal e para usar a sequência correspondente de instruções muitas vezes, conforme ilustrado no diagrama a seguir.
Temos o programa X com 3 diferentes source code blocks. Cada bloco possui as mesmas instruções ABAP. Basicamente, eles são os mesmos blocos de código. Para tornar esse código mais fácil de manter, podemos encapsular o código em uma sub-rotina. Podemos chamar essa sub-rotina em nossos programas quantas vezes quisermos. Uma sub-rotina pode ser definida usando instruções Form e EndForm.
A seguir está a sintaxe geral de uma definição de sub-rotina.
FORM <subroutine_name>.
<statements>
ENDFORM.
Podemos chamar uma sub-rotina usando a instrução PERFORM. O controle pula para a primeira instrução executável na sub-rotina <subroutine_name>. Quando ENDFORM é encontrado, o controle volta para a instrução seguinte à instrução PERFORM.
Exemplo
Step 1- Vá para a transação SE80. Abra o programa existente e clique com o botão direito do mouse no programa. Neste caso, é 'ZSUBTEST'.
Step 2- Selecione Criar e selecione Sub-rotina. Escreva o nome da sub-rotina no campo e clique no botão continuar. O nome da sub-rotina é 'Sub_Display' conforme mostrado na imagem a seguir.
Step 3- Escreva o código no bloco de instrução FORM e ENDFORM. A sub-rotina foi criada com sucesso.
Precisamos incluir a instrução PERFORM para chamar a sub-rotina. Vamos dar uma olhada no código -
REPORT ZSUBTEST.
PERFORM Sub_Display.
* Form Sub_Display
* --> p1 text
* <-- p2 text
FORM Sub_Display.
Write: 'This is Subroutine'.
Write: / 'Subroutine created successfully'.
ENDFORM. " Sub_Display
Step 4- Salvar, ativar e executar o programa. O código acima produz a seguinte saída -
Subroutine Test:
This is Subroutine
Subroutine created successfully
Conseqüentemente, usar sub-rotinas torna seu programa mais orientado a funções. Ele divide a tarefa do programa em subfunções, de forma que cada sub-rotina é responsável por uma subfunção. Seu programa se torna mais fácil de manter, pois as alterações nas funções geralmente só precisam ser implementadas na sub-rotina.