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.